【问题标题】:Resize font with screen resolution without using @media query在不使用@media 查询的情况下使用屏幕分辨率调整字体大小
【发布时间】:2014-09-30 11:06:31
【问题描述】:

此代码正在运行。

<style>
h1{ font-size:8.5vw;}
</style>
<h1>Heading</h1>

但是这段代码不起作用。

<style>
h1{ font-size:8.5px;}
</style>
<h1>Heading</h1>

问题:我想用这样的屏幕分辨率调整字体大小。 http://css-tricks.com/examples/ViewportTypography/ -> (用鼠标最小化屏幕分辨率来检查)。 当我在VW 中使用font-size:7.5vw; 之类的字体时,它可以正常工作。但是当我在PX 中使用字体大小时,比如font-size:40px;它不起作用。

【问题讨论】:

  • 像素为固定单位。它不能依赖于屏幕分辨率或视口大小(除非你设置了一堆不同的媒体查询,它们为每个断点定义了不同的字体大小)
  • 执行此操作的任何其他解决方案。我可以使用任何其他尺寸单位来做到这一点吗?
  • 是的,我同意@Fabrizio Calderan
  • Screen resolution !== viewport width。然后使用 vw 单位,如果它们工作或使用一组媒体查询

标签: html css fonts resize font-size


【解决方案1】:

一个可能的技巧是使用 javascript 来检测窗口的分辨率并设置所需元素的字体大小属性:

<script language="javascript">
    function autoResizeFont()
    {
        var value = function_of(window.innerWidth, window.innerHeight);
        document.getElementById('my_container').style.fontSize = value +'px';
    }
    window.onresize = autoResizeFont;
    autoResizeFont();
</script>

其中function_of 是一个要实现的函数,它根据窗口大小计算字体大小的值(以像素为单位)。

使用 JQuery 的另一种解决方案:

<script language="javascript">
    $( document ).ready(function() {
        if ($(window).width() > THRESHOLD_VALUE) {
            $('*').removeClass('small-font').addClass('big-font');
        } else {
            $('*').removeClass('big-font').addClass('small-font');
        }
    });
</script>

此解决方案根据窗口的宽度是大于还是小于阈值来设置所有 HTML 元素的适当类。 small-fontbig-font 定义的示例可能是:

.small-font {font-size: 10px !important}
.big-font   {font-size: 14px !important}

【讨论】:

  • 如何在

    标题

    上应用这个
  • 在 JQuery 中,要使用的选择器是 $('h1') 而不是 $('*')
  • 在纯 Javascript 中:document.getElementsByTagName("H1")。这将返回一个包含所有 H1 元素的数组。
  • 另一种选择是将id 属性赋予所需的 H1 标签,然后使用 document.getElementById()
猜你喜欢
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 2011-04-10
  • 2014-09-21
相关资源
最近更新 更多