1、px、em、rem和%的定义css
1.px(像素)html
px单位的名称为像素,它是一个固定大小的单元,像素的计算是针对(电脑/手机)屏幕的,一个像素(1px)就是(电脑/手机)屏幕上的一个点,即屏幕分辨率的最小分割。因为它是固定大小的单位,单独用它来设计的网页,若是适应大屏幕(电脑),在小屏幕(手机)上就会很不友好,作不到自适应的效果。css3
示例:浏览器
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>css px像素固定长度单位</title> <style type="text/css"> body{background-color: #aaa;} .px{border:1px solid red;width:300px;height:100px;font-size:30px;} </style> </head> <body> <div class="px"> 用px单位设置元素的宽高和文本的字体大小 </div> </body> </html>
运行结果:布局
2.em(相对长度单位)字体
em单位用的也比较多,特别是国外;em单位的名称为相对长度单位,它是用来设置文本的字体尺寸的,相对于父级元素对象内文本的字体尺寸;若是没有人为设置当前对象内文本的字体尺寸,那么它相对的是浏览器默认的字体尺寸(16px)。spa
示例:设计
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>用em相对长度单位来设置文本的字体大小</title> <style type="text/css"> body{background-color: #aaa;} .div{border:1px solid red;width:300px;height:100px;font-size:30px;} .em{font-size:0.5em;}/*30px x 0.5 = 15px*/ </style> </head> <body> <div class="div"> <span class="em">用em相对长度单位来设置文本的字体大小</span> </div> </body> </html>
运行结果:3d
说明:以上实例em是相对于父级元素div的,div设置的字体大小为30px,因此0.5em计算后的字体大小为:30px x 0.5 = 15pxcode
3.rem(css3新增的相对长度单位)
rem是css3新增的一个相对长度单位,它的出现是为了解决em的缺点,em能够说是相对于父级元素的字体大小,当父级元素字体大小改变时,又得从新计算。rem出现就能够解决这样的问题,rem只相对于根目录,即HTML元素。因此只要在html标签上设置字体大小,文档中的字体大小都会以此为参照标准,通常用于自适应布局。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>用css3新增的相对长度单位rem来设置文本的字体大小</title> <style type="text/css"> body{background-color: #aaa;} .div{border:1px solid red;width:300px;height:100px;font- size:30px;} .rem{font-size:0.5rem;}/*16px x 0.5 = 8px*/ </style> </head> <body> <div class="div"> <span class="rem">用rem相对长度单位来设置文本的字体大小</span> </div> </body> </html>
说明:rem是相对于根元素html元素的,浏览器通常默认字体大小为16px,全部0.5rem的计算后的字体大小为:16px x 0.5 = 8px,跟父元素设定的30px没有关系
4.%(百分比)
%也很常见,它和em差很少同样,都是相对于父级元素。但%能够在不少属性中使用,好比:width、height、font-size等。而em是用来设置字体大小(font-size)的单位,width、height等属性是没有em单位的。
2、px、em、rem和%的区别与总结