html - 使用 lang css 指令缩小字体大小会产生奇怪的结果
问题描述
我正在创建多语言网站,并且我意识到某些语言(例如法语)非常冗长,这破坏了我使用英文副本完成的设计。所以我一直在尝试使用:lang
css 指令,主要是为了减少法语登录页面的字体大小。但结果非常违反直觉。少量减少百分比会导致实际尺寸大大减少。
也许我的理解是不正确的。这是一个解释这种现象的示例代码
:lang(fr)
{
font-size:90%;
}
h1 {
font-size:3em;
}
<h1>
This is my heading
</h1>
<h1 lang="fr">
This is my very very long verbose heading in French
</h1>
如您所见,我的法语标题变得非常小,字体大小仅减少了 10%。
解决方案
“也许我的理解是不正确的。”是的,我想是的。您期望法语的字体大小将显示您定义的 3em 的 90% h1 { font-size:3em;}
。
但是当你设置类似的东西时请记住,这font-size:90%
意味着字体大小将从我们已经设置字体大小的直接父级继承 90%。从您给定的代码中,您没有设置<h1 lang="fr">
容器的字体大小(在本例中为“body”)。
如果我们不设置正文浏览器的字体大小,默认设置为 16px(在 chrome 中,但它可以因浏览器而异)。所以伪类:lang(fr)
选择器比标签选择器具有更高的优先级h1
,它继承自它的容器主体标签,意思是“14.4px”。
我的建议是克服这种情况应用em
单位。em
单元继承自最顶层的父级。请参阅以下方法,它可能会给您一个方法。
body {
font-size: 16px;
}
h1 {
font-size:3em; /* means 16*3 = 48px; */
}
h1:lang(fr) {
font-size:2.7em; /* (48*90)/100 = 43.2px/16px = 2.7em */
}
<h1>Actual Font Size</h1>
<h1 lang="fr">French Font Size</h1>
推荐阅读
- android - CustomAdapter 使用 SQL 数据库显示重复项
- c - 如何在 Xcode 中使用 -r 选项调用我的程序?
- asp.net - 在模态中按回车键关闭模态但不提交数据
- node.js - Sequelize – 多对多关联
- cordova - 如何在 quasar/cordova/vue.js 移动应用程序上嵌入外部主页?
- excel - 如果行中的所有其他条目为空,如何从单元格中删除数据?
- css - AntDesign TabPane 最小高度 100%
- javascript - 页面加载完成后如何为特定元素创建淡出效果?
- c - 为什么地址不一样?
- javascript - Javascript 相当于从 Value 创建 nonce 值