1. CSS有几种表示长度的不同单位。

2. 许多CSS属性接受"长度"值, 诸如: width、margin、padding、font-size等。

3. 长度是一个后面跟着长度单位的数字, 诸如: 10px、2em等。

4. 数字和单位之间不能出现空格。但是, 如果值为0, 则可以省略单位。

5. 对于某些CSS属性, 允许使用负的长度。

6. 长度单位有两种类型: 绝对单位和相对单位。

7. 绝对长度

7.1. 绝对长度单位是固定的, 用任何一个绝对长度表示的长度都将恰好显示为这个尺寸。

7.2. 不建议在屏幕上使用绝对长度单位, 因为屏幕尺寸变化很大。但是, 如果已知输出介质, 则可以使用它们, 例如: 用于打印布局(print layout)。

7.3. 像素(px)是相对于观看设备的。对于低dpi的设备, 1px是显示器的一个设备像素(点)。对于打印机和高分辨率屏幕, 1px表示多个设备像素。

8. DPI和PPI

8.1. dpi(Dots Per Inch)指每一英寸长度中, 取样、可显示或输出点的数目。

8.2. 如果一台打印机的分辨率是4800×1200dpi, 那么意味着在X方向(横向)上, 两个墨点最近的距离可以达到1/4800英寸; 在Y方向(纵向)上, 两个墨点的距离可以达到1/1200英寸。

8.3. 例如HP喷墨打印机最高标称分辨率是4800×1200dpi, 这意味着在纸张的X方向(横向)上, 每一英寸长度上理论上可以放置4800个墨点。但是如果真的在普通介质的一英寸上放置全部的4800个墨点, 会发生什么情况呢?纸张对墨水的吸收过饱和, 墨水连成一片, 反而使分辨率下降。所以"理论"点数, 是指打印机能够达到的能力极限, 但是实现起来需要依靠纸张的配合, 如果采用专用纸张, 便可达到更好的性能, 在每个英寸上放置更多的独立墨点, 如果使用纸张不能支持选定的最高分辨率, 就会出现相邻的墨点交融联成一片的情况, 从而影响打印效果。

8.4. dpi早期是印刷上的记量单位, 意思是每英寸上, 所能印刷的网点数(Dot Per Inch)。但随着数字输入, 输出设备快速发展, 大多数的人也将数字影像的解析度用DPI表示, 但较为严谨的人可能注意到, 印刷时计算的网点(Dot)和电脑显示器的显示像素(Pixel)并非相同, 所以较专业的人士, 会用PPI(Pixel Per Inch)表示数字影像的解析度, 以区分二者。

8.5. ppi(pixels per inch)是图像分辨率的单位, 图像ppi值越高, 画面的细节就越丰富, 因为单位面积的像素数量更多, 数码相机拍出来的图片因品牌或生产时间不同可能有所不同, 常见的有72ppi(web上使用的图片都是72ppi), 180ppi和300ppi。

8.6. ppi和dpi确实是两个概念, 但是有些事情是约定成俗的, 图片的ppi无法反映这张图片能在冲印店得到的冲印质量。在冲印店里只用dpi, 只要知道你图片的像素和你所需要印制的尺寸, 这两个要素构成了dpi。

8.7. 打印尺寸、图像的像素数与打印分辨率之间的关系可以利用下列的计算公式加以表示:

8.7.1. 图像的横向像素数 = 打印横向分辨率 × 打印的横向尺寸;

8.7.2. 图像的竖向像素数 = 打印竖向分辨率 × 打印的竖向尺寸;

8.7.3. 图像的横向像素数 / 打印横向分辨率 = 打印的横向尺寸;

8.7.4. 图像的竖向像素数 / 打印竖向分辨率 = 打印的竖向尺寸。

8.7.5. 例如: 希望打印照片的尺寸是4*3inch, 而打印分辨率横向和竖向都是300dpi, 则需要照相机采集的像素数至少为(300 * 4) * (300 * 3) = 1080000像素, 约一百万像素。

9. 物理像素(device pixels)

9.1. 对于一个款型的设备来说, 物理像素的大小是固定的, 在设备的设计之初就已经被确定好了。

9.2. 上图放大的这一块区域, 我们可以看到有很多重复的单元, 每个单元均由红、绿、蓝三原色组成。我们称: 一组三原色组成的一块区域为一个物理像素。不同类型的设备, 三原色的形状和布局会存在一定的差异。并且, 不同款型的设备之间, 物理像素的大小也会有区别。

