标准盒子模型vsIE盒子模型

博客提及了标准盒子模型和IE盒子模型,虽未展开详细内容,但聚焦于这两种信息技术领域中前端开发涉及的盒子模型。

标准盒子模型:

IE盒子模型:

说说你对盒子模型的理解? #一、是什么 当对一个文档进行布局(layout)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box) 一个盒子由四个部分组成:content、padding、border、margin content,即实际内容,显示文本和图像 boreder,即边框,围绕元素内容的内边距的一条或多条线,由粗细、样式、颜色三部分组成 padding,即内边距,清除内容周围的区域,内边距是透明的,取值不能为负,受盒子的background属性影响 margin,即外边距,在元素外创建额外的空白,空白通常指不能放其他元素的区域 上述是一个从二维的角度观察盒子,下面再看看看三维图: 下面来段代码: <style> .box { width: 200px; height: 100px; padding: 20px; } </style> <div class="box"> 盒子模型 </div> 当我们在浏览器查看元素时,却发现元素的大小变成了240px 这是因为,在CSS中,盒子模型可以分成: W3C 标准盒子模型 IE 怪异盒子模型 默认情况下,盒子模型为W3C 标准盒子模型 #二、标准盒子模型 标准盒子模型,是浏览器默认的盒子模型 下面看看标准盒子模型的模型图: 从上图可以看到: 盒子总宽度 = width + padding + border + margin; 盒子总高度 = height + padding + border + margin 也就是,width/height 只是内容高度,不包含 padding 和 border值 所以上面问题中,设置width为200px,但由于存在padding,但实际上盒子的宽度有240px #三、IE 怪异盒子模型 同样看看IE 怪异盒子模型的模型图: 从上图可以看到: 盒子总宽度 = width + margin; 盒子总高度 = height + margin; 也就是,width/height 包含了 padding和 border值 #Box-sizing CSS 中的 box-sizing 属性定义了引擎应该如何计算一个元素的总宽度和总高度 语法: box-sizing: content-box|border-box|inherit: content-box 默认值,元素的 width/height 不包含padding,border,与标准盒子模型表现一致 border-box 元素的 width/height 包含 padding,border,与怪异盒子模型表现一致 inherit 指定 box-sizing 属性的值,应该从父元素继承 回到上面的例子里,设置盒子为 border-box 模型 <style> .box { width: 200px; height: 100px; padding: 20px; box-sizing: border-box; } </style> <div class="box"> 盒子模型 </div> 这时候,就可以发现盒子的所占据的宽度为200px 解释说明盒模型,总结这个文章,重新梳理一次。
06-12
Box-sizing CSS 中的 box-sizing 属性定义了引擎应该如何计算一个元素的总宽度和总高度 语法: box-sizing: content-box|border-box|inherit: content-box 默认值,元素的 width/height 不包含padding,border,与标准盒子模型表现一致 border-box 元素的 width/height 包含 padding,border,与怪异盒子模型表现一致 inherit 指定 box-sizing 属性的值,应该从父元素继承 ### CSS盒子模型的定义、组成部分及不同模型的区别 #### 定义 CSS盒子模型(Box Model)是用于设计和布局HTML元素的核心概念之一。在CSS中,所有HTML元素都可以看作是一个矩形的盒子,这些盒子封装了周围的HTML元素,并允许在其他元素和周围元素边框之间的空间放置内容。 #### 组成部分 CSS盒子模型由四个主要部分组成: 1. **Content(内容区)**:这是盒子中实际显示内容的部分,例如文本或图像。它由`width`和`height`属性定义。 2. **Padding(内边距)**:位于内容区与边框之间的区域,用于控制内容与其边框之间的间距。内边距是透明的,受`background`属性的影响。 3. **Border(边框)**:围绕在内边距之外的一层,可以设置样式、宽度和颜色。边框会增加盒子的实际尺寸。 4. **Margin(外边距)**:位于盒子外部,用于与其他元素保持距离。外边距通常是透明的,不会受到背景颜色的影响。 #### 标准盒子模型与IE怪异盒子模型的区别 - **标准盒子模型(content-box)**:在这种模型下,`width`和`height`属性仅适用于内容区域(content),不包括内边距(padding)、边框(border)或外边距(margin)。这意味着如果设置了宽度为300px,那么内容区域的宽度就是300px,而内边距和边框会额外增加到总宽度上。 ```css div { box-sizing: content-box; width: 300px; padding: 25px; border: 25px solid green; } ``` 上述代码中,最终的宽度为:300px(内容宽度) + 2 × 25px(左右内边距) + 2 × 25px(左右边框宽度) = 400px。 - **IE怪异盒子模型(border-box)**:在这种模型下,`width`和`height`属性包含内容区域、内边距和边框的总和。这意味着如果设置了宽度为300px,那么内容区域、内边距和边框的总和不会超过300px。 ```css div { box-sizing: border-box; width: 300px; padding: 25px; border: 25px solid green; } ``` 上述代码中,内容区域的宽度为:300px - 2 × 25px(左右内边距) - 2 × 25px(左右边框宽度) = 200px。 #### box-sizing属性的作用 `box-sizing`属性用于定义如何计算元素的宽度和高度。它有两个主要值: - **content-box**:这是默认值,表示使用标准盒子模型,`width`和`height`仅适用于内容区域。 - **border-box**:表示使用怪异盒子模型,`width`和`height`包含内容区域、内边距和边框。 通过设置`box-sizing: border-box;`,开发者可以更方便地进行精确布局,尤其是在需要固定宽度的容器中添加内边距和边框时。 ### 示例代码 以下是一个对比两种盒子模型的示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>盒子模型对比</title> <style> .standard-box { box-sizing: content-box; width: 300px; padding: 25px; border: 25px solid green; background-color: lightgrey; } .quirky-box { box-sizing: border-box; width: 300px; padding: 25px; border: 25px solid green; background-color: lightblue; } </style> </head> <body> <h2>标准盒子模型 vs 怪异盒子模型</h2> <div class="standard-box">标准盒子模型</div> <div class="quirky-box">怪异盒子模型</div> </body> </html> ``` #### 结论 理解CSS盒子模型及其不同模式对于实现精确的网页布局至关重要。通过合理使用`box-sizing`属性,开发者可以简化复杂的布局问题,并确保设计的一致性。
最新发布
06-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值