运行Safari 5.05。
这个CSS在Chrome和Firefox中看起来不错,但是当在Safari中显示时,border-left只跨越border-radius的开头。这会在顶部/底部留下间隙。
.boxWithLeftBorder {
height:100px;
width:100px;
background: #ddd;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
border-left: 20px;
border-color:#000;
border-style:solid;}
我在下面附上了一张图片来澄清。
鉴于人群的智慧,我猜这是众所周知的,或者有一个简单的解决方法。我已经Google搜索到了我的能力,并会欣赏任何想法。谢谢!
答案 0 :(得分:3)
使用某些广告素材CSS pseudo elements(:before
或:after
),您可以实现效果 和 使用最小标记同时。 注意:红色边框颜色强调是我的。
HTML:
<div class="boxWithLeftBorder">Lorem Ipsum</div>
CSS:
.boxWithLeftBorder {
background: #ddd;
border: 3px solid #000;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
height: 100px;
position: relative;
width: 100px;
padding: 0;
}
.boxWithLeftBorder:before {
background-color: #c00;
border-bottom-left-radius: 5px;
border-top-left-radius: 5px;
-moz-border-radius-bottomleft: 5px;
-moz-border-radius-topleft: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-top-left-radius: 5px;
content: "";
display: block;
float: left;
height: 100%;
width: 20px;
}
编辑此小提琴:http://jsfiddle.net/BYa9C/5/
答案 1 :(得分:0)
Safari 5.05和Firefox 3.6+应支持border-radius而不使用-webkit-和-moz-前缀。
如果圆角元素中有元素,则需要具有完全透明的背景或自身具有圆角(讨论中元素内的第一个和最后一个元素)
答案 2 :(得分:0)
由于绘制边框的方式以及目前不同浏览器的变幻莫测,你最终会遇到以这种方式尝试这样做的问题。
您可以通过添加包装盒来破解功能:
.outer-box
{
padding:2px 2px 2px 20px;
border:none;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
background:#000;
width:100px;
height:100px;
}
.inner-box
{
border:none;
-moz-border-radius:8px;
-webkit-border-radius:8px;
border-radius:8px;
background:#ddd;
width:100%;
height:100%;
}
HTML:
<div class="outer-box">
<div class="inner-box"></div>
</div>
我留下了-moz和-webkit前缀,因为那里还有大量的Firefox 3.5和Safari 4。
请注意,内盒的半径较小。这是必要的,因为在缩小方框时角度会发生变化。