对于绘图和印刷而言,“单位”相当重要,然而在网页排版里,单位也是同样具有重要性,在CSS3普及以来,更支持了一些方便好用的单位(px、em、rem…等),这篇文章将整理这些常用的CSS单位,也帮助自己未来在使用上能更加得心应手。

“网页”和“印刷”的单位
若要把单位做区隔,最简单可以分为“网页”和“印刷”两大类,通常对于CSS来说只会应用到网页的样式,毕竟真正要做印刷,还是会倾向透过排版软件来进行设计。

网页(单位)

  • px:绝对单位,代表屏幕中每个「点」(pixel)。
  • em:相对单位,每个子元素透过「倍数」乘以父元素的px值。
  • rem:相对单位,每个元素透过「倍数」乘以根元素的px值。
  • %:相对单位,每个子元素透过「百分比」乘以父元素的px值。

网页(属性名称)

  • medium:预设值,等于16px(h4预设值)
  • xx-small:medium的0.6倍(h6预设值)
  • x-small:medium的0.75倍
  • small:medium的0.8倍(h5预设值,W3C定义为0.89,实测约为0.8)
  • large:medium的1.1倍(h3预设值,W3C定义为1.2,实测约为1.1)
  • x-large:medium的1.5倍(h2预设值)
  • xx-large:medium的2倍(h1预设值)
  • smaller:约为父层的80%
  • larger:约为父层的120%

印刷

  • pt:打印机的每个「点」,定义为1 pt=1/72 in,如果在72 dpi的系统上1 px = 1 pt,但如果在96dpi的系统上1 px = 0.75 pt(72/96 = 0.75)。
  • in:英寸,在96 dpi的系统上1 in = 96 px。
  • cm:厘米,在96 dpi的系统上1 cm = 37.795275593333 px。
  • mm:毫米,在96 dpi的系统上1 cm = 3.7795275593333 px。

示例展示
以下将展示四种不同单位的示例,为公平起见,四个示例都套用预设的div格式,纯粹改变font-size看看有何不同,由于子元素若没有设定font-size,会自动继承父元素的font-size,使用上就应该要预先初始化字体大小,下面这两段CSS可以将所有的元素字体大小预设为16px,然后可个别进行调整。

html{    font-size:16px;}html * {    font-size: 1rem;}

1. px
px是绝对单位,因此只要设定多少px,就会精确的呈现,对于一些讲求精准位置的排版而言十分有用,如示例表示的,指定多大px字体就会多大。

学习Q-q-u-n: ⑦⑧④-⑦⑧③-零①②,分享学习方法和需要注意的小细节,不停更新最新的教程和学习技巧(从零基础开始到前端项目实战教程,学习工具,全栈开发学习路线以及规划)
16px

20px

24px

16px

32px

2. em
em是相对单位,为每个子元素透过“倍数”乘以父元素的px值,如果我们每一层div都使用1.2em,最内层就会是16px x 1.2 x 1.2 x 1.2 x 1.2 x 1.2 = 39.8px。(浏览器预设字体大小为16px,若无特别指定则会直接继承父元素字体大小)

1.2em

1.2em

1.2em

1.2em

1.2em

3. rem
rem是相对单位,为每个元素透过“倍数”乘以根元素的px值,如果我们每一层div都使用1.2rem,最内层就会是16px x 1.2 = 19.2px。(根元素指的是html的font-size,预设为16px)

1.2rem

1.2rem

1.2rem

1.2rem

1.2rem

4. %
%百分比是相对单位,和em大同小异,简单来说em就是百分比除以一百,如果我们每一层div都使用120%,就等同于1.2em,最内层就会是16px x 1.2 x 1.2 x 1.2 x 1.2 x 1.2 = 39.8px。

120%

120%

120%

120%

120%

5.small、medium、large…等

字体大小的属性有七种,分别是xx-small、x-small、small、medium、large、x-large和xx-large,除了x-small,其余六种分别对应h6~h1的标签文字大小,根据W3C的规范,以medium预设16px为基础(若html字体预设大小改变,medium也会跟着变),使用固定的百分比乘以medium的大小,例如ss-small预设为16px x 0.6 = 9.6px(浏览器显示为12px)。

学习Q-q-u-n: ⑦⑧④-⑦⑧③-零①②,分享学习方法和需要注意的小细节,不停更新最新的教程和学习技巧(从零基础开始到前端项目实战教程,学习工具,全栈开发学习路线以及规划)
xx-small

x-small

small

medium

large

x-large

xx-large

6. larger、smaller
larger和smaller就是固定百分比为单位,larger为父层的120%,smaller为父层的80%。

