显示按比例缩小字体大小的容器
Display container with scaled-down font-size
想象一下有一个容器,容器下面会有很多其他元素。
这些元素中的每一个都可能将其字体大小设置为 显式 (例如 p
可能是 16px、blockquote
、20px 等)。
我想显示这个容器,字体大小按一定比例缩小,同时保留容器内元素之间的相对大小差异(例如 p
的字体大小必须始终为 4/ blockquote
的 5 个字体大小)。
我可以用 HTML/CSS 做这个吗?
编辑上下文:
我正在使用某种主题,我最好避免遍历所有元素以在 em
中重新转换它们(我很清楚),也不要重新定义它们全部.
我真正想知道的是,是否有类似的东西:.myDiv { font-size-scale: 0.5; }
我可以申请并完成它。
您可以使用 SASS 并使用一些数学来确定字体大小。
一个简单的例子如下
$blocksize: 20px;
blockquote {
font-size:$blocksize;
}
您将 blockqoute 字体大小设置为变量。然后将该变量应用为块引用的字体大小。
接下来为您的 'p' 个元素执行 blocksize 变量的操作。
p {
font-size:$blocksize * 0.2;
}
现在 p 元素都将是 blockquote 大小的 80% 或 4/5。
px是绝对尺寸控制,em是相对尺寸控制。使用 em 应该可以让你按你想要的方式缩放和调整大小。虽然这可能很痛苦,但如果您有默认值,例如 16px、20px,并且您只希望特定容器具有不同的大小值,您可能需要使用内联样式属性。
例如:
<p style="font-size: 1em">Text here.</p>
'ems' 是你的朋友
如果容器的字体大小设置为10px,则可以指定其子元素的字体大小为ems,1em相当于父元素的字体大小所以在本例中:
p {
font-size: 1.6em;
}
相当于16px。在元素内设置剩余的字体大小,然后缩放它们,只需更改容器的字体大小即可。您的子元素字体将随着字体大小的变化而缩放。
您可以使用 em
执行此操作。
HTML,
<div>
<p>Some Text</p>
<blockquote>Some Block</blockquote>
</div>
<div class="small">
<p>Some Text</p>
<blockquote>Some Block</blockquote>
</div>
CSS,
p { font-size: 2em; }
blockquote { font-size: 4em; }
div { font-size: 16px; }
div.small { font-size: 9px; }
看例子:https://jsfiddle.net/toz75hp2/3/
如果你想避免 em
, 那么你可以简单地使用 % percentage
值。
看这个例子:https://jsfiddle.net/toz75hp2/4/
CSS,
p { font-size: 200%; }
blockquote { font-size: 350%; }
div { font-size: 16px; }
div.small { font-size: 9px; }
跨浏览器警告! 它不适用于所有浏览器。有些给出了意想不到的结果。
否则你只是指缩放你可以简单地使用css zoom
。但这会缩放所有内容(没有缩放文本 属性)。所以如果容器内只有文本就可以使用。
看例子:https://jsfiddle.net/toz75hp2/5/
.zoom {
zoom: 2;
-moz-transform: scale(2);
-moz-transform-origin: 0 0;
-o-transform: scale(2);
-o-transform-origin: 0 0;
-webkit-transform: scale(2);
-webkit-transform-origin: 0 0;
}
想象一下有一个容器,容器下面会有很多其他元素。
这些元素中的每一个都可能将其字体大小设置为 显式 (例如 p
可能是 16px、blockquote
、20px 等)。
我想显示这个容器,字体大小按一定比例缩小,同时保留容器内元素之间的相对大小差异(例如 p
的字体大小必须始终为 4/ blockquote
的 5 个字体大小)。
我可以用 HTML/CSS 做这个吗?
编辑上下文:
我正在使用某种主题,我最好避免遍历所有元素以在 em
中重新转换它们(我很清楚),也不要重新定义它们全部.
我真正想知道的是,是否有类似的东西:.myDiv { font-size-scale: 0.5; }
我可以申请并完成它。
您可以使用 SASS 并使用一些数学来确定字体大小。
一个简单的例子如下
$blocksize: 20px;
blockquote {
font-size:$blocksize;
}
您将 blockqoute 字体大小设置为变量。然后将该变量应用为块引用的字体大小。
接下来为您的 'p' 个元素执行 blocksize 变量的操作。
p {
font-size:$blocksize * 0.2;
}
现在 p 元素都将是 blockquote 大小的 80% 或 4/5。
px是绝对尺寸控制,em是相对尺寸控制。使用 em 应该可以让你按你想要的方式缩放和调整大小。虽然这可能很痛苦,但如果您有默认值,例如 16px、20px,并且您只希望特定容器具有不同的大小值,您可能需要使用内联样式属性。
例如:
<p style="font-size: 1em">Text here.</p>
'ems' 是你的朋友
如果容器的字体大小设置为10px,则可以指定其子元素的字体大小为ems,1em相当于父元素的字体大小所以在本例中:
p {
font-size: 1.6em;
}
相当于16px。在元素内设置剩余的字体大小,然后缩放它们,只需更改容器的字体大小即可。您的子元素字体将随着字体大小的变化而缩放。
您可以使用 em
执行此操作。
HTML,
<div>
<p>Some Text</p>
<blockquote>Some Block</blockquote>
</div>
<div class="small">
<p>Some Text</p>
<blockquote>Some Block</blockquote>
</div>
CSS,
p { font-size: 2em; }
blockquote { font-size: 4em; }
div { font-size: 16px; }
div.small { font-size: 9px; }
看例子:https://jsfiddle.net/toz75hp2/3/
如果你想避免 em
, 那么你可以简单地使用 % percentage
值。
看这个例子:https://jsfiddle.net/toz75hp2/4/
CSS,
p { font-size: 200%; }
blockquote { font-size: 350%; }
div { font-size: 16px; }
div.small { font-size: 9px; }
跨浏览器警告! 它不适用于所有浏览器。有些给出了意想不到的结果。
否则你只是指缩放你可以简单地使用css zoom
。但这会缩放所有内容(没有缩放文本 属性)。所以如果容器内只有文本就可以使用。
看例子:https://jsfiddle.net/toz75hp2/5/
.zoom {
zoom: 2;
-moz-transform: scale(2);
-moz-transform-origin: 0 0;
-o-transform: scale(2);
-o-transform-origin: 0 0;
-webkit-transform: scale(2);
-webkit-transform-origin: 0 0;
}