根据浏览器高度和宽度保持纵横比和字体大小?

2023-12-31

下面的代码附在window.onresize = resize;. The baseWidth and baseHeight在负载上读取作为计算的基础。这main变量只需将其设置到主 html 节点即可定义。字体设置在块元素上会导致所有的em基于其中的元素以实物方式调整大小。当浏览器的宽度或高度更改时,会重新计算该比率。请参阅演示以了解我使用 JS 实现的效果,但想找到一个纯 CSS 解决方案:http://codepen.io/anon/pen/nLauF http://codepen.io/anon/pen/nLauF

我一直在探索 CSS3 中的选项,例如calc。请随意对下面的 JS 提出任何改进建议。

             function resize() {
                var height = 0,
                    width = 0;

                if(window.innerWidth <= window.innerHeight) {
                    size = window.innerWidth / baseWidth;
                    height = baseHeight * size;
                    width = window.innerWidth;

                } else {
                    size = window.innerHeight / baseHeight;
                    height = window.innerHeight;
                    width = baseWidth * size;
                }

                if(baseWidth * size > window.innerWidth) {
                    size = window.innerWidth / baseWidth;
                    height = baseHeight * size;
                    width = window.innerWidth;
                }

                main.style.height = height + "px";
                main.style.width = width + "px";
                main.style.fontSize = size * 16 + "px";
            }

Thanks!


我编写了这段代码,包括字体大小计算最小体积单位 https://developer.mozilla.org/en-US/docs/Web/CSS/length :

DEMO http://jsfiddle.net/webtiki/890e1194/

CSS :

main {
    width: 80vmin;
    height: 60vmin;
    background-color: #000;
    position: absolute;
    top:0; bottom:0;
    left:0; right:0;
    margin:auto;
}
h1 {
    color: #fff;
    font-size: 30px; /* general fallback */
    font-size: 5vm; /* IE9 fallback */
    font-size: 5vmin;
}

对于浏览器支持,您可以检查canIuse http://caniuse.com/#feat=viewport-units

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

根据浏览器高度和宽度保持纵横比和字体大小? 的相关文章

  • 在 CSS 中实现 50/50 背景且无重叠

    我尝试创建一个带有两个背景图像的 div 一个在上半部分 一个在底部 如下所示 在此处输入图像描述 https i stack imgur com IPm8L png https i stack imgur com ezu9z png 然而
  • a:active 不起作用

    我在这里很困惑 the a active不工作 但是 hover工作正常 我已经尝试了很多事情 但这个让我陷入困境 而且真的很令人困惑 我刚刚在表中添加了链接 我已将单元格添加到了类中 menu1 现在 当我访问活动页面时 活动链接不会突出
  • 将自定义字体与 wkhtmltopdf 一起使用

    我正在尝试在使用 wkhtmltopdf 生成的 PDF 中使用自定义字体 我读到您不能使用 google webfonts 并且 wkhtmltopdf 使用 truetype ttf 文件 谁能证实这一点吗 所以我从 google we
  • 有 CSS 的替代品吗?

    是否有替代 CSS 的样式表格式化语言 或者 CSS 是当前用于执行样式表格式化类型操作的单一语言 我查看了维基百科上 CSS 的描述 http en wikipedia org wiki Cascading Style Sheets ht
  • 如何隐藏其他选项卡的内容并仅显示所选选项卡的内容

    当我单击特定选项卡时 其他选项卡的内容应该隐藏 但它并没有隐藏 这是我所有的代码 function showStuff id if document getElementById id style display block documen
  • 当鼠标悬停在链接上时,如何在链接旁边创建弹出框?

    这是我想要实现的 我的网页上显示了两个超链接 a href http foo com foo a a href http bar com bar a 我还有两个对 div 链接的描述 div foo means foo div div ba
  • React JS - 单击时更改颜色并将默认颜色放在所有其他颜色上

    我有 x 个渲染数文章预览依赖于 API 调用的组件 div div Object keys images map index i gt return div div
  • div Hello div div Howdy dere pardner div div div 我明白它的作用 但为什么叫这个名字both 什么是both mean 两者的意思是 一组两件事中的每一项 左 和 右 两件事
  • 为什么我的图像下方有空间? [复制]

    这个问题在这里已经有答案了 图像在下面获得了神秘的空白空间 即使padding 0 margin 0被应用 示范 http jsfiddle net cLETP 红色边框应该包围图像 但底部有空间 造成这种情况的原因是什么 如何删除该空间
  • 可以将position:absolute元素设为粘性吗?

    In CSS position sticky使元素能够显示position static行为 即 它采用文档流中的默认位置 直到到达某个滚动位置 然后采用position fixed行为 那么 这是否意味着我们不能使用position st
  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • 在 Android 上禁用标注(上下文菜单)

    在网络应用程序中 我需要禁用移动浏览器在触摸并按住 长按 触摸目标 例如 img 或链接 我已经在使用了 webkit touch callout none 它在 iPhone 和 iPad 上运行良好 但似乎不适用于 Android 在
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说

