我想实现这样的目标:
元素的宽度为 100%。我将只使用居中的角并与边框顶部结合:
.element {
border-top: solid 1px #ccc ;
background: url('../images/arrow.png') no-repeat center top;
}
但边界留在箭头内。我试图up image background -1px
隐藏边框,但没有奏效。我该怎么做呢?
我想实现这样的目标:
元素的宽度为 100%。我将只使用居中的角并与边框顶部结合:
.element {
border-top: solid 1px #ccc ;
background: url('../images/arrow.png') no-repeat center top;
}
但边界留在箭头内。我试图up image background -1px
隐藏边框,但没有奏效。我该怎么做呢?
我用一个额外的容器解决了它:
HTML:
<div class="first"><div class="second"></div></div>
CSS:
.first {
border-bottom: 5px solid #000;
width:100px;
height:100px;
background-size: 20%;
background-position:50% 105%;
box-sizing: border-box;
}
.second {
width:100%;
height:104px;
background: url(https://encrypted-tbn3.google.com/images?q=tbn:ANd9GcROusF7rh7H4mWpr8wQIllxWPAHHIShRyG62xp3qy2O4Av_NmNV) no-repeat;
background-size: 20%;
background-position:50% 100%;
}
jsfiddle:http: //jsfiddle.net/AKpLT/
如果您已经在创建图像,只需将整个图像制作成您想要的形状即可。让它足够长,以便它可以调整到您可能想要放入的任何合理长度元素。
有趣的问题。这是一个人为的解决方案,使用:before
选择器将图像绝对定位在边框上。有关工作示例,请参阅此 jsfiddle 。相关代码如下:
div {
border: 1px solid red; /* For demo purposes it's red */
position: relative;
}
div:before {
content: url('http://i.stack.imgur.com/P3zMs.png');
position: absolute;
top: -1px;
width: 100%;
text-align: center;
line-height: 1px;
}
这是结果的屏幕截图:
编辑:选择器的浏览器兼容性:before
告诉我们它仅在 IE8 及更高版本中受支持。更糟糕的是,因为据我所知,即使在 IE9 中,伪元素的content: url(...)
构造和background-image
:before 似乎也不起作用。幸运的是,这应该属于优雅的贬低...
像 Mash 我会使用另一个元素作为背景,但与 Mask 不同的是我会使用 CSS :before 或 :after 伪元素:
<h2>Heading</h2>
h2 {
border-top: 1px solid #ccc;
position: relative;
}
h2:after {
background: url(IMAGE);
content: " ";
display: block;
width: WIDTH-OF-IMAGE;
height: HEIGHT-OF-IMAGE;
position: absolute;
left: 50%;
top: -1px;
margin-left: -WIDTH-OF-IMAGE/2;
}