IE6 很邪恶,但我爱它的盒子模型

Go-zero微服务实战:从零搭建电商用户系统(含完整代码示例) 本文详细介绍了如何使用go-zero框架从零搭建电商用户系统,包含完整的微服务架构设计、核心功能实现代码示例以及性能优化策略。通过分层架构设计、JWT认证、分布式锁等关键技术,实现高并发、高可用的用户系统,适用于电商平台开发。 阅读详情

盒子模型(Box Model)是 CSS 的核心,现代 Web 布局设计简单说就是一堆盒子的排列与嵌套,掌握了盒子模型与它们的摆放控制,会发现再复杂的页面也不过如此,然而,任何美好的事物都有缺憾,盒子模型有两 种不同的诠释,一种来自 IE6,一种来自 W3C 标准浏览器。

盒子模型

下图就是一个典型的盒子模型示意图

在内容区外面,依次围绕着 padding 区,border 区,margin 区,这一模型结构在所有主流浏览器都是一致的。通过盒子模型,我们可以为我们的内容设置边界,留白以及边距,盒子模型最典型的应用是这样:我们有一段内 容,可以为这段内容设置一个边框,为了让内容不至于紧挨着边框,可以设置 padding ,为了让这个盒子不至于和别的盒子靠得太紧,可以设置 margin。

到目前为止,一切都很完美,直到当我们想为这个盒子设置一个尺寸的时候。

IE6 和 W3C 标准浏览器对盒子模型的不同诠释

当我们试图为一个盒子设置尺寸的时候,问题出现了。IE6 和 W3C 标准浏览器对盒子模型有不同的解释,这个不同解释表现在盒子的尺寸上,下图是两种类型的浏览器对盒子尺寸的不同解释示意图:

可以看出,IE6 盒子模型中,盒子的尺寸包含了 内容区,padding, border 和 margin 这四个部分,而 W3C 的盒子模型中,盒子的尺寸只包含内容区,padding,border 和 margin 被排除在盒子尺寸之外。

为什么 IE6 的盒子模型更合理

在现实世界中,我们描述一个物理盒子的时候,如果谈到尺寸,是不会只计算其盛放的物体的尺寸的,我们还会算上空隙与盒体本身。拿集装箱装箱为例,我 们有 100 只花瓶,每只花瓶用1个纸盒包装,为了防止花瓶破碎,我们在花瓶周围塞上泡沫,这相当于 padding,纸盒的外围纸板相当于 border,在装集装箱的时候,为了防止纸盒之间相互碰撞,纸盒之间塞上稻草,这相当于 margin,很显然,我们向货运公司报告我们货物尺寸的时候,是要将整个纸盒的尺寸,连同纸盒之间需要塞稻草的空隙都告诉他们的,倘若只报告花瓶的尺 寸,货运公司是没有办法装箱的。

再举一个例子,假若我们有一面墙,要在上面挂10幅油画,油画是用相框裱糊的,相框的边框相当于 border,油画和边框之间的距离相当于 padding,相框之间的间隔相当于 margin,这个例子和 Web 布局设计已经很接近了,对任何人来说,使用 IE6 的盒子模型,将整个相框,包括油画当做一个整体更容易布局,当你知道了整个相框的尺寸后,不必再去考虑 padding, border, margin 这个因素的影响,每个相框就是一个整体,至于 padding, border 与 margin,这是浏览器自己事,不需要设计者去关心。

在具体的 Web 设计中

在具体 Web 设计中,尤其牵扯到复杂网格布局的时候,IE6 的盒子模型更容易控制,我们不妨看看以下几个设计场景。

1. 面板式界面设计

页面上包含几个面板,比如一个登录面板,一个最新新闻面板,一个投票面板,这类设计典型的做法是,用背景图的方式,首先逐个设计出这些面板的外观 图,将需要用具体内容替换的地方空着,这些面板,无非就是一些使用面板外观图片做背景图的盒子,然后,在这些盒子里面,放上具体的内容,使用 padding 控制内容的摆放位置,使用 margin 调整面板本身的摆放位置,由于面板的尺寸是固定的,我们依此确立了盒子的尺寸之后,就无需再关心尺寸问题,然后,不论你怎样调整 padding 和 margin,都不会影响面板本身的结构。这是 IE6 盒子模型。

而在 W3C 的盒子模型中,调整 padding 和 margin ,都会影响盒子的尺寸,你在调整内容摆放位置的同时,极有可能打乱面板本身的结构。

2. 百分比级尺寸 + 像素级边界问题

W3C 盒子模型在设计中最让人头疼的是,假如你有一个不确定宽度的容器,想在里面放置两个同样大小的盒子,最合理的的做法当时是设置每个盒子的宽度为 50%,这样,不管你的容器宽度为多大,这两个盒子总能自动适应这个宽度,然而,前提是你不要设置任何 padding 或 border,而,现实中,为了防止两个盒子中的内容互相挨得太近,你肯定要设置 padding,一旦设置了 padding,就会发现你的容器被撑破了。

