是否有一种 CSS 属性可以在背景图像周围设置边框?我一直在寻找这个属性,但没有找到它。它是否存在,还是我只能手动绘制背景图像周围的线条?
可以通过在 div 中添加图像,然后设置 div 的边框来完成此操作
<div style="border:1px solid red;float:left;">
<div style="background:url("...");float:left;"></div>
<div>
没有具体的实现细节,很难(甚至是不可能)提供适用于所有情况的解决方案。以下是一些基于所提供约束的解决方案:
如果你知道背景图片的高度和宽度,可以像这样做:
div.bg {
background-image: url('http://www.google.com/images/logo_sm.gif');
border: 5px solid #000;
width: 50px;
height: 50px;
}
<div class="bg"> </div>
工作示例:http://jsfiddle.net/WUHmw/
如果背景图像需要重复,您可以这样做:
div.bg {
background: url('http://i.imgur.com/ikxbnvc.png') repeat;
border: 5px solid #000;
box-sizing: border-box;
width: 100%;
height: 200px;
}
<div class="bg">
<p>Here is some text to on top of the background image.</p>
</div>
<div>
周围设置边框。这是您的[jsfiddle已修改以显示问题](http://jsfiddle.net/WUHmw/82/)。 - tatlar这也可以使用 CSS 的投影效果 (drop-shadow) 实现。 https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter-function/drop-shadow
.box {
width:400px;
height: 400px;
display: flex;
justify-content: center;
align-items:center;
border: 1px solid red;
.bgImg{
width: 300px;
height: 300px;
background: url('http://i.imgur.com/ikxbnvc.png');
background-repeat: no-repeat;
background-size: contain;
background-position: center center;
filter: drop-shadow(0 0 1px black);
}
}
<div class="box">
<div class="bgImg"></div>
</div>
浏览器的支持并不完美。