有没有可能在CSS中实现这一点:
我想在文档中保留排版层次结构。我想动态地改变我的标题的大小(保持一个比例),这取决于我的字体大小我的身体在PX。
假设我希望我的标题和正文大小之间保持同步,并根据正文在PX中的字体大小而改变。如果正文的字体大小增加/减少,标题h1,h2,h3也跟随并保持比例。
这在CSS中是可行的吗?
该问题询问如何确保文档中的所有字体大小与body元素中设置的大小成比例地变化。
如果你在正文中设置一个确定的大小,然后使用em单元来调整字体的大小,你会发现所有的东西都是按比例变化的。
但是要注意em单元本身是一个相对单元。这可能是你想要的,但要确保。考虑这个例子。作为h1元素的子元素的div具有与h1的字体大小成比例的字体大小,h1的字体大小本身与其父元素(body元素)的字体大小成比例。div不是h1的子级,只是body元素的,它的字体大小只与body的字体大小成比例。见下面的片段。
还有另一个单元rem(根em),它设置在文档的html Eleme
nt中。大多数浏览器在那里设置基本字体大小O16px,因此这就是1rem。你可以改变它,例如设置我们的体字体大小在REM方面。这样做的主要原因是承认用户可以改变他们浏览器中的基本设置,也许他们希望所有的文本都将自动变大,所以它是考虑到设置你的身体字体大小在REM方面。
为了使计算更容易,设置
html {
font-size: 62.5%;
}
然后你的rem将是10px(或者用户设定的任何比例)。然后通过以下方法使您的正文字体大小达到24px(对于大多数用户或与用户的浏览器设置成比例)
body {
font-size: 2.4rem;
}
从那以后,在使用em或rem时,取决于在文档中的特定点适合您的情况,所有的东西都将是成比例的,并且作为一个额外的好处,给用户更好的可访问性。下面是一个片段来说明:
html :
font-size: 62.5%;/* 10px on most browsers */
}
body {
font-size: 2.4rem;/* 24px; */
}
h1 {
font-size: 2em;/* 48px; */
}
div {
font-size: 1.5em;
}
<html>
<body>
This is inside the body only
<h1>This is h1 inside body and with font-size 2em
<div>This is div inside h1 and with font-size 1.5em</div>
</h1>
<h1>This is h1 inside body and with font-size 2em
</h1>
<div>This is div outside h1 and with font-size 1.5em</div>
</body>
</html>