当然你会说,每个盒子的宽度不要设为 50%,可以设为 45%,然后为每个盒子再加一个 5% 的 padding,这是一个解决办法,但我们在设计中经常有这样的习惯,虽然一段内容的宽度可能不确定,但我们总喜欢它拥有固定 padding,我们并不希望 padding 自动适应,况且,在很多时候,我们希望为一个自适应宽度的盒子,设置一个 1 像素的 border,在这种情形,W3C 盒子模型将陷入困境。

而遇到这种情形,IE6 盒子模型不需要任何周折,你只管将每个盒子的宽度设置为 50%,它们会自动适应容器的宽度,然后,不管你你怎样设置 padding 和 border,都不会撑破你的容器。

W3C 在盒子模型上迷途知返

虽然 W3C 永远都不会承认,但他们显然意识到了这个问题,重新定义盒子模型是不可能了,所以,在 CSS3 中,我们看到了下面这个属性:

box-sizing

box-sizing 有两个可选值,一个是默认的 content-box 一个是 border-box,选用后者,盒子模型将按 IE6 的方式进行处理。

 

本文来源:锐商企业CMS 网站内容管理系统 官方网站 (作者:35公里)

6.6kW的车载充电器(On-Board Charger, OBC)电路分析 图片展示了6.6kW的车载充电器(On-Board Charger, OBC)电路,其中包含双向和单向两种拓扑结构。接下来我们将深入分析每个模块的设计、原理及其优势,以帮助理解不同结构在实际应用中的选型和应用。 阅读详情

相关推荐

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

IE6盒子模型

盒子模型(Box Model)是 CSS 的核心,现代 Web 布局设计简单说就是一堆盒子的排列与嵌套,掌握了盒子模型与它们的摆放控制,会发现再复杂的页面也不过如此,然而,任何美好的事物都有缺憾,盒子模型有两 种不同的诠释,一种来自 IE6,一种来自 W3C 标准浏览器。 盒子模型 下图就是一个典型的盒子模型示意图 在内容区外面,依次围绕着 padding 区,border...

VooleBoy的专栏 356

基于IP2369与STM32的45W双向PD移动电源设计

USB PD(Power Delivery)是一种面向高功率、智能协商的通用快充协议,其核心在于通过BMC编码在CC线上完成供电能力(PDO)动态匹配与电压/电流精准调控。IP2369作为高度集成的PD协议管理芯片,内置PHY、协议引擎与MOSFET驱动,可卸载MCU实时通信压力;而STM32F103系列凭借低功耗STOP模式与丰富外设,成为电源状态管理与用户交互的理想协处理器。该组合显著提升系统鲁棒性与能效比,适用于便携式移动电源、嵌入式备用电源及PD协议教学验证等场景。本文围绕IP2369配置电阻精度、

weixin_42608299的博客 519

[转载] IE6很邪恶,但我爱它的盒子模型

IE6很邪恶,但我爱它的盒子模型 matrix 发表于 2010年6月12日 11时12分 星期六 Printer-friendly Email story 来自中国盒部门 Internet Explorer 锐商企业CMS 写道 "盒子模型(Box Model)是 CSS 的核心,现代 Web 布局设计简单说就是一堆盒子的排列与嵌套,掌握了盒子模型与它们的摆放控制,会发现再复...

hellonickco的专栏 257

【云迁移工具RDA】迁移常见问题

Agent无法正常启动,Linux系统提示“SMS.0201 Failed to start sms agent!”,Windows系统提示“SMS.0201 源端主机网络繁忙,无法连接api网关”。该问题通常是由于源端没有通公网,或者没有按照要求配置hosts,无法与iam或者sms通信导致。需要排查源端网络。1.登录源端服务器。2.检查源端是否能正常访问互联网,若无法访问,请处理后重新启动Agent。可参考弹性公网IP Ping不通检查源端的DNS,防火墙,安全组、本地网络等。

2404_89358774的博客 1487

YOLOv5s模型训练全流程解析:从数据准备到实战检测

本文详细解析了YOLOv5s模型训练的全流程,涵盖从环境搭建、数据准备与格式转换,到模型训练、参数调优及实战检测的完整步骤。文章提供了具体的代码示例和常见问题解决方案,旨在帮助开发者,特别是新手,高效掌握YOLOv5s模型训练的核心技术,并成功应用于实际检测任务中。

weixin_29041767的博客 335

IE6混杂模式盒模型

1. w3c标准中的盒模型:border + padding + content 其中在设置的width 和 height 是content内容区的宽和高; box-sizing:content-box;盒子的宽高大小是到内容区 2. IE6混杂模式的盒模型:width和height是指:border+padding+content box-sizing:border-box;盒子的宽高大...

zyz00000000的博客 739

【论文详解】AlphaGenome——Sequence-to-Multimodal-Genome-Track

