仅为特定 div 内的所有元素重置 rem 或字体大小

Sun*_*nny 5 css sass font-size

我有一个典型的 HTML 结构,如下面的代码所示。

<div class="common-parent">
  <div class="parent>
    <div class="child">
      <h2>Child 1</h2>
      <span>Some text here...</span>
    </div>
    <div class="new-child">
      <h2>New Child</h2>
      <div>
        <span>Some text here...</span>
      </div>            
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,我需要更改 div.parent 中所有元素的字体大小或 rem 大小,包括它自己。

由于默认的 rem 大小等于 16px,我需要将其减小到 12px,即 75%。我无法在 'html' 标签上更改它,因为它也会影响所有其他元素。

如何使用 SCSS 或 CSS 仅为“div.parent”和其中的所有元素更改它?

Pon*_*man 8

CSS 长度单位“rem”表示“Root EM”,它始终取决于根元素<HTML>。因此,如果您希望字体大小取决于特定父元素的字体大小设置,您可以使用其他单位,例如 em 或百分比。

  • 我认为OP和其他像我一样发现这一点的人希望有一些CSS功能来“重新root”`rem`单元。尽管这不是我们想听到的,但这个答案在此时仍然是正确的。 (11认同)

Dav*_*ber 3

如果您可以接受适用于除 Firefox 之外的所有浏览器的解决方案,请使用:

.parent {
    zoom: 0.75;
}
Run Code Online (Sandbox Code Playgroud)

对于 Firefox,请使用以下怪癖:

.parent {
    transform: scale(0.75);
    transform-origin: top left;
    width: 133.33%;
}
Run Code Online (Sandbox Code Playgroud)