根据容器大小进行字体缩放

2024-03-25

我很难理解字体缩放。

我目前有一个带有正文的网站font-size100%。 100% 但什么?这似乎是按 16 像素计算的。

我的印象是 100% 在某种程度上指的是浏览器窗口的大小,但显然不是,因为无论窗口大小调整为移动宽度还是成熟的宽屏桌面,它始终是 16 像素。

如何使网站上的文本相对于其容器缩放?我尝试使用em,但这也无法扩展。

我的理由是,当你调整大小时,像我的菜单这样的东西会被压扁,所以我需要减少px font-size of .menuItem与容器宽度相关的其他元素。 (例如,在大桌面上的菜单中,22px工作完美。向下移动到平板电脑宽度并16px更合适。)

我知道我可以添加断点,但我真的希望文本缩放为well因为有额外的断点,否则,宽度每减少 100 像素,我就会有数百个断点来控制文本。


容器查询现在可能是最好的选择,具体取决于您的用例,并且所有主要浏览器都支持。请参阅此处的支持级别:https://caniuse.com/mdn-css_properties_container https://caniuse.com/mdn-css_properties_container

现在很容易控制

.module h2 {
  font-size: 1em;
  container-name: sidebar
}

@container sidebar (min-width: 700px) {
  .module h2 {
    font-size: 2em;
  }
}

请查看有关容器查询的 MDN 文章了解更多详细信息:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries

有关您可以完成的任务的更多示例:https://css-tricks.com/a-few-times-container-size-queries-would-have-helped-me-out/ https://css-tricks.com/a-few-times-container-size-queries-would-have-helped-me-out/

=========================

旧答案

如果容器不是主体,CSS 技巧涵盖了您的所有选项使文本适合容器 https://css-tricks.com/fitting-text-to-a-container/.

如果容器是身体,那么你要寻找的是视口百分比长度 http://dev.w3.org/csswg/css-values/#viewport-relative-lengths:

The 视口百分比长度是相对于的大小初始包含块 https://www.w3.org/TR/CSS21/visudet.html#containing-block-details。当初始包含块的高度或宽度更改时,它们会相应地缩放。然而,当根元素上的overflow值为auto时,任何滚动条都被假定不存在。

这些值为:

  • vw(视口宽度的%)
  • vh(视口高度的%)
  • vi(根元素内联轴方向视口大小的 1%)
  • vb(根元素块轴方向视口大小的 1%)
  • vmin(较小的vw or vh)
  • vmax(较大或vw or vh)

1 v* 等于初始包含块的 1%。

使用它看起来像这样:

p {
    font-size: 4vw;
}

正如您所看到的,当视口宽度增加时,font-size,无需使用媒体查询。

这些值是一个尺寸单位,就像px or em,因此它们也可用于调整其他元素的大小,例如宽度、边距或填充。

浏览器支持非常好,但您可能需要备用,例如:

p {
    font-size: 16px;
    font-size: 4vw;
}

查看支持统计数据:http://caniuse.com/#feat=viewport-units http://caniuse.com/#feat=viewport-units.

另外,请查看 CSS-Tricks 以获取更广泛的了解:视口大小的版式 http://css-tricks.com/viewport-sized-typography/

这是一篇关于设置最小/最大尺寸以及对尺寸进行更多控制的好文章:精确控制响应式排版 http://madebymike.com.au/writing/precise-control-responsive-typography/

这里有一篇关于使用 calc() 设置大小以使文本填充视口的文章:http://codepen.io/CrocoDillon/pen/fBJxu http://codepen.io/CrocoDillon/pen/fBJxu