medium

larger

larger

larger

smaller

smaller

smaller

小结
熟悉了字体大小单位之后,就更能有系统的设计整个网站的CSS构架,不过font-size本身和font-family有着一些复杂的关系,不同的font-family有时也会影响font-size的设定,因此使用上还是得稍微注意一下啰!

css 百分比 怎么固定正方形_web前端入门到实战:一次搞懂CSS字体单位:px、em、rem和%相关推荐

  1. css实现快速抖动效果_web前端入门到实战:CSS实现照片堆叠效果

    实现效果 步骤 1.初始index.html 为了建立第一张照片,也就是最上面的那张.我们只需要添加一个div,里面包含照片的img.就这么多,剩下的效果都是通过CSS来实现的.确保div的class ...

  2. css中的单位换算_css大小单位px em rem的转换和详解

    css大小单位px em rem的转换和详解 PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firef ...

  3. CSS单位--px,em,rem,rpx区别

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? Px PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够 ...

  4. web前端入门到实战:11种常用css样式之滚动条与显示隐藏

    滚动条展示 overflow-x: hidden;/是否对内容的左/右边缘进行裁剪/overflow-y: hidden;/是否对内容的上/下边缘进行裁剪/overflow:scroll;/左右滚动/ ...

  5. rem 前端字体_web前端入门到实战:一次搞懂CSS字体单位:px、em、rem和%

    对于绘图和印刷而言,"单位"相当重要,然而在网页排版里,单位也是同样具有重要性,在CSS3普及以来,更支持了一些方便好用的单位(px.em.rem-等),这篇文章将整理这些常用的C ...

  6. css 百分比 怎么固定正方形_49 张 GIF 图中学习 49 个 CSS 知识点

    作者:老姚<JS正则迷你书>的作者 https://github.com/qdlaoyao/css-gif 本文的每一条,都是我曾经发过的掘金沸点,其中有很多条超过了百赞(窃喜).鉴于时不 ...

  7. css 百分比 怎么固定正方形_你未必知道的49个CSS知识点

    本文的每一条,都是我曾经发过的掘金沸点,其中有很多条超过了百赞(窃喜). 鉴于时不时有童鞋翻我以前的沸点,因此,本文收集了个人目前发过的所有CSS知识点动图,以便阅读. 需要说明的是,顺序仍是按当时发 ...

  8. webapp入门到实战_web前端入门到实战:前端高手在CSS 开发效率的必备片段

    这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找 清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我们 ...

  9. css 百分比 怎么固定正方形_css样式写出三角形,宽高自适应的正方形,扇形!...

    闲来无事练习一下常见的css样式,希望大家能指点一二! 1用css实现一个三角形!原理用border属性 <! 实现它的原理那就要弄明白border属性, border是一个复合属性 borde ...

最新文章

  1. python之路--嵌套函数、匿名函数、高阶函数。函数的递归
  2. PHP学习笔记-PHP语言基础2
  3. 2018年跨行学习mysql_2018年,让你的数据库变更快的十个建议
  4. Java面向对象抽象类案例分析
  5. python数据库连接类写其他类调用报超时_python面向对象,类,以及连接数据库
  6. 操作系统复习笔记 06 CPU Scheduling CPU调度
  7. ubuntu 查看日历,日期
  8. 新手关于如何看编程经典书的一些疑惑?
  9. js html form,JavaScript 表单
  10. Tensorflow_gpu安装的坑
  11. wetask.cn领度任务全新试用体验
  12. 小米集团:副董事长林斌承诺5年内不出售公司股份 已作安排的除外
  13. 正宗PC Unix实验环境
  14. LoadRunner函数中文翻译
  15. HPE 3PAR StoreServ存储系统连接解决方案
  16. 裁剪算法——中点分割算法/Liang-Barsky算法
  17. 08_MySQL的函数
  18. 7金5银,中国跳水梦之队背后的“黑科技“是什么?
  19. 图像处理之图像去雾中文综述性论文
  20. 1007 Maximum Subsequence Sum (25 分) java 题解

热门文章

  1. 获取随机数的方式Random类对象的方法 java 0913
  2. java演练 类与对象 给我一个数字还你一个字符串
  3. rolling方式修改oplog
  4. docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
  5. 【批处理学习笔记】第十四课:常用DOS命令(4)
  6. RxJava Agera 从源码简要分析基本调用流程(2)
  7. //监测网络状态(AFNetworking) 服务端 客户端
  8. OpenCV中对数组(矩阵)的常用操作
  9. CentOS 5.8 Zimbra邮件系统安装与配置
  10. ListView控件的弧形设计