**AlphaGenome** 是由 **Google DeepMind** 于 2025 年 6 月发布的突破性 AI 模型,专门用于预测非编码区遗传变异的功能效应。该模型采用受 **U-Net** 启发的卷积架构结合 **Transformer** 模块,创新性地解决了传统模型在输入序列长度与预测分辨率之间的核心矛盾——能够在 **1M 碱基对的超长上下文** 下实现 **单核苷酸分辨率** 的精准预测。

zwhszdx的博客 963

重学盒子模型(w3c的标准盒模型与ie6以下的盒子模型 )

盒模型有很多种,比如inline,inline-block,block,table等等。 而盒模型由display,内距,外距,宽高,边框,position,float决定 在css3中引入了盒模型属性box-sizing,共有三个属性值 content-box:翻译过来就是内容盒,我理解为在这个属性下我设置的宽高都是只指内容(即元素)的大小,该盒子真正的大小还要加上内距,边框。(加起来是内盒), 内容盒,也是w3c的标准盒子 所以当宽高不变,给该盒子设置内距(padding)外距(margin)会撑大盒子

lyx9904的博客 293

手把手教你用T630芯片开发USB3.0数据采集卡(含FPGA对接避坑指南)

本文详细介绍了如何使用国产T630芯片开发USB3.0数据采集卡,包括FPGA对接的避坑指南。T630作为国产替代方案,相比传统CYUSB3014芯片,具有更高的传输带宽(实测410MB/s)和更完善的开发支持。文章从硬件设计、固件开发到上位机调试,提供了全流程的技术细节和优化技巧,助力开发者快速实现工业级数据采集系统。

weixin_42531163的博客 622

ubuntu20.04 终端安装claude

【代码】ubuntu20.04 终端安装claude。

hongliyu_lvliyu的博客 2601

css 标准盒子模型和ie盒子模型的区别和各自的特点

一、css 标准盒子模型css盒子模型 又称为框模型(Box Model),包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素。如下图:。图中的内层是content依次是padding border margin。通常我们设置背景时就是内容、内边距、边框这三部分。而外边距是透明的,不会遮挡其他元素。元素框的总宽度=width+paddi...

qq_37016928的博客 1万+

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Ai缝合怪、助力小伙伴高效发论文 7669

【转】IE6 很邪恶,但我爱它的盒子模型

盒子模型(Box Model)是 CSS 的核心,现代 Web 布局设计简单说就是一堆盒子的排列与嵌套,掌握了盒子模型与它们的摆放控制,会发现再复杂的页面也不过如此,然而,任何美好的事物都有缺憾,盒子模型有两种不同的诠释,一种来自 IE6,一种来自 W3C 标准浏览器。 盒子模型 下图就是一个典型的盒子模型示意图 在内容区外面,依次围绕着 padding 区...

weixin_30858241的博客 90

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

从所谓“IE6盒子模型”说起

起因[TOP] 事情要从6月份锐商企业发的那篇《IE6 很邪恶,但我爱它的盒子模型》[1]说起,这篇文章已经被转了又转(Google的搜索结果相当多,百度倒是挺“干净”的),此文对于盒模型是这么描述的: “可以看出,IE6 盒子模型中,盒子的尺寸包含了 内容区,padding, border 和 margin 这四个部分,而 W3C 的盒子模型中,盒子的尺寸只包含内容区...

dgk62408的博客 255

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

html 盒子 w3c,IE盒子模型和标准W3C盒子模型

IE盒子模型和标准W3C盒子模型互联网 发布时间:2009-04-02 19:33:52 作者:佚名 我要评论网页制作Webjx文章简介:盒子模型是CSS中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是 IE 盒子模型和标准 W3C 盒子模型。盒子模型是CSS中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型是CSS中一个重要的概念,理解了盒子模型...

weixin_33308579的博客 292

IE6盒子模型没问题——详测双倍边距

2010-8-18 去腾讯面试,问IE6。 前两天看的《IE6 很邪恶,但我爱它的盒子模型》,我说盒子模型如何如何,面试官告诉我IE5的盒子模型有问题,不是IE6。 回来查查书,《Web标准实战》上说了,是IE5/Win的盒子模型有问题。看来CSS还是不够精通。 特实验如下: 实验1:验证width、padding、border 渲染模式:标准模式 结论:标准模式时,IE6浏览器采用...

weixin_30488313的博客 66

关于IE6盒模型的想法

以前一直埋怨IE6的盒模型算法不科学,不如w3c,现在才发现自己错啦,IE6的宽度一旦拟定,任何方式都改变他的宽度,除非在开始的时候定义w3c模式 例如 开始在w3c模式下,其实对待w3c来说,他们已认识到自己的错误啦,开始在css3中加入box-sizing;有两个选项, 让其自由选择哪种模式 一个是 content-box  w3c模式 一个是IE模式 border-box,现在才知道I

专注前端开发 647
上一篇: W3C 验证的是是非非
下一篇: 关于用户体验,我们常犯的9个错误
comsharp
博客等级 码龄20年 1475粉丝 41原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值