在纯css 3d中创建圆柱形状

use*_*621 4 html5 css3 html5-canvas css-shapes

我正在使用画布3d形状我对此非常新.我正在尝试创建没有任何插件的Pure css3d柱面.

这是我正在尝试的,输出是我正在循环的代码.

Css代码

div {
    height:200px;
    width:200px;
    border:solid 5px black;
    background:#159;
    border-radius:100%;
    display:inline-block;
    margin:1em;
    position:relative;
    text-align:center;
    line-height:200px;
    color:white;
    font-size:2em;
    transform:rotate(45deg);
    box-shadow:0 0 5px black, inset 0 0 5px #48a;
}
Run Code Online (Sandbox Code Playgroud)

HTML代码

<div>&nbsp;</div>
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗.

在此先感谢Maha

小智 8

有一些类似的高级示例:
http://x.dtott.com/3d/
http://cssdeck.com/labs/pure-css-3d-primitives

以及一些有用的CSS形状如下:http:
//css-tricks.com/examples/ShapesOfCSS/

我个人构建了这个简单的HTML

<div class="tank">
    <div class="bottom"></div>
    <div class="middle"></div>
    <div class="top"></div>  
</div>
Run Code Online (Sandbox Code Playgroud)

和CSS

.tank{
    position:relative;
     margin:50px;
}

.tank .middle{
    width:120px;
    height:180px;
    background-color:#444;
    position:absolute;
}

.tank .top{
    width: 120px;
    height: 50px;
    background-color:#666;
    -moz-border-radius: 60px / 25px;
    -webkit-border-radius: 60px / 25px;
    border-radius: 60px / 25px;
    position:absolute;
    top:-25px;
}

.tank .bottom{
    width: 120px;
    height: 50px;
    background-color:#444;
    -moz-border-radius: 60px / 25px;
    -webkit-border-radius: 60px / 25px;
    border-radius: 60px / 25px;
    position:absolute;
    top:155px;
    box-shadow:0px 0px 10px rgba(0,0,0,0.75)
}
Run Code Online (Sandbox Code Playgroud)

你可以看到一个DEMO

  • 那实际上是2D。旋转`.tank` 就是暴露了这一点。 (3认同)
  • 很好的答案。也可以通过使用伪代码使用单个 HTML 元素来完成。 (2认同)
  • @xxstevenxo 您可以使用 main 元素作为中间部分,使用两个伪元素作为顶部和底部,就像 [this fiddle](http://jsfiddle.net/n484qzka/47/) 中一样。 (2认同)

gio*_*_13 1

您的问题可能有几种不同的方法。
第一个(也是最简单的)是有多个堆叠的圆圈,这会给你圆柱体的印象。
但谁愿意在一个页面中使用数百个divs 来渲染一个简单的图形模块呢?您可以在单个元素上使用多个box-shadow值来模拟多个圆,最终模拟圆柱体:

div {
    box-shadow: black 0px 0px 1px,
        black 1px 1px 1px,
        black 2px 2px 1px,
        ...
        black 99px 99px 1px,
        black 100px 100px 1px;
}
Run Code Online (Sandbox Code Playgroud)

这是这个例子的小提琴: http: //jsfiddle.net/gion_13/nDCme/