我可以禁用用户字体大小配置吗?

Lui*_*ego 5 html javascript css

我正在制作一个自适应网站,当用户有一些奇怪的字体大小配置(对于视觉问题等)时,设计会以一种可怕的方式破坏......显然我不想忘记可访问性......所以:是有没有办法知道用户何时尝试强制字体大小,禁用它并给他不同的样式?

Juk*_*ela 7

通常,页面上的字体大小设置会覆盖浏览器设置中设置的字体大小,除非您使用%em设置 时font-size,在这种情况下,它们可能与浏览器设置中设置的大小相关(具体取决于您设置大小的方式)。

\n\n

这意味着,如果您body { font-size: 9px }在 CSS 中并且视障用户在正常 Chrome 设置中选择了最大尺寸(对应于 24px),则用户设置将被覆盖并使用难以辨认的尺寸。这就是用户不经常更改浏览器字体大小设置的原因之一:单独使用时,它们的效果相当有限。

\n\n

但是,如果用户将浏览器设置为忽略网页上指定的字体大小(例如在 IE 中通过辅助功能设置可以实现),则无论您做什么,都会使用浏览器设置中的字体大小。(页面内的字体大小可能仍然会有所不同,例如,由于使用small标记或标题元素,根据某些元素的浏览器默认设置,但页面上用于字体大小的任何 CSS 设置将被有效禁用。)

\n\n

类似的考虑因素也适用于最小字体大小设置,这相当常见,甚至可以通过 browser\xe2\x80\x99s 出厂设置进行设置。它们在正常 CSS 级联产生某个大小\xe2\x80\x94 后生效,如果该大小小于最小设置,则使用最小值。

\n\n

有一些间接的方法可以尝试找出浏览器实际使用的字体大小,例如通过使用属性获取元素的高度clientHeight。如果您对带有 的元素执行此操作line-height: 1,通常会获得实际使用的字体大小。但你不能禁用它;it\xe2\x80\x99 几乎是浏览器设置的本质,它会覆盖网页上无法覆盖的设置。

\n