首页 > 其他分享 >css3各种度量单位 px、em、%、rem、vh/vw、vmin/vmax

css3各种度量单位 px、em、%、rem、vh/vw、vmin/vmax

时间:2023-02-02 14:01:19浏览次数:52  
标签:css3 em 浏览器 vmin 元素 rem font size

一 px

相对长度单位,浏览器的度量单位,相对于物理像素(显示器屏幕分辨率),1px在高清屏幕下可能占用2个物理像素、甚至3个物理像素,有关物理像素和px之间转换比,可以查看这篇文章

 二 em

相对于当前DOM元素的font-size。

如果设置当前元素的font-size为0.75em,而其父元素的font-size是16px时,则当前元素的font-size是0.75 * 16px = 12px;

如果设置当前元素的width是10em,而当前元素的font-size是16px(无论是继承自父容器还是设置的)时,则当前元素的width是10 * 16px = 160px;

注意1:任意浏览器的默认字体高都是16px,如果给body元素的font-size设置为62.5%,那body的font-size实际大小是 16px*62.5%=10px,如果所有子元素都以该字体大小使用em作为尺寸单位,相当于1em=10px,这样设置em就非常简单,只要将实际px数值除以10,就是em单位值。

注意2:em相对于px的值并不是固定的,是会随着父元素或者当前元素的font-size不同而变化。

三 %

 相对于父元素的长度高度。

注意1:position:fixed时,无论当前元素放在哪里,将相对于窗口宽度。

注意2:position:absolute时,将相对于其相对的元素宽度(递归父元素直到第一个设置了position的元素)。

四 rem

rem是CSS3新增的一个相对单位(root em,根em),相对于根节点(一般为html节点)的font-size,如果html节点设置font-size = 100px,那么文档中的元素设置为0.3rem,则计算为:0.3 * 100px = 30px。

这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。

目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明(通过下边样式覆盖上边样式原理),这些浏览器会忽略用rem设定的字体大小,如下:

1         p {
2             font-size: 14px;
3             font-size: .875rem;
4         }

五 vh/vw

CSS3新增样式,部分浏览器(IE8)不支持。

vh、vw:相对于视窗(Viewport)的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。

1vh 等于1/100的视窗高度,1vw 等于1/100的视窗宽度。

视窗:是指浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。

使用场景:

1.设计师经常要求,banner占满首屏高度既:100vh。如iphone6 (375px * 677px)= (100vw * 100vh) ,而iphone6 plus (414px * 736px) = (100vw * 100vh) 两种屏幕下的vw、vh是不一样的。

2.一般而言,屏幕越大,我们希望文字大小也越大,元素的尺寸也能等比例放大可以采用如下方案:通过vm和CSS3的calc方法,将html的字体设置为可以随着窗口大小按比例变化的大小,然后具体模块或者元素再使用rem或者em单位来实现。具体代码如下:

 

 六 vmin/vmax

CSS3新增样式,部分浏览器(IE8)不支持。

 vmin:取视窗高度和宽度的最小值作为基准。

vmax:取视窗高度和宽度的最大值作为基准。

例如:浏览器视窗大小为 window.innerWidth=1000px,window.innerHeight=800px,那么,1vmin=800px/100=8px; 1vmax=1000px/100=10px。

标签:css3,em,浏览器,vmin,元素,rem,font,size
From: https://www.cnblogs.com/liziqian001/p/17085768.html

相关文章

  • MDA165-16-ASEMI焊机专用模块MDA165-16
    编辑:llMDA165-16-ASEMI焊机专用模块MDA165-16型号:MDA165-16品牌:ASEMI封装:MDA正向电流:165A反向电压:1600V引脚数量:2芯片个数:2芯片尺寸:MIL漏电流:>10ua恢复时间:>500ns浪涌电流:25......
  • MDA165-16-ASEMI焊机专用模块MDA165-16
    编辑:llMDA165-16-ASEMI焊机专用模块MDA165-16型号:MDA165-16品牌:ASEMI封装:MDA正向电流:165A反向电压:1600V引脚数量:2芯片个数:2芯片尺寸:MIL漏电流:>10ua恢复时间:>500......
  • MDA110-16-ASEMI单臂共阳极整流模块MDA110-16
    编辑:llMDA110-16-ASEMI单臂共阳极整流模块MDA110-16型号:MDA110-16品牌:ASEMI封装:MDA特性:整流模块正向电流:110A反向耐压:1600V恢复时间:>500ns引脚数量:2芯片个数:2芯......
  • ifc4x3 附录E示例-LinearPlacement_1
    ifc4x3附录E示例-LinearPlacement_1示例概述意图此场景是沿路线曲线进行局部和线性放置的示例。IfcLinerPlacement定义了依赖于引用空间曲线(通常是IfcAlignmentCurve)的......
  • Maven - settings.xml简易配置Demo
    前言这里贴一下settings.xml的一个简易配置demo,就是简单配置了:本地的仓库地址、阿里云镜像、指定使用jdk1.8进行编译。这里使用的Maven是3.5.0版本的。配置文件demo<?xmlve......
  • Google的三架马车--Google File System (GFS)
    背景介绍国际方面,数据库理论研究起步于20世纪60年代,并于20世纪70年代开始产业化,逐步形成了成熟的IOE(IBM提供硬件,Oracle提供数据库软件,EMC提供存储介质)应用模式,开始占领全......
  • Git 项目常用提交emoji
    emojiemoji代码commit说明......
  • gp执行存储过程报错could not temporarily connect to one or more segments
    收到业务侧反馈有一个存储过程无法执行在启动一分钟左右,会报错。如图所示报错信息couldnottemporarilyconnecttooneormoresegments翻译过来是“暂时无法连接到......
  • 【MIT CS6.828】Lab 2: Memory Management - Part 1: Physical Page Management
    Part1:PhysicalPageManagement练习1.在文件kern/pmap.c中,您必须实现以下函数的代码(可能按照给定的顺序)。boot_alloc()mem_init()(只到调用check_page_free_list(1......
  • FastJason 1.2.22-1.2.24 TemplatesImpl利用链分析
    前言休息了好像有一周了(慢慢的罪恶感),昨天在打比赛的时候做了一个php-cms的审计,然后激起了学习的热情。之前打比赛的时候遇到过fastjson的题,当时也就是直接用poc利用了,也......