box-sizing和calc()盒模型

本文探讨了CSS盒模型中100%宽度的实现方式,并提供了使用box-sizing属性和calc()函数的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSS中盒模型:

CSS中盒模型分为两种,第一种是W3C的标准模型(即盒子的宽高等于内容的宽高,盒子的padding和border不计算在内),第二种是IE的传统模型(IE6以下,不含IE6,称为怪异模式或者QuirksMode,即盒子的宽高等于内容的宽高加上padding和border值)

问题:

当开发时,遇到盒子宽度需要占据整个屏幕的宽度时,设置宽度为100%,如若再加上border值,则会使其溢出盒模型,导致计算误差

解决方案:

1、使用box-sizing属性

该属性支持IE8以上及现代浏览器,需加前缀,-webkit-,-moz-,-ms-,-o-

box-sizing:content-box(默认,指其内容宽高)

box-sizing:border-box(指其盒模型的宽高等于内容宽高加上内边距padding和边框border值)

box-sizing:inherit(继承父元素的box-sizing属性)


2、使用calc()计算

该CSS3新增属性可以给元素的border、margin、padding、font-size、width等属性设置动态值,适合流式布局

calc()的运算规则

1、使用 + - * / 四则运算

2、可以使用百分比、px、em、rem等单位,且可以混用

3、表达式中有 + - 时,前后必须留有空格,* / 也建议留有空格

注意:calc()兼容IE9等现代浏览器,但是移动端浏览器现在并不支持,使用时,也需要加上前缀-webkit-calc(expression)等

例子:

需要使一容器占据整个屏幕宽度并且有边框

.box{

height:200px;

width:-webkit-calc(100% - 1px * 2);

width:-moz-calc(100% - 1px * 2);

width:calc(100% - 1px * 2);

}

注意:运算符之间要留有空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值