css - 基于 EM 的边框宽度替代方案

标签 css

所以我有了这个想法,基于父字体大小,将一堆元素的边框的 EM 值用作变量,这会为我减少很多冗余代码。一切都很好,直到我意识到某些浏览器/用户有最小字体大小,你不能超过它。

某些浏览器的最小值似乎在 6px 到 12 之间,如果用户修改了甚至更多。由于我没有将它用于字体大小,是否有任何其他技巧可以用来设置边框宽度而无需对像素值进行硬编码?

下面是我希望跨浏览器工作的示例,但例如在 Firefox/Cyber​​fox 中,对我来说,它提供了 6 像素宽的边框而不是 2 像素:

   
.parent{
    font-size:2px;
}
.child{
    border:1em solid black;
}
<div class="parent">
<div class="child">
    Hello world!
</div>
</div>

要求:无sass,无js,纯css即可。

最佳答案

正如其他人在推荐中提到的,em 像素等效值基于父字体大小。

在处理用户样式表覆盖时,您永远不能完全保证您的样式会覆盖最终用户的样式。但是,您可以使用 !important 指令并使您的规则尽可能具体。您可能很快就会过火,因此只需测试并使用合理的默认值即可。

html body .parent{
    font-size:2px !important;
}
.child{
    border:1em solid black;
}

这将是一个特殊的游戏,但是 !important 是您最强大的 Assets 。

关于css - 基于 EM 的边框宽度替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41623358/

相关文章:

html - 空间距 Div 消失

html - 为 fontawesome 图标添加白色背景

html - 两个 div 的高度 - 内容和侧边栏

css - 进度条圆圈问题周围的图像

css - 从 SASS 函数返回带有梯度的 css 规则值

javascript - 与 js 交换 div id 后 CSS 不起作用

css - 如何更改顶点 :pageBlock in Salesforce 的边框顶部颜色

javascript - 单击时调整同一窗口大小

html - css hover div position auto left and right

css - 制作一个 <div> 动态填充父级高度的剩余部分