根据容器宽度动态调整文本大小

2023-12-11

我正在研究响应式设计,并且有一些显示<h3>当浏览器窗口宽度减小时,我想缩小的标签。

初始设置,基于 960px 宽度:

  1. 正文字体大小设置为 14px
  2. h3标签的字体大小为40px
  3. 包含div的宽度为230px

这是我为 javascript/jQuery 制定的:

$(window).resize(function(){
    var containerSize = $('.container').width();
    var textPercentage = 0.17391304347826086956521739130435; /* 40/230 */
    var textRatio = containerSize * textPercentage;
    var textEms = textRatio / 14;

    $('.container h3').css(fontSize,textEms+"em");
});

我的 JavaScript 技能显然非常有限,所以我希望你能帮助我让这一切顺利进行。我觉得$(window).resize函数是错误使用的事件,因为文本应该在页面加载时自动调整大小,而不仅仅是在窗口大小调整时。

先谢谢您的帮助!

注意:我不希望文本拉伸到容器的边缘,这就是我不使用 FitText.js 或 BigText.js 的原因。


window.resize是正确的事件,但它不会在页面加载时触发。但是您可以只添加.trigger('resize')添加到您的代码以使其在页面加载时触发:

$(window).bind('resize', function(){
    var containerSize  = $('.container').width(),
        textPercentage = 0.17391304347826086956521739130435, /* 40/230 */
        textRatio      = containerSize * textPercentage,
        textEms        = textRatio / 14;

    $('.container h3').css(fontSize, textEms+"em");
}).trigger('resize');

您将需要在之后运行此代码document.ready确保您获得的容器宽度是正确的。您还可以将此代码放在 HTML 文档的底部(您应该使用或不使用document.ready事件处理程序),这将确保运行此代码时元素可用:

//wait for `document.ready` to fire
$(function () {

    //cache the .container and H3 elements
    var $container = $('.container'),
        $h3        = $container.find('h3');

    //bind event handler to `window.resize`
    $(window).bind('resize', function(){

        //get the width of the container
        var containerSize  = $container.width(),
            textPercentage = 0.17391304347826086956521739130435, /* 40/230 */
            textRatio      = containerSize * textPercentage,
            textEms        = textRatio / 14;

        $h3.css('fontSize', textEms+"em");
    }).trigger('resize');
});

请注意,我缓存了H3元素,因此不必每次都选择它/然后resize事件,因为当您实际调整浏览器大小时,会触发大量此类事件。

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

