em-calc和rem-calc之间的区别

Alj*_*jaz 4 sass css3 zurb-foundation zurb-foundation-5

em-calc到目前为止,我一直在Zurb Foundation项目中使用CSS大小定义.但是,最近我注意到开发人员使用的 rem-calc越来越多.

我知道每个函数的功能,但我真的不明白何时应该使用em-calcrem-calc.

这两个功能有什么区别?

Bas*_*sen 8

那么你的问题实际上是什么样的副本如何与CSS中的em有何不同?(以及rem和em单位之间的实际区别)等等

em-calc()以像素为rem-calc()单位返回输入的em值,同时 返回rem单位.实际上,这意味着当您使用rem-calc()设置选择器的字体大小时,字体大小相对于html属性的字体大小而不是其直接父级.

您可以在以下示例中看到diffence:

HTML

<body>
<section> section text
    <small>small text</small>
</section>   

<section class="rem"> section .rem text
    <small>small text</small>
</section>
</body>
Run Code Online (Sandbox Code Playgroud)

SCCS

section {
font-size: em-calc(24);
small { font-size: em-calc(12); }
}

section.rem {
font-size: rem-calc(24);
small { font-size: rem-calc(12); }
}
Run Code Online (Sandbox Code Playgroud)

上面的结果将如下图所示:

在此输入图像描述

现在更改section标签的字体大小:

section {
font-size: em-calc(48);
small { font-size: em-calc(12); }
}

section.rem {
font-size: rem-calc(48);
small { font-size: rem-calc(12); }
}
Run Code Online (Sandbox Code Playgroud)

请注意,因为两者的section标签是直接父母body使用rem-calc(48)rem-calc(48)用于的字体大小section在上面不会让这个例子有什么区别.

现在结果如下: 在此输入图像描述

如您所见,小的字体大小不会与其父级缩放.

我个人认为你应该使用rem-calc()页面的主要结构元素(页眉,页脚,内容,导航等)和em-calc()嵌套在前面主要元素中的元素.

所以在这里使用示例:

section {
font-size: rem-calc(20);
small { font-size: em-calc(10); }
}
Run Code Online (Sandbox Code Playgroud)