10. 物理分辨率是水平与竖直物理像素个数的乘积。

11. 显示分辨率(也叫像素分辨率)

11.1. 我们平常所说的显示器分辨率, 一般指桌面设定的显示分辨率, 而不是物理分辨率。

11.2. 现在液晶显示器成为主流, 它只有在二者相等时显示效果最佳, 所以现在我们的桌面分辨率几乎总是与显示器的物理分辨率一致了。一台物理分辨率为1280×1024的液晶显示器, 在默认情况下, 桌面显示的分辨率也是1280×1024px, 这个时候是最清晰的; 我们可以设定桌面显示分辨率为800×600px, 非原始分辨率必须通过在液晶显示屏上拟合重新取样来实现, 要使用插值算法, 这种情况下可能会让显示屏看起来破碎或模糊; 物理分辨率为1280×1024液晶显示器可能无法完全显示1600×1200px的分辨率, 因为物理三元素组不够。

11.3. 自己电脑显示屏的多个显示分辨率

11.4. 推荐的分辨率就是显示屏的物理分辨率。推荐使用显示分辨率和物理分辨率相同。

12. 设备像素(device pixel)

12.1. 显示器屏幕实际上是由一个一个"点"组成的, 这些"点"就是设备像素。使用推荐的显示分辨率, 设备像素和物理像素相同。

12.2. 需要注意的是, device pixel实际是可以"变化"的, 当你降低设备分辨率时, 一个"点"就需要更多的三元素组来组成, 此时"点"的物理尺寸就增大了。

12.3. 求自己台式机显示屏的ppi和设备像素

12.3.1. 屏幕实际尺寸21.5英寸。是对角线的长度。

12.3.2. 屏幕宽高实际尺寸: 476mm*268mm。

12.3.3. 屏幕显示分辨率1920 * 1080(推荐分辨率)。

12.3.4. 屏幕ppi的计算

12.3.5. 设备像素: 1in / 102ppi = 25.4mm / 102ppi = 0.249mm

12.4. 求自己笔记本显示屏的ppi和设备像素

12.4.1. 屏幕实际尺寸13.3英寸。是对角线的长度。

12.4.2. 屏幕宽高实际尺寸: 286mm*179mm。

12.4.3. 屏幕显示分辨率2560 * 1600(推荐分辨率)。

12.4.4. 屏幕ppi的计算

12.4.5. 设备像素: 1in / 227ppi = 25.4mm / 227ppi = 0.1119mm

12.5. 改变自己台式机显示屏的分辨率后, 求ppi和设备像素

12.5.1. 屏幕实际尺寸21.5英寸。是对角线的长度。

12.5.2. 屏幕宽高实际尺寸: 476mm*268mm。

12.5.3. 屏幕显示分辨率1600 * 900。

12.5.4. 屏幕ppi的计算

12.5.5. 设备像素: 1in / 85ppi = 25.4mm / 85ppi = 0.2988mm

12.6. 由于不同的设备屏幕显示分辨率和尺寸可能不一样, 所以设备上物理像素(一般情况下物理像素和设备像素一样大小)的大小也就不一样。但是对于CSS来说, 它希望在所有的设备上元素的显示效果看起来都是差不多的。

12.7. 那怎么才能让同一元素在不同的设备上显示的效果差不多呢?w3c提出了一个概念, 也就是下面将要介绍的参考像素(reference pixel)。

13. 参考像素(reference pixel)

13.1. 参考像素即为从一臂之遥看解析度为96dpi(太多现有内容依赖于96dpi的假设, 而打破该假设会破坏内容)的设备输出时, 1个设备像素所对应的视角, 这个角就是CSS参考像素, 没错CSS参考像素其实是一个角。这个视角的大小大概是0.0213度, (1/96)in / (28in * 2 * PI / 360deg) = 0.0213度。

13.2. 成人的手臂大约是28英寸。

13.3.  因此, 也可以说1px对应于大约0.26毫米(1/96英寸)。

14. CSS像素

14.1. 建议CSS像素单位参考最接近参考像素的整数个设备像素。

15. 像素例子

