所以我在CSS中绘制元素using this tutorial as a guide。不过,我需要一些边界帮助。例如,这是我的曲线梯形代码:
.foobar {
height: 0px;
width: 140px;
position: relative;
border-bottom: 200px solid red;
border-left: 30px solid transparent;
border-right: 30px solid transparent;
border-bottom-left-radius: 150px 70px;
border-bottom-right-radius: 100px 25px;
}
问题:我想在foobar元素周围绘制1px线条边框,但我已经在使用边框属性来绘制元素。
有一种简单的方法吗?我的感觉是,我将不得不创建一个与foobar元素形状相同但略大于foobar元素的阴影元素。
提前致谢!
答案 0 :(得分:4)
您可以使用稍微调整的尺寸来定位:伪元素。
.foobar, .foobar:before {
height: 0px;
width: 140px;
position: relative;
border-bottom: 200px solid red;
border-left: 30px solid transparent;
border-right: 30px solid transparent;
border-bottom-left-radius: 150px 70px;
border-bottom-right-radius: 100px 25px;
}
.foobar:before {
content: "";
display:block;
position: absolute;
left: -31px;
top: -1px;
width: 142px;
z-index: -1;
border-bottom: 202px solid black;
/* add these lines if you're a pixel perfectionist */
border-bottom-left-radius: 150px 71px;
border-bottom-right-radius: 100px 26px;
}
答案 1 :(得分:3)
您可以使用相同规则后面绘制的伪元素,并且缩放比例很小。
.foobar, .foobar:before {
height: 0px;
width: 140px;
position: relative;
border-bottom: 200px solid red;
border-left: 30px solid transparent;
border-right: 30px solid transparent;
border-bottom-left-radius: 150px 70px;
border-bottom-right-radius: 100px 25px;
position:relative;
}
.foobar:before {
content:'';
position:absolute;
display:block;
z-index:-1;
top:0;
left:-30px;
width: 140px;
-webkit-transform-origin:center;
-webkit-transform:scale(1.03);/* adapt here the width of your fake border */
transform-origin:center;
transform:scale(1.03);
border-bottom: 200px solid black; /* color of fake border */
}
http://codepen.io/gc-nomade/pen/eDIGJ
您甚至可以同时使用两个伪元素并添加一些阴影:http://codepen.io/gc-nomade/pen/axmsc