我有一个页面使用 REM 单位和媒体查询。 说inner.php
我将该页面包含到我的其他网页中 说outer.php包含inner.php。
这里inner.php使用html字体大小作为断点。 喜欢
@media all and (max-width:1024px)
{
html
{
font-size:12px;
}
}
如何通过将我的 div 设置为根字体大小而不是 html 标签来更改此行为。
@media all and (max-width:1024px)
{
div#divId
{
font-size:12px;
}
}
我尝试用我的 div id 替换所有 html 标签 css。但它不起作用? 知道我该怎么做吗?
如何让div作为根元素而不是html标签?
Rem 值是真实的。 像这样的东西。
html { font-size: 62.5%; }
body { font-size: 1.4rem; } /* =14px */
h1 { font-size: 2.4rem; } /* =24px */
默认情况下你有
1rem =16px
;
通过上述声明,您会得到
(16*62.5)/100
,这会给您 1 rem = 10px
;
根据您需要的 div 使用它
这只是以 px 为单位声明单位。?
html {
font-size:12px;
}
REM = root em。全名可能应该是 root-relative em。 这是因为它是相对于根而言的。 这里的根是 html 元素(我认为你不能改变它),而不是像普通 em 那样的直接父元素。
如果你的样式表中有这个。
:root {
font-size: calc(100vw / 40);
}
:root
即您的 html 元素将获得此 font-size 属性,从而对整个页面进行更改。
如果您的媒体查询中有
px
,那么您的根元素字体大小是什么并不重要。
如果您的媒体查询中使用
em
作为单位,那么它会继承自其父级。
如果您的媒体查询中使用
rem
作为单位,那么它会继承自其根元素。
所以如果你想改变inner.php中的所有字体大小。找到inner.php和outer.php中字体大小的比率,并将所有inner.php字体大小除以该比率(相当多的变化)。或使用 javascript 并divide 来获取inner.php 容器中的字体大小并相应地划分它们(几行)。
可悲的是
html
始终是root。
您可以在
px
上设置 #divId
值,并使用 em
调整子级的大小。这样您就可以用新值覆盖 html
字体大小:
html {
font-size: 12px;
}
p {
font-size: 1rem;
}
#divId {
font-size: 12px;
}
#divId p {
font-size: 1em;
}
@media (min-width:200px) {
html {
font-size: 20px;
}
#divId {
font-size: 10px;
}
}
以下内容设置“字体大小”,使 40em 正好适合视口,确保无论屏幕大小如何,大致相同数量的文本始终填充屏幕。
:root #divName{
font-size: calc(100vw / 40);
}
如果使用“rem”单位指定设计的其余部分,则整个布局将缩放以匹配视口宽度。
虽然 REM 单位始终相对于 :root (即 html 元素),但您可以通过使用 calc 和 css 变量来模拟 REM 行为,如下所示:
:root{
font-size: 20px; /* this is what rem will be based on */
}
.rem-based-font-size{
font-size: 2rem; /* will equal 40px */
width: 12rem; /* will equal 240px */
background: yellow;
}
.my-desired-root{
--my-font-size: 30px;
font-size: calc(2 * var(--my-font-size)); /* will equal 60px */
width: calc(12 * var(--my-font-size)); /* will equal 360px */
background: red;
}
<html>
<head></head>
<body>
<div class="rem-based-font-size">Sample text</div>
<div class="my-desired-root">Sample text</div>
</body>
</html>