提问者:小点点

保持正文字体大小与标题之间的比例


有没有可能在CSS中实现这一点:

我想在文档中保留排版层次结构。我想动态地改变我的标题的大小(保持一个比例),这取决于我的字体大小我的身体在PX。

假设我希望我的标题和正文大小之间保持同步,并根据正文在PX中的字体大小而改变。如果正文的字体大小增加/减少,标题h1,h2,h3也跟随并保持比例。

这在CSS中是可行的吗?


共1个答案

匿名用户

该问题询问如何确保文档中的所有字体大小与body元素中设置的大小成比例地变化。

如果你在正文中设置一个确定的大小,然后使用em单元来调整字体的大小,你会发现所有的东西都是按比例变化的。

但是要注意em单元本身是一个相对单元。这可能是你想要的,但要确保。考虑这个例子。作为h1元素的子元素的div具有与h1的字体大小成比例的字体大小,h1的字体大小本身与其父元素(body元素)的字体大小成比例。div不是h1的子级,只是body元素的,它的字体大小只与body的字体大小成比例。见下面的片段。

还有另一个单元rem(根em),它设置在文档的html Element中。大多数浏览器在那里设置基本字体大小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>