另外,请查看这篇文章,它也使用一种称为“moltenleading”的技术来调整行高。Molten 在 CSS 领域处于领先地位 https://css-tricks.com/molten-leading-css/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据容器大小进行字体缩放 的相关文章

  • Flexbox 中的图像高度在 IE 中不起作用

    我有一个 Flex 行 其中包含 5 个 Flex 单元格 其中包含一个应该在中间对齐的图像 它在 Chrome 和 Firefox 中完美运行 但在 IE 中却不行 它没有得到好的比例 换句话说 height auto当图像位于 Flex
  • 是否可以删除将鼠标悬停在链接上时出现的手形光标? (或将其设置为普通指针)

    我想删除当您将鼠标悬停在超链接上时出现的手形光标 我试过这个CSS a link cursor pointer 和这个 a link cursor pointer important 当我将鼠标悬停在链接上时 它仍然会变成手 有谁知道为什么
  • CSS - 制作“步进”文本的好方法?

    有没有一种好的方法可以实现以下目标 而无需任何额外的标记 不过使用 JavaScript 就很好了 任何想法 Thanks Edit 我的标记将是这样的 div style width 400px p Text text text Text
  • HTML:您可以隐藏/忽略浏览器查找中的文本元素 (CTRL+F)

    我有一个具有相当复杂的 UI 的 Web 应用程序 并且屏幕的一部分保留用于内容 如果可能的话 我想这样做 以便当用户使用浏览器的内置文本搜索 CTRL F 时 UI 中的任何文本都将被忽略 并且仅搜索实际内容 这可行吗 CSS 和 Jav
  • 如何禁用向左滚动?

    I got a div 元素 parent 包含多个子元素 item 我想启用滚动父元素一个方向 left OR正确的 否则什么都不会发生 看我的代码 parent scroll function gt gt gt scroll event
  • min-height 和 height 属性有什么区别? [复制]

    这个问题在这里已经有答案了 我查了一下这个问题 但无法理解它与我的具体问题的关系 我将有问题的 html 设置如下 div class container fluid div class inner div class weatherdat
  • CSS 3.0 用户选择属性替换

    我正在使用 CSS 3 0 它抱怨 用户选择 属性不存在 有谁知道合适的替代品或替代品是什么 user select is 回到规范 https drafts csswg org css ui 4 propdef user selectCS
  • IE9支持CSS线性渐变吗?

    有了 Chrome Safari 和 Firefox webkit gradient and moz linear gradient特性 我怎样才能用 IE9 做同样的事情呢 最好的跨浏览器解决方案是 background fff back
  • CSS 转换的中断对于相同的属性值不起作用

    I ve 回答了一个问题 https stackoverflow com a 43372990 3162554关于如何在悬停子元素时启动动画 然后保留应用的样式 直到取消悬停父元素 然而 我在我提出的解决方案中发现了一个我无法解释但我想理解
  • 状态代码 304(Jade、Node、Express)

    我在我的 jade 文件中链接 bootstrap 和 jquery link rel stylesheet href stylesheets bootstrap css and script src javascripts jquery
  • 如何强制ipad上出现滚动条? (移动 Safari)[重复]

    这个问题在这里已经有答案了 我无法在移动 Safari 中显示滚动条 因为当存在可滚动内容时 overflow auto 不起作用 我发现这个CSS属性 webkit overflow scrolling 触摸 正如一些人建议的那样 这是针
  • 为什么 webkit 径向渐变在 Safari 中不起作用?

    这在 Chrome 中有效 但在 Safari 中无效 background webkit radial gradient center ellipse cover fdfdfd d3d3d3 我该如何修复 Safari 的问题 它甚至在
  • 使用 CSS3 反转进度条

    我有这个EXAMPLE http jsfiddle net Mils fmaGZ 1 我想将进度条反转 180 度 从右向左进行 要获得这样的东西 我试图改变过渡属性但没有结果 Code progress bar span display
  • CSS3 媒体查询放在哪里?

    我正在与自己进行一场哲学辩论 讨论将媒体查询放在样式表中的最佳位置 我正在尝试模块化地构建我的CSS 例如OOCSS或SMACSS等 鉴于这种情况 我看到两个选择 将所有媒体查询放在单独的样式表或主样式表的一部分中 将媒体查询置于其基本对应
  • 这个 HTML5
    元素有什么问题?

    div div
  • 表单输入不会采用百分比填充

    如果使用像素填充 我的表单输入会正确显示 但使用左侧和右侧的百分比填充会破坏它 我不明白为什么 它可以在 Safari 中运行 但在 Firefox 3 5 3 OSX 中损坏 问题是 当我使用百分比填充时 填充全部中断 因此输入值没有很好
  • 某些表格后的分页符

    我的问题是 我有一个页面 其中包含几个要打印的 html 表格 有些表有很多行 有些则没有 我想要做的是将第一个和第二个表 大表 打印在单独的页面中 其余表 小表 每页打印两个 如何在我想要的位置放置分页符 我试过 但这会在每个表格后面添加
  • React Native 中 fontAwesome 图标的圆形轮廓

    我想使用 fontAwesome 图标 使其位于圆圈的中间 我想将它用作一个图标项 我读到我们可以将它与圆形图标一起使用并将其放置在其中 但我无法使其工作 import IconFA from react native vector ico
  • 复合组件和 CSS

    I have newcss css formdiv width 30 margin 150 auto 和复合组件
  • Django - 渲染到字符串无法加载 CSS

    我正在尝试使用 Django 1 8 render to string 通过管理命令将 html 转换为 pdf 而不是使用 View request 以下代码可以将模板转换为 pdf 但它无法将 CSS 加载到模板中 def html t

