当前位置: 首页 > Web前端 > CSS

前端CSS高频面试题---2.em-px-rem-vh-vw的区别

时间:2023-03-30 18:43:25 CSS

1.简介在传统的项目开发中,我们只使用px、%、em这几个单位。它们可以应用于大多数项目开发,具有良好的兼容性。从CSS3开始,浏览器对度量单位的支持更上一层楼,新增了rem、vh、vw、vm等一些新的度量单位。使用这些新单元可以开发出相对较好的响应式页面,适配不同分辨率的终端,包括移动设备。2.单位在css单位中,可以分为长度单位和绝对单位,如下表CSS单位相对长度单位em,ex,ch,rem,vw,vh,vmin,vmax,%绝对长度单位cm,mm,in,px,pt,pc今天主要说说px,em,rem,vh,vw,vm的区别1.pxpx,即像素的意思,所谓像素就是呈现在表面上的小点我们的显示器,每个Pixels都是一样大的,所以pixels被划分为绝对长度单位。有些人会将px看成是相对长度,因为移动端存在设备像素比,px的实际显示大小是不确定的。这里之所以认为px是绝对单位,是因为px的大小与元素的其他属性无关。2.emem是相对长度单位。相对于当前对象中文本的字体大小。如果内联文本的当前字体大小没有手动设置,它是相对于浏览器的默认字体大小(1em=16px)。为了简化字体大小的转换,我们需要在css中的body选择器中声明font-size=62.5%,这使得em值为16px*62.5%=10px。这样12px=1.2em,10px=1em,也就是说你只需要将你原来的px值除以10,然后换成em为单位就可以了。特点:em的值不固定。Em会继承父元素的字体大小。Em是相对长度单位。相对于当前对象中文本的字体大小。如果没有手动设置内联文本的当前字体大小,则任何浏览器的默认字体高度相对于浏览器的默认字体大小都是16px。例如:我是14px=1.4em我是12px=1.2em

此时.big元素的font-size为14px,.small元素的font-size为12px3.remrem,相对单位,相对的只是HTML根元素的font-size的值。同样,如果我们想简化font-size的转换,可以在根元素html中加上font-size:62.5%。html{字体大小:62.5%;}/*公式16px*62.5%=10px*/这样在页面中1rem=10px,1.2rem=12px,1.4rem=14px,1.6rem=16px;makevision,use和writing都得到了很大的帮助特点:rem单位可以说是兼具相对大小和绝对大小的优势。与em不同的是rem总是相对于根元素,并没有像em那样使用级联的方式计算大小4.vh,vwvw是根据窗口的宽度分成100等份,100vw表示满宽,50vw表示半宽。(vw始终是窗口的宽度),类似地,vh是窗口的高度。这里的窗口分为几种情况:在桌面端,指的是浏览器的可视区域;移动端指vw、vh等布局视口。比较容易混淆的单位是%,但是百分比比较宽泛。对于父元素:对于普通的定位元素,就是我们理解的父元素。对于位置:绝对;元素相对于定位的父元素。对于位置:固定;elementsarerelativetoViewPort(visualwindow)5.vm是相对于视口的宽度或高度,以较小者为准。其中最小的被分成100个单位的vm。例如:浏览器高度900px,宽度1200px,取最小浏览器高度,1vm=900px/100=9px。3、总结"px":绝对单位,页面以精确像素显示"em":相对单位,参考点是父节点的字体大小,如果font-size是自己定义的,则计算为本身,整个页面中的1em并不是一个固定值"rem":相对单位,可以理解为根em,相对于根节点html的字体大小计算"vh,vw":主要用于页面视口大小布局,页面布局更方便简单"vm":对于视口的宽度或高度较小的一个,用法类似vh\vm