根据容器宽度动态调整文本大小 的相关文章

  • Typescript:如何在 Redux 中输入 Dispatch

    例如我想删除dispatch any here export const fetchAllAssets gt dispatch any gt dispatch actionGetAllAssets return fetchAll getPr
  • For 循环覆盖 HTML 中的文本

    我的数组称为myEmployees其中有 5 个名字 但当我运行代码时 它只打印出其中的 3 个 我相信这种情况正在发生 因为for脚本中的循环会覆盖它在 HTML 文档中编写的前一行 我怎样才能解决这个问题 年度公告板公告 恭喜泰勒 你在
  • 打开一个新的浏览器窗口/iframe 并在 TEXTAREA 中从 HTML 创建新文档?

    我正在尝试使用 HTML5 的新离线功能编写一个 Web 应用程序 在此应用程序中 我希望能够编辑一些 HTML 完整文档 而不是片段
  • 如何连接我的 angular2 应用程序 javascript 文件

    对于我的 Angular2 TypeScript 应用程序 我将所有 js 文件合并到一个 app min js 文件中 然后 System import 将此文件导入到我的 index html 页面 然后我得到一个同一模块文件中的多个匿
  • 解密签名并验证 JWT

    我知道还有其他库可以让我更轻松地使用 JWT 在 Node js 中 在本例中 我使用 crypto js 以手动方式学习 JWT 以下给了我令牌 var header alg HS256 typ JWT var wordArrayHead
  • onbeforeunload 或单击浏览器后退按钮需要帮助

    如果用户单击浏览器的后退按钮 那么我希望出现提示并要求确认 如果用户单击 确定 那么它应该导航到xx html 如果用户单击 取消 则应阻止导航 我怎样才能做到这一点 注意 我已经尝试过onbeforeunload方法 但它适用于所有导航操
  • d3 饼图中的文本被路径覆盖

    我正在尝试按照 d3 的饼图示例进行操作http bl ocks org mbostock 3887235 http bl ocks org mbostock 3887235 我的代码的最小示例 const container graph
  • fancybox - 如何添加打开图像的链接?

    大伙计们有什么想法吗 我正在尝试链接 fancybox 中打开的图像 我到处都找遍了 听起来很简单 这是我正在使用的代码 a href img src example thumb png alt example a
  • 无法在 .js 文件内命中断点

    我升级到 win 8 现在我在管理员权限下运行 VS 2012 并在 MVC 4 中创建一个网站 我在线检查了不同的解决方案 但没有一个有效 我的解决方案中有一个 javascript 文件 但是当我在其中放置断点时 在运行时我看到 没有为
  • 使用 webpack 保留输出目录中的文件夹结构

    我有以下文件夹结构 index html app index tsx 与 webpack 捆绑后 我希望有以下输出目录 并将bundle js注入到index html中 dist index html dist app bundle js
  • Internet Explorer 10,最大 div 大小为 1.533.917 像素

    我需要制作一个非常大的 div 以百万像素为单位 搜索我发现这个线程证明 IE 可以管理最多 10 000 000 px 确定最大可能的 DIV 高度 https stackoverflow com questions 7719273 de
  • 重写node.js中其他模块中的函数

    我正在尝试在 Node js 应用程序中使用 nodeunit 存根函数 这是我正在尝试做的事情的简化版本 In lib file js var request require request var myFunc function inp
  • 使用 Firefox 插件发出跨域 ajax 请求

    我对如何在 Firefox 插件中发出跨域 ajax 请求感到有点困惑 LastPass 和 Xmarks 等插件建议你可以做到这一点 但是当我尝试用 google 搜索你是如何做到这一点时 每个人似乎都说你不能 除非用户在 Firefox
  • 使用 Javascript 编辑和保存用户 HTML - 安全性如何?

    例如我有一个Javascript 支持的表单创建工具 您可以使用链接添加元素的 html 块 如输入字段 并使用 TinyMCE 来编辑文本 这些是通过自动保存功能保存的 该功能在特定事件的后台执行 AJAX 调用 被调用的保存函数负责数据
  • 使用 JavaScript 自动提交表单

  • 有没有办法避开 Google 路线中的特定道路或坐标?

    API 有一个航路点参数 以便 API 计算经过指定航路点的路线 有什么方法可以给出要避开的航路点而不是要经过的航路点 它 目前 尚未实施 有一个开放的功能请求 问题 214 影响方向的能力 例如 避免 路障 https code goog
  • 将 ERB 与 Handlebars 模板结合使用

    我有一个使用 ajax 创建新标签的模式 它使用 Tags 参数执行 POST 方法 而无需重新充电视图 因此 我希望根据所选的 price type 参数来呈现一个或另一个价格 div 我使用 Handlebars 所以我想这不是 rub
  • Origin 无权使用地理定位服务 - 即使通过 HTTPS

    我有一个通过 HTTPS 使用 HTML5 地理定位的网页 它在桌面浏览器上运行良好 然而 在 iOS Safari 上 我收到错误 Origin 无权使用地理定位服务 我已确保页面上的所有内容都通过 HTTPS 加载 每个图像 每个脚本和
  • 在不调用“then”的情况下解决 Promise

    我有这段代码 它是我为一个名为 Poolio 的 NPM 模块编写的小型 API 的一部分 对于那些支持错误优先回调和承诺的人来说 我遇到的问题似乎是一个常见问题 我们如何在支持两者的同时保持一致的 API 和 API 的一致返回值 例如
  • fancybox iframe 尺寸

    在 fancybox 主页 http fancybox net home http fancybox net home 有一个示例 打开一个尺寸为屏幕 75 的 iFrame 我无法通过修改 js 文件上的宽度和高度属性来获取它 如网站上所

