css中使⽤calc()计算宽⾼
calc()是什么?
简单来说就是CSS3中新增的⼀个函数,calculate(计算)的缩写。⽤于动态计算宽/⾼,你可以使⽤calc()给元素的各个属性设置值【margin、border、padding、font-size】等,
calc()语法
calc的语法就是简单的四则运算,
1. 使⽤“+”、“-”、“*” 和 “/”四则运算;
2. 可以使⽤百分⽐、px、em、rem等单位;
3. 可以混合使⽤各种单位进⾏计算;
4. 表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;
5. 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。
浏览器兼容性:
浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好⽀持,同样需要在其前⾯加上各浏览器⼚商的识别符,不过可惜的是,移动端的浏览器还没仅有“firefox for android 14.0”⽀持.
calc()的⽤途
主要⽤于计算不确定值,例如⼀个外边距为10px,宽度为100%的元素,这种情况我们怎么设置呢?如果设置了
width: 100%;
margin: 10px;
复制代码
你可以看出这个box已经溢出了,那么怎么解决呢?就可以⽤calc函数了。
div border属性width: 800px;
width: calc(100% - (10 *2)px);
margin: 10px;
vw和vh是什么?
vm、vh、vmin、vmax是⼀种视窗单位,也是相对单位。它相对的不是⽗节点或者页⾯的根节点。⽽是由视窗(Viewport)⼤⼩来决定的,单位 1,代表类似于 1%。 视窗(Viewport)是你的浏览器实际显⽰内容的区域—,换句话说是你的不包括⼯具栏和按钮的⽹页浏览器。
具体描述如下:
1. vw:视窗宽度的百分⽐(1vw 代表视窗的宽度为 1%)
2. vh:视窗⾼度的百分⽐
3. vmin:取当前Vw和Vh中较⼩的那⼀个值
4. vmax:取当前Vw和Vh中较⼤的那⼀个值
PX、EM、REM、%、VW、VH单位之间的区别
1 、px
px就是pixel(像素)的缩写,相对长度单位,相对于屏幕分辨率。
2、em
参考物是⽗元素的font-size,具有继承的特点。浏览器默认字体是16px,整个页⾯内1em不是⼀个固定的值。
字体⼤⼩同样都是1.5em,但是效果却截然不同,按照W3C提供的公式,我们可以计算下: class为id1的div字体⼤⼩继承⾃⽗元素body:16px*1.5em = 24px class为id2的div字体⼤⼩继承⾃⽗元素id1:24px*1.5em = 36px class为id3的div字体⼤⼩继承⾃⽗元素id2:36px*1.5em = 54px
3、rem
rem是CSS3新增的⼀个相对单位,但相对的只是HTML根元素。通过它既可以做到只修改根元素就成⽐例地调整所有字体⼤⼩,⼜可以避免字体⼤⼩逐层复合的连锁反应。
4、%
% 百分⽐,相对长度单位,相对于⽗元素的百分⽐值
元素宽⾼与字体⼤⼩使⽤区别:
(1)尽量使⽤相对尺⼨单位
使⽤相对尺⼨单位计量,则在调整页⾯的布局的时候,不需要遍历所有的内部DOM结构,重新设置内部⼦元素的尺⼨⼤⼩。如果是随着⽗容器或者是整体页⾯布局⽽改变尺⼨,则使⽤%更好,如元素的⾼度和宽度设置。
(2)字体尺⼨尽量使⽤em、rem
为了字体⼤⼩的可维护性和伸缩性,推荐使⽤em,如果存在3层以及3层以上的字体相对尺⼨的设置,可以考虑使⽤rem。
vh和vw
vh和vw相对于视⼝的⾼度和宽度, 1vh 等于1/100的视⼝⾼度,1vw 等于1/100的视⼝宽度 ⽐如:浏览器⾼度900px,宽度为750px, 1 vh = 900px/100 = 9 px,1vw = 750px/100 = 7.5 px, 很容易实现与同屏幕等⾼的框。
calc + vm 计算宽度
width: 800px; /* fallback for b*/
width: -moz-calc(100vm - (2 * 10)px);
width: -webkit-calc(100vm -(2 * 10)px);
width: calc(100vm - (2 * 10)px);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论