求教CSS宽度百分比是如何算来的?

html-css016

求教CSS宽度百分比是如何算来的?,第1张

这个宽度是以其父节点的width来计算的,如果父节点未设置width属性,就上溯其祖父节点,这样一直上溯,直到找到明确指定了width属性的祖先节点。如果整个家族的节点都没有设置width属性,那么就以当前浏览器窗口的实际宽度为基准。

比如宽度为父元素的50%加上5像素:

width:calc(50% + 5px)

要注意加号(或减号)两边一定要加上空格!

再比如宽度是父元素的三分之一再减去3像素:

width:calc((100% / 3) - 3px)

乘号(或除号)两边可以不加空格,但建议最好加上!

此外必须注意这种方法属于css3标准,不是什么浏览器都适用的哦!

vh: 相对于视窗的高度, 视窗被均分为100单位的vh

vw: 相对于视窗的宽度, 视窗被均分为100单位的vw

vmax: 相对于视窗的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax

vmin: 相对于视窗的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin

视区:所指为浏览器内部的可视区域大小,

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

calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。

calc是 css3提供的一个在css文件中计算值的函数:

用于动态计算长度值。

需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);

任何长度值都可以使用calc()函数进行计算;

calc()函数支持 “+”, “-“, “*”, “/” 运算;

calc()函数使用标准的数学运算优先级规则;

calc(100vh - 10px) 表示整个浏览器窗口高度减去10px的大小

calc(100vw - 10px) 表示整个浏览器窗口宽度减去10px的大小

一般用来设置流式布局宽高,当然,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值

calc()的兼容性需要注意