深入到一个项目中,我们在字体大小中使用 em 时遇到了问题。我们有几个标记模块,我们在不同的上下文中重用它们。在不同的上下文中,计算出的字体大小不同,因此经常头疼。使用 em 对我们很重要,因为我们使用的是响应式设计。所以字体大小的可伸缩性是必须的。请参阅jsFiddle
一个简单的示例。
我们怎样才能保持字体的放大和缩小,但使它不那么上下文敏感?
问问题
239 次
2 回答
0
听起来您正在寻找 rem 单位。
.context1 {
font-size: 1em;
}
.context2 {
font-size: 1.5em;
}
.my-font-size {
font-size: 3rem;
}
浏览器支持相当不错(参见: http ://caniuse.com/#feat=rem )。唯一不支持它的主流浏览器是 IE8。
于 2013-09-24T17:37:57.843 回答
0
继承可能很烦人,尤其是在使用 ems 时。正如您通过类名知道上下文一样,您应该能够通过应用一些简单的数学来克服这个问题。
让我们把一切都.context1
当作理想,你的 CSS 目前看起来像:
.context1 {
font-size: 1em;
}
.context2 {
font-size: 1.5em;
}
.my-font-size {
font-size: 3em;
}
在您的情况下,第一个标题将是3em
,第二个标题实际上是4.5em
因为父级被定义为大 1.5 倍。要解决此问题,您可以执行以下操作:
.context1 {
font-size: 1em; //default font size for .context1
}
.context2 {
font-size: 1.5em; //default font size for .context2
}
.my-font-size {
font-size: 3em; //default font size for .my-font-size
}
.context2 .my-font-size {
font-size: 2em; //adjust the font size for the parent's value (3/1.5)
}
同样,您可以将其定义.context2
为规范:
.context1 .my-font-size {
font-size: 4.5em; //(3 * 1.5)
}
于 2013-09-24T15:42:08.347 回答