15.1. 自己台式代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>像素长度单位</title><style type="text/css">* {margin: 0;padding: 0;}div {width: 1920px;height: 500px;background-color: red;}</style></head><body><div></div></body>
</html>

15.2. 自己台式机上运行项目

15.3. 自己台式机屏幕实际尺寸21.5英寸, 是对角线的长度。屏幕显示分辨率1920 * 1080(推荐分辨率, 同时也是物理分辨率)。屏幕ppi是102ppi。设备像素: 1in / 102ppi = 25.4mm / 102ppi = 0.249mm。1920CSS像素, 刚好铺满整个屏幕, 说明1个CSS像素 = 设备像素(物理像素) = 0.249mm。

15.4. 自己笔记本代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>像素长度单位</title><style type="text/css">* {margin: 0;padding: 0;}div {width: 1280px;height: 500px;background-color: red;}</style></head><body><div></div></body>
</html>

15.5. 自己笔记本上运行项目

15.6. 自己笔记本屏幕实际尺寸13.3英寸, 是对角线的长度。屏幕显示分辨率2560 * 1600(推荐分辨率, 同时也是物理分辨率)。屏幕ppi是227ppi。设备像素: 1in / 227ppi = 25.4mm / 227ppi = 0.1119mm。1280CSS像素, 刚好铺满整个屏幕, 说明1个CSS像素 = 2设备像素(物理像素) = 0.2238mm。

16. 毫米,厘米,英寸,点和派卡例子

16.1. 代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>毫米,厘米,英寸,点和派卡</title><style type="text/css">* {margin: 0;padding: 0;}#mm {width: 100mm;height: 100mm;background-color: red;float: left;}#cm {width: 10cm;height: 10cm;background-color: green;float: left;}#in {width: 5in;height: 5in;background-color: blue;float: left;}#pt {width: 360pt;height: 360pt;background-color: fuchsia;float: left;}#pc {width: 30pc;height: 30pc;background-color: gray;float: left;}</style></head><body><div id="mm">100mm * 100mm</div><div id="cm">10cm * 10cm</div><div id="in">5in * 5in</div><div id="pt">360pt * 360pt</div><div id="pc">30pc * 30pc</div></body>
</html>

16.2. 效果图

17. 相对长度

17.1. 相对长度单位规定相对于另一个长度属性的长度。使用相对单位的样式表可以更轻松地从一种输出环境扩展到另一种输出环境。

17.2. em和rem单元可用于创建完美的可扩展布局。

17.3. 视口(Viewport)等于浏览器窗口的尺寸。如果视口宽50厘米, 则1vw = 0.5cm。

18. 相对于视口宽度和高度, 相对于较小和较大视口尺寸例子

18.1. 代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>相对于视口宽度和高度, 相对于较小和较大视口尺寸</title><style type="text/css">* {margin: 0;padding: 0;}#vw-vh {width: 50vw;height: 50vh;background-color: red;}#vmin {width: 20vmin;height: 20vmin;background-color: green;float: left;}#vmax {width: 20vmax;height: 20vmax;background-color: blue;float: left;}</style></head><body><div id="vw-vh"><p>屏幕实际尺寸: 476mm*268mm</p><p>测量屏幕尺寸: 508mm*286mm</p><p>浏览器最大化: 视口宽度508mm, 视口高度257mm</p><p>width: 50vw = 508mm * 0.01 * 50 = 254mm</p><p>height: 50vh = 257mm * 0.01 * 50 = 128.5mm</p></div><div id="vmin">20vmin * 20vmin</div><div id="vmax">20vmax * 20vmax</div></body>
</html>

18.2. 效果图

19. %,emrem

19.1. 代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>%相对于父元素, em相对于元素字体大小和rem相对于根元素字体大小</title><style type="text/css">* {margin: 0;padding: 0;}html {font-size: 32px;}div {font-size: 24px;width: 10em;height: 10rem;background-color: red;}p {width: 50%;height: 50%;background-color: blue;}</style></head><body><div><p></p></div></body>
</html>

19.2. 效果图

