1

我正在尝试用 CSS 制作一个形状:圆角六边形(也被拉长)。我尝试了几种不同的方法(例如一个盒子作为主体,顶部和底部有 2 个圆角三角形),但到目前为止我还没有想出任何好的方法。有没有人有一些想法在 CSS 中创建这个形状?(最近我来了,没有伸长:http ://cdpn.io/fhpiH )

4

3 回答 3

1

我的解决方案,差不多了。:)

JSFiddle 演示

使用 2 个盒子作为顶部和底部,并将它们旋转 45 度。

HTML

<div class="container">
    <div class="box"></div>
    <div class="middle"></div>
    <div class="box"></div>
</div>

CSS

.container {
    position:relative;
    width:500px;
}
.middle {
    border-left: 10px solid orange;
    border-right: 10px solid orange;
    height: 228px;
    left: 137px;
    position: absolute;
    top: 132px;
    width: 266px;
    background:#fff;
    z-index:20;
}
.box {
    width:200px;
    height:200px;
    background:#fff;
    border:10px solid orange;
    -webkit-border-radius: 30px;
    border-radius: 30px;
    -moz-transform: scale(1) rotate(45deg) translateX(140px) translateY(-100px) skewX(0deg) skewY(0deg);
    -webkit-transform: scale(1) rotate(45deg) translateX(140px) translateY(-100px) skewX(0deg) skewY(0deg);
    -o-transform: scale(1) rotate(45deg) translateX(140px) translateY(-100px) skewX(0deg) skewY(0deg);
    -ms-transform: scale(1) rotate(45deg) translateX(140px) translateY(-100px) skewX(0deg) skewY(0deg);
    transform: scale(1) rotate(45deg) translateX(140px) translateY(-100px) skewX(0deg) skewY(0deg);
    -webkit-box-shadow: 5px 5px 5px 5px  rgba(0, 0, 0, 0.3);
    box-shadow: 5px 5px 5px 5px rgba(0, 0, 0, 0.3);
}

@koningdavid - 他的解决方案稍微好一点,我应该使用:before并且:after

于 2013-06-24T15:15:13.187 回答
0

它并不完美,但也许这会将你推向正确的方向......

http://jsfiddle.net/3b7j5/1/

我使用了 2 个旋转的正方形,并border在 2 侧给了它们一个。边缘有点困难,但也许通过一些调整,你可以使边界的重叠更好

于 2013-06-24T15:01:07.493 回答
0

我的 CSS3 Hexagon 变体,在 cssdesk上的梦想笔记 和演示中带有边框和框阴影和边框半径

于 2013-08-28T14:14:01.550 回答