这种风格在边框外侧给出了平滑边角的边框,但是角落的内部是平方的,我可以将它们弄圆吗?
img{
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
border:white solid 8px;
}
请注意,问题仅在于图像提交的建议仅适用于div。
答案 0 :(得分:8)
您可以使用border-radius值作为border-size值的两倍来获得内圆角。
-webkit-border-radius: 16px;
-moz-border-radius: 16px;
border-radius: 16px;
border:white solid 8px;
答案 1 :(得分:3)
您必须设置高于边框宽度的border-radius-value。看看this jsfiddle。
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
border:black solid 8px;
答案 2 :(得分:2)
这种技术需要将图像包装在div中,因为 - 我不知道为什么 - 在Safari中,psuedo-elements似乎不会为img
元素呈现。
HTML
<div class="box"><img src="http://placehold.it/200x200/" /></div>
CSS
.box {
display:inline-block; /* Makes the wrapper flush with the image */
line-height: 0; /* Stops a gap appearing underneath image */
}
.box, .box:before {
border: 8px solid #fff;
border-radius: 16px;
position: relative;
z-index: 1;
}
.box:before {
display: block;
content: '';
position: absolute;
top: -8px;
left: -8px;
right: -8px;
bottom: -8px;
z-index: 2;
}
:before
伪元素位于图像顶部,内部为弧形边框,基本上模拟图像上的内部曲线边框。这是一个非常好的解决方法,可以实现弯曲的内边界。
包装器和图片的border-width
以及top
伪元素的left
,right
,bottom
和:before
位置需要是包装元素边界半径的一半。
答案 3 :(得分:0)
如果减小边框的粗细将获得预期结果,或增加角落。
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
border:#000 solid 4px;
答案 4 :(得分:0)
您可以使用子元素的第二个边框来模仿边框内部
<style type="text/css">
body {
background:#f0f5f9;
}
.border-outside{
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
border:white solid 8px;
background-color: white;
}
.border-inside {
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background: #7bada4;
}
</style>
<body>
<div class="border-outside">
<div class="border-inside">
content
</div>
</div>
</body>