017_CSS长度单位相关推荐

  1. 关于CSS的长度单位及颜色表示

    长度单位 1.q 1/4mm. 2.px 计算机语言中的像素.大多数网页制作常用图片分辨率为72,即每英寸像素为72,1英寸等于2.54cm.那么通过换算可以得出每厘米等于28像素. 3.em 它是描 ...

  2. 混合app用百分比还是rem_一次搞懂前端所有CSS长度单位,px、em、rem、rpx、%....

    前端就是一个大杂烩,做为前端工程师需要掌握的知识点太多了.各种长度单位需要我们去了解 除了这些还有印刷单位 pt pc pt cm mm in.... 毫无疑问现在统治前端的长度单位还是px, 一个相 ...

  3. Xamarin Android长度单位区别

    Xamarin Android长度单位区别 Android中长度单位有6种:px.in.mm.pt.dp/dip.sp.其中,px表示显示设备的一个像素:in表示显示设备的1英寸:mm表示显示设备的1 ...

  4. 【计算机网络】网络层 : IP 数据报分片 ( 数据分片机制 | 分片示例 | 三种数据长度单位 )

    文章目录 一.最大传送单元 MTU 二.分片机制 ( 标识.标志.片偏移 ) 三.分片机制 示例 四.IP 数据报首部中的相关数据长度单位 一.最大传送单元 MTU 最大传送单元 MTU : MTU ...

  5. 秒后面的单位是什么_比光年还大的长度单位,你知道几个?

    日常生活中, "公里"算是最大的单位了, 由于赤道的长度只有40000公里, 地球上任意两点的距离不会超过两万公里. 不过,若是把视线转向太空, "公里"就显得 ...

  6. CSS中常见的长度单位

    px - 像素 px 是 CSS 中最常用的长度单位,可以用来指定字体大小,元素的宽度.高度.边框.内边距,外边距的大小等等, 它是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成 ...

  7. em表示什么长度单位_em单位_html长度单位EM

    html长度单位em引见,甚么时辰用em,em如何换算成PX像素,在下面状况下css 设置em单位. em指字体高,任意阅读器的默认字体高都是16px.所以未经调处的浏览器都切合:1em=16px,所 ...

  8. Android中的长度单位详解

    http://blog.csdn.net/zuolongsnail/article/details/6397768 in(英寸)长度单位(基本用不到) mm(毫米)长度单位(基本用不到) pt(poi ...

  9. web开发中的长度单位(px,em,ex,rem),如何运用,看完这篇就够了!

    原创 2017-03-08 web小二 web前端开发 作为一名前端开发人员,css中的长度单位,都是我们在工作中非常熟悉的名词,因为没有它们,我们就不能声明某个字符应该多大,或者某些图像周围应该留白 ...

最新文章

  1. 你真的会用Android的Dialog吗?由一个Exception想到的
  2. GUI菜单——菜单条、菜单、子条目之间关系
  3. UA MATH575B 数值分析下 计算统计物理例题1
  4. 【C++标准库】特殊容器
  5. python教学视频k_GitHub - y000k/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  6. c# 访问修饰符的访问权限
  7. python如何读取kepsever_python linecache读取过程
  8. 达梦工作笔记-使用达梦客户端创建用户并授予权限
  9. PowerDesigner12.5 破解,汉化下载(转载)
  10. 【学堂在线数据挖掘:理论方法笔记】第三天(3.27)
  11. python比较运算符用于两个数_比较运算符用于比较两个数,其返回的结果只能是True或False(1.0分)_学小易找答案...
  12. 解决局域网共享文件夹要求输入用户名密码访问的问题
  13. 十五至尊图(第六版)
  14. linux硬盘格式化物理卷,创建物理卷报错Can't open /dev/sdb5 exclusively. Mounted filesystem的问题解决过程记录......
  15. crt图形显示装置_CRT消防控制室图形显示装置图形显示装置_使用说明书_V1.0.doc...
  16. JAVA的jdk1.8中文文档
  17. 判断一个轮廓是否为圆形
  18. ppt 计算机图标不见了,我PPT的图标变成这样了,为什么
  19. R语言如何绘制韦恩图(6)
  20. pandas之dropna()的用法

热门文章

  1. 移动端h5开发总结不断更新中....
  2. web网站无法启动报错
  3. 移动三国己然鼎立,普​通开发者如何选择开发​平台?
  4. CCIE试验备考之冗余备份VRRP
  5. 05-01-部署 WSUS on Windows 2019 Core
  6. SDN控制器部署相关工作—Vecloud
  7. Python 词典增加和删除
  8. Unity设置AppIcon方法
  9. [C++]C++11:Function与Bind
  10. 【转】浅谈.net remoting 与webservice