随机推荐

  • 从 Runnable 返回值

    我花了几天时间试图解决这个问题 但我不能 解决这个问题的方法是去 StackOverflow D 碰巧我正在使用 libgdx 制作游戏的库 并且在 Android 中查询代码是通过Handler http developer androi
  • 带有自动完成材质 UI 的 React Form Hook

    我有一个countries数组包含id and name 目前我正在使用 Material UIAutocomplete元素和我有一个反应钩子形式 当我提交表单时 我想获取国家 地区 ID 目前它正在发布国家名称 有没有一种方法可以发布 i
  • 了解 Android:Zygote 和 DalvikVM

    我想了解 Android 如何启动应用程序 问题是 Zygote 如何 以及为什么 分叉一个新的 Dalvik VM 我不明白为什么不能在同一个 Dalvik VM 中运行多个应用程序 问 zygote 是如何精确分叉 Dalvik VM
  • AngularJS - 如何在不提交表单的情况下使用 ng-click?

    我有一个同时具有 ng click 和 ng submit 的表单 ng submit 用于提交 而 ng click 则调用单独的函数 例如上传等 如何确保 ng click 不会意外提交表单 谢谢你 ngClick does not提交
  • 如何更改 Eclipse IDE 的启动 JVM?

    我在 Mac 上运行 Eclipse Oxygen 1A 我可以在 安装详细信息 中看到 IDE 本身当前使用的 JVM 实际启动 JVM 是 Oracle 的1 8 0 131JVM 我安装了一些其他 JVM 包括最新版本1 8 0 16
  • 用于电子邮件检测的 Java RegEx

    有人可以告诉我为什么以下正则表达式没有拾取以下字符串 bob at gmail dot com 吗 a zA Z0 9 s at at s w s dot dt s w 1 3 改变这个 at at to at at and dot dt
  • 使用 matplotlib 检测图像中的鼠标事件

    所以我正在尝试编写一个程序来检测图像上的鼠标单击并保存 x y 位置 我一直在使用 matplotlib 并且它可以处理基本绘图 但是当我尝试对图像使用相同的代码时 出现以下错误 cid implot canvas mpl connect
  • 无法将“WITH XMLNAMESPACES...FOR XML PATH”的输出设置为变量?

    我有一个如下查询 WITH XMLNAMESPACES DEFAULT http www somewhere com SELECT SOMETHING FOR XML PATH RootNode TYPE 运行这个效果很好 但是 当我尝试将
  • gulp-ruby-sass 在 Windows 中不是一个可识别的命令

    我第一次在 Windows Server 2012 VM 上尝试 gulp 我通常是 Mac 用户 所以我对 Windows 和 Powershell 这样的开发工具有点陌生 我安装了 Node js 和 npm 没有其他任何东西 我创建了
  • 在 Windows 命令提示符中运行最后执行的命令

    当使用 UNIX 时 我习惯于输入 运行最后执行的命令 如何在 Windows 命令提示符下执行类似的操作 followed by Enter
  • Pyaudio、portaudio 和 mac 10.7.5

    我在正确安装 pyaudio 时遇到问题 我为该项目设置了一个 virtualenv 我首先尝试安装 portaudio sudo port install portaudio 返回 gt Cleaning portaudio gt Sca
  • OpenCV 构建中的可选库提供什么?

    我正在尝试从源代码 最新的 SVN 主干 构建 OpenCV 并且有几个 可选 依赖项 它们本身的下载量将达到数 GB 尤其是使用 Qt 框架时 例如 CUDA 幽灵脚本 MIKTEX PYTHON EIGEN IPP JASPER JPE
  • 在没有 OpenMP 的计算机上忽略它

    我有一个使用 OpenMP 的 C 程序 该程序将在可能安装或未安装 OpenMP 的多台计算机上运行 我怎样才能让我的程序知道机器是否没有 OpenMP 并忽略它们 include
  • 从堆栈跟踪行号获取实际的 jsp 行号?

    这是堆栈跟踪 org apache jsp showcustomer jsp jspService showcustomer jsp java 128 org apache jasper runtime HttpJspBase servic
  • HTML5 CSS:行和调整大小

    下面的代码是响应式的 可以调整大小等 但我正在寻找一些真正简单的 CSS 来在桌面和移动设备上调整大小 我知道我可以使用标题链接 w3 css 中的 CSS 但必须有一种更好的方法来轻松地在桌面和移动设备上显示某些内容 移动设备默认显示内联
  • 打印/另存为 PDF(保留 CSS 布局)

    当我简单地打印 如在纸上 或将页面另存为 PDF 使用浏览器内置工具 时 CSS 会被完全忽略 我只会看到一行又一行的内容 有没有办法做到这一点 无需转换 HTML 2 PDF 图像 Thanks 这可能是因为你有media指定的选项
  • 当 SSM 代理变为活动状态时捕获事件

    我想在 SSM 的 Fleet Manager 中注册新的 EC2 实例时触发 lambda 这意味着可以使用 SSM 连接到该实例 但是我找不到在 EventBridge 中使用的模式 在 EventBridge 中 我尝试使用在文档中找
  • 在 SQL Server 2005 上违反 INSERT WHERE COUNT(*) = 0 上的 UNIQUE KEY 约束

    我正在从多个进程插入 SQL 数据库 这些进程有时可能会尝试将重复数据插入表中 我尝试以处理重复项的方式编写查询 但我仍然得到 System Data SqlClient SqlException Violation of UNIQUE K
  • nginx - laravel - hhvm-Fastcgi 出现错误 500

    I install a LEMP server in ubuntu 12 04 LTS 64 whit HHVM Fastcgi Service and i install laravel via laravel phar and test
  • 根据浏览器高度和宽度保持纵横比和字体大小?

    下面的代码附在window onresize resize The baseWidth and baseHeight在负载上读取作为计算的基础 这main变量只需将其设置到主 html 节点即可定义 字体设置在块元素上会导致所有的em基于其