我需要在div中创建一个箭头。我创建了箭头,但需要获得带边框的视觉效果,如下所示
试用样本http://jsfiddle.net/rLZkf/4/
的演示
div {
margin: 20px;
height: 200px;
width: 200px;
background-color: #c1c1c1;
border: #000 solid 2px;
background-image: -webkit-linear-gradient(135deg, transparent 75%, #fff 75%), -webkit-linear-gradient(45deg, transparent 75%, #fff 75%);
background-image: -moz-linear-gradient(135deg, transparent 75%, #fff 75%), -moz-linear-gradient(45deg, transparent 75%, #fff 75%);
background-image: -ms-linear-gradient(135deg, transparent 75%, #fff 75%), -ms-linear-gradient(45deg, transparent 75%, #fff 75%);
background-image: -o-linear-gradient(135deg, transparent 75%, #fff 75%), -o-linear-gradient(45deg, transparent 75%, #fff 75%);
background-image: linear-gradient(135deg, transparent 75%, #fff 75%), linear-gradient(45deg, transparent 75%, #fff 75%);
background-position: 30px 0, 0 0;
background-repeat: no-repeat;
background-size: 30px 30px;
}
<div></div>
答案 0 :(得分:4)
您可以使用CSS3 rotate 属性。写得像这样:
div {
margin:20px;
height: 200px;
width: 200px;
background-color: #c1c1c1;
border:#000 solid 2px;
position:relative;
}
div:after{
content:'';
width:20px;
height:20px;
background:#fff;
position:absolute;
-moz-transform:rotate(45deg);
-webkit-transform:rotate(45deg);
transform:rotate(45deg);
top:-11px;
left:10px;
border-right:#000 solid 2px;
border-bottom:#000 solid 2px;
}
选中此http://jsfiddle.net/rLZkf/6/
<强>已更新强>
答案 1 :(得分:0)
就个人而言,我非常希望在这里对所选答案使用不同的方法。
例如,使用https://css-tricks.com/snippets/css/css-triangle/中解释的原则,您可以使用两个伪元素来创建您之后的效果。
你基本上会使用这个边框技巧创建两个三角形:一个是与你的页面背景相同的颜色,另一个与你的容器边框相同,并且将作为一个&#39;边界&#39;到第一个三角形。
然后,您只需偏移两个三角形的位置,使它们位于容器边框的顶部即可。
.container:after,
.container:before {
border-left: 10px solid transparent;
border-right: 10px solid transparent;
content: " ";
left: 10px;
margin-top: -1px;
position: absolute;
}
.container:before {
border-top: 10px solid #000;
top: 1px;
}
.container:after {
border-top: 10px solid #fff;
top: 0px;
}
当然,如果你使用Sass或类似的东西,你可以将整个东西包裹在mixin中,并将颜色/箭头大小传递给它。
有关快速示例,请参阅http://codepen.io/arnaudvalle/pen/EjgYrp