chst365's blog chst365's blog
首页
  • Git
  • 网络
  • 操作系统
  • 浏览器
  • webpack
  • JavaScript
  • TypeScript
  • 性能
  • 工程化
  • React
  • 编程题
  • React技术揭秘
  • 算法
  • Node
  • 编码解码
  • NodeJS系列
  • Linux系列
  • JavaScript系列
  • HTTP系列
  • GIT系列
  • ES6系列
  • 设计模式系列
  • CSS系列
  • 小程序系列
  • 数据结构与算法系列
  • React系列
  • Vue3系列
  • Vue系列
  • TypeScript系列
  • Webpack系列
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

chst365

DIV工程师
首页
  • Git
  • 网络
  • 操作系统
  • 浏览器
  • webpack
  • JavaScript
  • TypeScript
  • 性能
  • 工程化
  • React
  • 编程题
  • React技术揭秘
  • 算法
  • Node
  • 编码解码
  • NodeJS系列
  • Linux系列
  • JavaScript系列
  • HTTP系列
  • GIT系列
  • ES6系列
  • 设计模式系列
  • CSS系列
  • 小程序系列
  • 数据结构与算法系列
  • React系列
  • Vue3系列
  • Vue系列
  • TypeScript系列
  • Webpack系列
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • NodeJS系列

  • Linux系列

  • JavaScript系列

  • HTTP系列

  • GIT系列

  • ES6系列

  • 设计模式系列

  • CSS系列

    • 如何使用css完成视差滚动效果?
    • CSS3新增了哪些新特性?
    • CSS如何画一个三角形?原理是什么?
    • css3动画有哪些?
    • 如何实现单行/多行文本溢出的省略样式?
    • 说说flexbox(弹性盒布局模型),以及适用场景?
    • 让Chrome支持小于12px 的文字方式有哪些?区别?
      • 一、背景
      • 二、解决方案
        • Zoom
        • -webkit-transform:scale()
        • -webkit-text-size-adjust:none
      • 三、总结
      • 参考文献
    • 怎么理解回流跟重绘?什么场景下会触发?
    • css中,有哪些方式可以隐藏页面元素?区别?
    • 谈谈你对BFC的理解?
    • 说说你对盒子模型的理解?
    • 如何实现两栏布局,右侧自适应?三栏布局中间自适应呢?
    • 说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?
    • 介绍一下grid网格布局
    • 说说em/px/rem/vh/vw区别?
    • 如果要做优化,CSS提高性能的方法有哪些?
    • 什么是响应式设计?响应式设计的基本原理是什么?如何做?
    • 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?
    • 说说对Css预编语言的理解?有哪些区别?
    • css选择器有哪些?优先级?哪些属性可以继承?
  • 小程序系列

  • 数据结构与算法系列

  • React系列

  • Vue3系列

  • Vue系列

  • TypeScript系列

  • Webpack系列

  • 面试官
  • CSS系列
chst365
2023-06-28
目录

让Chrome支持小于12px 的文字方式有哪些?区别?

# 面试官:让Chrome支持小于12px 的文字方式有哪些?区别?

# 一、背景

Chrome 中文版浏览器会默认设定页面的最小字号是12px,英文版没有限制

原由 Chrome 团队认为汉字小于12px就会增加识别难度

  • 中文版浏览器

与网页语言无关,取决于用户在Chrome的设置里(chrome://settings/languages)把哪种语言设置为默认显示语言

  • 系统级最小字号

浏览器默认设定页面的最小字号,用户可以前往 chrome://settings/fonts 根据需求更改

而我们在实际项目中,不能奢求用户更改浏览器设置

对于文本需要以更小的字号来显示,就需要用到一些小技巧

# 二、解决方案

常见的解决方案有:

  • zoom
  • -webkit-transform:scale()
  • -webkit-text-size-adjust:none

# Zoom

zoom 的字面意思是“变焦”,可以改变页面上元素的尺寸,属于真实尺寸

其支持的值类型有:

  • zoom:50%,表示缩小到原来的一半
  • zoom:0.5,表示缩小到原来的一半

使用 zoom 来”支持“ 12px 以下的字体

代码如下:

<style type="text/css">
    .span1{
        font-size: 12px;
        display: inline-block;
        zoom: 0.8;
    }
    .span2{
        display: inline-block;
        font-size: 12px;
    }
</style>
<body>
    <span class="span1">测试10px</span>
    <span class="span2">测试12px</span>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

效果如下:

需要注意的是,Zoom 并不是标准属性,需要考虑其兼容性

image.png

# -webkit-transform:scale()

针对chrome浏览器,加webkit前缀,用transform:scale()这个属性进行放缩

注意的是,使用scale属性只对可以定义宽高的元素生效,所以,下面代码中将span元素转为行内块元素

实现代码如下:

<style type="text/css">
    .span1{
        font-size: 12px;
        display: inline-block;
        -webkit-transform:scale(0.8);
    }
    .span2{
        display: inline-block;
        font-size: 12px;
    }
</style>
<body>
    <span class="span1">测试10px</span>
    <span class="span2">测试12px</span>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

效果如下:

# -webkit-text-size-adjust:none

该属性用来设定文字大小是否根据设备(浏览器)来自动调整显示大小

属性值:

  • percentage:字体显示的大小;
  • auto:默认,字体大小会根据设备/浏览器来自动调整;
  • none:字体大小不会自动调整
html { -webkit-text-size-adjust: none; }
1

这样设置之后会有一个问题,就是当你放大网页时,一般情况下字体也会随着变大,而设置了以上代码后,字体只会显示你当前设置的字体大小,不会随着网页放大而变大了

所以,我们不建议全局应用该属性,而是单独对某一属性使用

需要注意的是,自从chrome 27之后,就取消了对这个属性的支持。同时,该属性只对英文、数字生效,对中文不生效

# 三、总结

Zoom 非标属性,有兼容问题,缩放会改变了元素占据的空间大小,触发重排

-webkit-transform:scale() 大部分现代浏览器支持,并且对英文、数字、中文也能够生效,缩放不会改变了元素占据的空间大小,页面布局不会发生变化

-webkit-text-size-adjust对谷歌浏览器有版本要求,在27之后,就取消了该属性的支持,并且只对英文、数字生效

# 参考文献

  • https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-size-adjust
  • https://vue3js.cn/interview
#面试官
上次更新: 2025/04/11, 17:57:53
说说flexbox(弹性盒布局模型),以及适用场景?
怎么理解回流跟重绘?什么场景下会触发?

← 说说flexbox(弹性盒布局模型),以及适用场景? 怎么理解回流跟重绘?什么场景下会触发?→

最近更新
01
面试官
03-27
02
this&指针&作用域&闭包
03-27
03
前端
03-27
更多文章>
Theme by Vdoing | Copyright © 2019-2025 chst365 | 豫ICP备17031889号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式