随机推荐

  • 无法在 Samsung 上将数据库从版本“n”降级到“n-1”

    我有一个带有数据库的应用程序 使用标准 SQLiteOpenHelper 创建和打开 每当我升级数据库版本时 我也会升级应用程序的版本代码 因此数据库没有办法下降 数据库版本号总是增加 从不减少 我通过设置禁用了应用程序中的数据库备份and
  • PHP:=0D、=A20 符号

    从电子邮件正文获取信息后 我有很多符号 例如 0D A20 等 我该如何删除它们 我不想使用 body str replace A20 body 因为如果电子邮件正文确实包含该内容 它将被替换 有任何想法吗 谢谢 不要将它们替换为空 这些字
  • 在导航回 UINavigationController 堆栈中的上一个控制器之前向用户提示 UIAlertView

    我试图在导航到前一个控制器之前提示 UIAlertView 并在用户决定留在同一视图控制器上时阻止导航 使用CCT后退按钮操作助手 https github com weipin CCTBackButtonAction UIAlertVie
  • 翻转列表/元组的Pythonic方法[重复]

    这个问题在这里已经有答案了 翻转 列表 元组的最Python方式是什么 我所说的翻转的意思是 如果你有一个元组的元组 你可以使用像 tuple a b 这样的语法 翻转 它 这样你就可以执行 tuple b a 来获得相同的结果物品 一个例
  • TensorFlow - 显示会话中的所有变量

    我玩过一点 import tensorflow as tf x tf Variable 1 0 2 0 initializer tf global variables initializer session run initializer
  • ARM NEON:如何实现 256 字节查找表

    我正在使用内联汇编将我编写的一些代码移植到 NEON 我需要的一件事是将范围 0 128 的字节值转换为表中采用完整范围 0 255 的其他字节值 该表很短 但其背后的数学并不容易 因此我认为不值得每次 即时 计算它 所以我想尝试查找表 我
  • 如何在 tkinter 中获取条目的值?

    我正在尝试使用 Tkinter 的 Entry 小部件 我无法让它做一些非常基本的事情 返回输入的值 有谁知道为什么这么简单的脚本不会返回任何内容 我尝试了很多组合并研究了不同的想法 该脚本运行但不打印该条目 from Tkinter im
  • WPF C# 列表框外部滚动按钮

    您好 有一个列表框 我想要外部按钮来滚动列表框 我怎样才能实现这个目标 感谢您的帮助和示例 添加按钮点击处理程序 private void buttonUp Click object sender RoutedEventArgs e if
  • 干扰者:日记示例

    我对关于日志记录步骤的最常见 或推荐 disruptor 实现感到好奇 我最常见的问题是 它是如何实际实现的 通过示例 使用 JPA 明智吗 常用的数据库是什么 已经使用disruptor实施项目的社区 在中间处理程序 EventProce
  • Amazon S3 避免覆盖同名的对象

    如果我将文件上传到 S3 其文件名与存储桶中对象的文件名相同 则会覆盖该文件 有哪些选项可以避免覆盖具有相同文件名的文件 我在存储桶中启用了版本控制 认为这可以解决问题 但对象仍然被覆盖 我上面的评论不起作用 我以为WRITEACL 也适用
  • 如何从标准输入读取输入并强制编码?

    目标是不断地阅读stdin并强制执行utf8在Python2和Python3中 我尝试过以下解决方案 以与 python2 和 python3 兼容的方式将字节写入标准输出 https stackoverflow com questions
  • ER_CON_COUNT_ERROR:node-mysql 中连接过多错误

    我是节点初学者 以下是我尝试使用 Node mysql 执行的代码 但它一直给我这个错误 error connecting Error ER CON COUNT ERROR Too many connections CODE var siz
  • 在服务器上找不到 Git LFS 文件

    我们一直在使用 Git 和由我们自己的 Gitlab 实例托管的 git lfs 有时 当某个特定用户推送文件时 其中一些文件 似乎是 png 文件 不会进入 LFS 存储 而是添加到 git 中 当这种情况发生在他们的机器上时 我还无法看
  • 在 http 请求中使用 `retryWhen`

    我已经延长了Http类来设置默认标头并处理 angular2 应用程序内所有请求的错误 我想使用retryWhen 对某些错误重试请求 哪些错误应该retryWhen重试请求以及出现哪些错误时应停止 Injectable export cl
  • java中内部类和局部内部类有什么区别?

    如果一个类是本地内部类 这是否意味着它位于另一个类的方法内部 或者是否意味着它只是在某个地方的另一个方法中定义 例如 在下面的代码中 MenuListener 是否被视为内部本地类 import java awt import java a
  • iOS:是否可以同时从耳机和扬声器发送音频?

    我们希望从耳机插孔发送一些串行数据 但仍然希望能够从扬声器播放音频 是否可以将输出发送到两者 如果是这样 是否可以向每个发送不同的音频 据我所知还没有 您可以获得有关路由何时更改 即当有人连接耳机线时 的编程通知 但您无法指定用于输出的设备
  • 我想对 dict 进行子类化并设置默认值

    我需要创建一个特殊的 dict 子类 在其中我想为一组键设置默认值 我似乎无法找到执行此操作的正确语法 这是我一直在尝试的 class NewDict dict Key1 stuff Key2 Other stuff NoList Nada
  • 从GridView中获取特定列的总计值

    Him 我正在使用 ASP NET VB NET 和 SQL Server 2012 我有一个 GridView 列 其中包含 3 个字段和 1 个模板字段 如下所示
  • 如何使用自制程序安装 Elasticsearch 5.3.1

    我之前已经使用自制软件在我的 Mac 上安装了 elasticsearch 5 3 1 homebrew 上最新的 elasticsearch 现在是 5 5 0 因此任何运行brew 安装的新团队成员都会选择该版本 我注意到从 elast
  • 根据容器大小进行字体缩放

    我很难理解字体缩放 我目前有一个带有正文的网站font size100 100 但什么 这似乎是按 16 像素计算的 我的印象是 100 在某种程度上指的是浏览器窗口的大小 但显然不是 因为无论窗口大小调整为移动宽度还是成熟的宽屏桌面 它始