丑陋的边框错误,position:relative > position:absolute > border-radius:50% ,参见 fiddle
UGLY BORDER bug, position:relative > position:absolute > border-radius:50% , see fiddle
https://jsfiddle.net/0h3rqqru/
<div style="position:relative; width:500px; height:500px; background:blue; border-radius:50%;">
<span style="position:absolute; width:100%; height:100%; background:white; border-radius:50%;"></span>
</div>
我的问题是,当 position:absolute 位于 position:relative 内部并且 border-radius:50% 时,会出现奇怪的边框。
为此搜索了数小时的解决方案,但未能找到答案。
我已经工作了几天来构建稍微更高级的东西,"pie chart"。除了这个边界问题,一切正常。没有解决边界问题,我还不如把它扔进垃圾桶;'(.
错误可见于:Edge 和 Chrome,如果您将 transform:rotate(90deg) 应用于绝对元素,则在 firefox 中也可见。
更新
我用饼图创建了一个代码笔来更具体地展示我正在尝试解决的问题:
https://codepen.io/anon/pen/evXJPw
删除background:blue;从你的外容器。
或者,如果您真的想要那里的背景颜色。确保定位准确,然后使用 1px 边框隐藏背景间隙。在这里的 FF 看起来不错 http://codepen.io/anon/pen/MpLqPd
或者使用 SVG,对于圆更好。
.outer{
position:relative;
width:500px;
height:500px;
background:blue;
border-radius:50%;
}
.inner{
position:absolute;
top: 50%;
left: 50%;
transform: ;
width:100%;
height:100%;
background:#e3e3e3;
border-radius:50%;
border: 1px solid #e3e3e3;
}
.seeInfirefox{
transform-origin: 50% 50%;
transform:translateX(-50%)translateY(-50%)rotate(90deg);
}
https://jsfiddle.net/0h3rqqru/
<div style="position:relative; width:500px; height:500px; background:blue; border-radius:50%;">
<span style="position:absolute; width:100%; height:100%; background:white; border-radius:50%;"></span>
</div>
我的问题是,当 position:absolute 位于 position:relative 内部并且 border-radius:50% 时,会出现奇怪的边框。
为此搜索了数小时的解决方案,但未能找到答案。
我已经工作了几天来构建稍微更高级的东西,"pie chart"。除了这个边界问题,一切正常。没有解决边界问题,我还不如把它扔进垃圾桶;'(.
错误可见于:Edge 和 Chrome,如果您将 transform:rotate(90deg) 应用于绝对元素,则在 firefox 中也可见。
更新
我用饼图创建了一个代码笔来更具体地展示我正在尝试解决的问题: https://codepen.io/anon/pen/evXJPw
删除background:blue;从你的外容器。 或者,如果您真的想要那里的背景颜色。确保定位准确,然后使用 1px 边框隐藏背景间隙。在这里的 FF 看起来不错 http://codepen.io/anon/pen/MpLqPd
或者使用 SVG,对于圆更好。
.outer{
position:relative;
width:500px;
height:500px;
background:blue;
border-radius:50%;
}
.inner{
position:absolute;
top: 50%;
left: 50%;
transform: ;
width:100%;
height:100%;
background:#e3e3e3;
border-radius:50%;
border: 1px solid #e3e3e3;
}
.seeInfirefox{
transform-origin: 50% 50%;
transform:translateX(-50%)translateY(-50%)rotate(90deg);
}