【问题标题】:Make webpage font auto-resizable based on dynamic type in iOS使网页字体根据 iOS 中的动态类型自动调整大小
【发布时间】:2020-08-09 08:12:28
【问题描述】:

我希望我的网站适应 iOS 的动态字体大小。因此,如果您在设置中更改字体大小(设置 > 通用 > 辅助功能 > iPhone 上的较大文本),您的网页字体大小应该会根据此进行调整。

我在 html 根目录中添加了 font: -apple-system-body。在整个网站中,我使用rem 来调整相对于 html 根目录的字体大小。 所以它正在工作,但问题是-apple-system-body 默认提供font-size: 16px,这对我的页面来说太高了。我想将其转换为 10px; 所以我的 html 根字体大小应该是系统始终提供的 62.5%。

目前我正在使用 javascript 来实现这一点:

document.documentElement.style.fontSize = document.documentElement.style.fontSize * 0.625;

想知道是否只有 css 可以解决这个问题。

【问题讨论】:

    标签: html css fonts webkit accessibility


    【解决方案1】:

    您可以使用 css calc() 函数。在此函数中,您可以执行操作。例如:

    font-size: calc(1rem * 0.625);
    
    

    欲了解更多信息:https://css-tricks.com/a-complete-guide-to-calc-in-css/

    【讨论】:

    • 感谢您的回复,我试过了,它总是返回10px。我认为在这种情况下,无论系统字体大小如何,都将1rem 视为16px
    • 我以“1rem”为例。你可以放任何你想要的字体大小而不是 1rem
    • 它不固定。我想让系统给定字体大小而不是1rem。但我不知道我怎么能得到它。
    【解决方案2】:

    是的,将 HTML 大小设置为 62.5%。这将尊重系统设置(10px 是古代浏览器的后备,并不是真正需要的)

    html{
        font-size: 10px;
        font-size: 62.5%;
    }
    

    如果你这样做,请确保你在任何地方都有 remem 单位。

    【讨论】:

    • 谢谢,但它不起作用。我总是在 html 根目录中得到10px。我的html css是font: -apple-system-body; font-size: 62.5%;
    • 您可能需要强制关闭 safari 然后重新启动才能生效。如果这不起作用,那么还有其他事情发生,因为上面是这样做的方法。你想分享一个不适合你的小提琴吗?
    • 这是一个基本的。 jsfiddle.net/nnIIInnjA/j8uwn6ms/7 我已经在我的系统中创建了这个并在 ios Simulator 上检查它。尽管我在可访问性中更改字体大小,但我总是得到 10 像素。
    • 嗨,格雷厄姆,非常感谢您的帮助。如果我在某个地方犯了错误,请告诉我。谢谢你:)
    猜你喜欢
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多