随机推荐

  • java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass

    当我尝试这个时 我是 JPA 和 hibernate 的新手tutorial 我在 persistence xml 中添加了以下提供程序
  • 类型不匹配无法从元素类型对象转换为字符串

    在我的代码中创建搜索方法来搜索字符串时 我不断收到此错误 我已经通过很多例子试图解决这个问题 但我找不到任何例子 感谢您提供的任何帮助和建议 public class runNote public static void main Stri
  • 尝试针对 ManagementObjectNotFoundException 和 ActiveDirectory/Outlook 进行 Catch/Exception

    这可能是一个非常基本的问题 但我还没有在表格上看到它 请耐心等待 我是 powershell 新手 当我们的 Active Directory 数据库中找不到用户名时 我试图捕获此异常 ManagementObjectNotFoundExc
  • 如何使用 Selenium 允许位置访问?

    我试图在Java中使用Selenium来获取用户的地理坐标 但是使用IP地址不够准确 所以我想使用这个网站http www whataremycooperatives com 但它不起作用 我猜这是因为你必须允许位置使用 所以无论如何我可以
  • 是什么导致了“Base-64 字符数组的长度无效”

    我在这里没什么可说的 我无法在本地重现此问题 但是当用户收到错误时 我会收到自动电子邮件异常通知 Invalid length for a Base 64 char array at System Convert FromBase64Str
  • 为什么spring-boot-starter项目的github项目是空的?

    看着spring boot 启动器 web spring boot starter 安全性github 上的项目 我发现它们是空的 只有一个 build gradle 文件存在 我希望这符合预期 但这让我了解在哪里可以找到实际的源代码 而且
  • 将消息定向给消费者

    我的客户端正在尝试向接收者发送消息 但是我注意到接收者有时没有收到客户端发送的所有消息 因此丢失了一些消息 不确定问题出在哪里 客户端还是接收者 关于为什么会发生这种情况的任何建议 这就是我目前正在做的事情 在接收方 这就是我正在做的事情
  • 如何实现自定义类型的xml序列化?

    我有一些类型想要序列化 反序列化并根据所选对象生成 UI UI 还将更改对象 而我必须序列化该对象才能将其存储在我的应用程序中 So obj apple stored in the app gt select obj apple gt de
  • 显示“数字存储为文本”错误

    我正在使用带有 0 和 1 的高级过滤器等 仅当数据表中包含 1 和 0 的单元格显示错误消息 数字存储为文本 时 过滤器才能正常工作 为此 我必须双击并按 Enter 键手动打开单元格 然后出现错误消息并且过滤器开始工作 如果我不这样做
  • 为企业客户在 MRI Ruby / JRuby 上混淆 Rails 应用程序 [重复]

    这个问题在这里已经有答案了 对于将在其服务器上运行我们的 Rails 应用程序的企业客户 我们不想向他们提供 Rails 应用程序的源代码 使用 MRI Ruby 甚至 JRuby 是否可以 混淆源代码 如果是 JRuby 请将 Rails
  • 可变参数柯里求和函数

    我需要一个 js sum 函数来工作 如下所示 sum 1 2 3 sum 1 2 3 6 sum 1 2 3 4 10 etc 听说做不到但听说如果添加 在 前面sum可以做到 喜欢 sum 1 2 3 4 关于如何做到这一点有什么想法吗
  • MVVMCross iOS:切换到不同视图模型时如何将命令与自定义转换绑定

    对于MVVMCross ios 如何使用不同的TransitionalStyle 例如FlipHorizo ntal样式 而不是 ShowViewModel 的默认滑动效果 Register SearchResults public cla
  • 如何使用php和sql服务器在网页中显示阿拉伯字符

    如何使用 php 和 sql server 在网页中显示阿拉伯字符 阿拉伯语数据存储在数据库 sql server 中 现在我想使用php在网页上显示该数据 我怎样才能做到这一点 mssql 与 php 中的 Unicode 官方解决方案
  • 获取 Facebook 点赞数

    我已将 Facebook Like 集成到我的网站中 现在我需要在我网站的管理面板中获取 列出 Facebook Like 的计数 有什么办法可以完成这个任务吗 需要建议 提前致谢 url http graph facebook com P
  • YouTube API - 按用户名查询不会返回频道品牌设置

    使用 YouTube API v3 查询频道的品牌设置时 为什么按频道 ID 查询会返回这些设置 而按用户名查询则不会返回 API 不会返回按用户名进行频道列表查询的品牌设置 如果您通过频道 ID 查询频道的品牌设置 例如 id UC8 T
  • 如何跳过 YouTube 播放列表嵌入中的私人视频

    我们使用以下代码将最新的 YouTube 视频嵌入到我们的播放列表之一 我们已将视频排队等待明天上线 但现在我们的网站显示 视频不可用 视频私有 错误 我们检查了 API 但我没有看到任何会跳过私人视频的playerVars 知道如何获取基
  • 如果检测到匹配的文件,则运行 pre-commit.com 挂钩一次(并非针对每个文件)

    我有一个钩子 可以从源文件生成文档文件 使用pre commit com 框架 在该挂钩中调用的函数没有文件参数 因此它只是为目录中的所有源文件创建文档 钩子是一个systemhook 即只是一个 bash 脚本 我在其中调用该函数来创建文
  • matplotlib qt imshow animate [重复]

    这个问题在这里已经有答案了 imshow 动画可以与 qt 后端一起使用吗 以下在非 qt 中工作正常 但不使用 qt 制作动画 只显示最后一帧 img standard normal 40 40 image imshow img inte
  • 最好的自动换行算法? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 自动换行是现代文本编辑器的必备功能之一 如何处理自动换行 最好的自动换行算法是什么 如果文本有几百万行 如何才能快速自动换行 为什么我需要解决方案 因为我的项目必须绘制具有各种缩放级别的文
  • 根据容器宽度动态调整文本大小

    我正在研究响应式设计 并且有一些显示 h3 当浏览器窗口宽度减小时 我想缩小的标签 初始设置 基于 960px 宽度 正文字体大小设置为 14px h3标签的字体大小为40px 包含div的宽度为230px 这是我为 javascript