什么是CSS盒模型 IE盒模型和W3C盒模型

news/2024/11/8 22:56:57/

看到一篇不错的文章 就转载过来了 说得全面  https://www.cnblogs.com/ylliap/p/6119740.html点击打开链接
阅读目录

    1. 什么是CSS盒模型

    2. IE盒模型和W3C盒模型

    3. CSS3属性box-sizing

    4. 关于盒模型的使用


    在最初接触CSS的时候,对于CSS盒模型的不了解,撞了很多次的南墙呀。盒模型是网页布局的基础,它制定了元素如何在页面中显示,如果足够地掌握,那使用CSS布局那将会容易得多。

1. 什么是CSS盒模型

    盒模型,顾名思义,就是一个盒子。生活中的盒子,有长宽高,盒子本身也有厚度,可以用来装东西。页面上的盒模型我们可以理解为,从盒子顶部俯视所得的一个平面图,盒子里装的东西,相当于盒模型的内容(content);东西与盒子之间的空隙,理解为盒模型的内边距(padding);盒子本身的厚度,就是盒模型的边框(border);盒子外与其他盒子之间的间隔,就是盒子的外边距(margin)。

    元素的外边距(margin)、边框(border)、内边距(padding)、内容(content)就构成了CSS盒模型。

T%}$LA06KCITM86UDGXYMMM

图1. 盒模型示意图

2. IE盒模型和W3C盒模型

    CSS盒模型分为IE盒模型(图2)和W3C盒模型(图3)。其实,IE盒模型是怪异模式(Quirks Mode)下的盒模型,而W3C盒模型是标准模式(Standards Mode)下的盒模型。

    IE6及其更高的版本,还有现在所有标准的浏览器都遵循的是W3C盒模型,IE6以下版本的浏览器遵循的是IE盒模型。

KU5Z0AQ77VG8P8O_thumb4

图2. IE盒模型

 

AWM_P51_7YPRBMZW3_thumb3

图3. W3C盒模型 

    从上图直观的可以看出,IE盒模型的宽度或者高度计算方式为:width/height = content + padding + border,W3C盒模型的宽度或者高度计算方式为:width/height = content

    举一个简单的例子:一个div的宽度和高度为100px,内边距为10px,边框为5px,外边距为30px。图4为不同模型下显示的结果,W3C盒模型下显示的div所占的总宽度和总高度(包括外边距、边框、内边距、内容)为100 + 10 + 5 + 30 = 145px,IE盒模型下显示的div所占的总宽度和总高度(包括外边距、边框、内边距、内容)为100 + 30 = 130px。很明显的区别,如果元素的宽度(width)一定的情况下,W3C盒模型的宽度(width)不包括内边距和边框,IE盒模包括。

    代码如下:

复制代码
<style>.content {background: #eee; height: auto;border: 1px solid blue;}.div {width: 100px;height: 100px;margin: 30px;padding: 10px;border: 5px solid blue;}.div-01 {background: orange;}.div-02 {background: yellow;box-sizing: border-box;}
</style>
<div class="content"><div class="div div-01">div01</div><div class="div div-02">div02</div>
</div>
复制代码

    页面效果如下:

image

图4. 区别

3. CSS3属性box-sizing

    如果计算一个盒子的长宽高,我们一般都是盒子本身的厚度加上盒子里的空间大小,所在在IE盒模型和W3C盒模型,我们会觉得IE盒模型更符合逻辑。

    不同的人有不同的习惯,所以CSS3新增了一个属性box-sizing: content-box | border-box | inherit,默认值为content-box。如果值为content-box,那元素遵循的是W3C盒模型;如果值为border-box,那元素遵循的是IE盒模型;如果值为inherit,该属性的值应该从父元素继承。

4. 关于盒模型的使用

    有没有人和我一样,觉得属性box-sizing真是个好东西,只需设置所有元素的该属性为content-box或者border-box,满足自己的习惯。

image

    虽说现在的浏览器都兼容该属性(如上图),还是得以防万一,在属性前最好暂时加-webkit--moz-前缀。

* {-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;
}

    在上图,我们看到IE兼容属性box-sizing必须是8或者更高的版本,其他浏览器都可以自动升级,兼容性不担心,那如果是IE7、IE6或者更低的版本,怎么办?还有,如果我们不用该属性,那浏览器该选择哪种盒模型呢?

    其实,浏览器选择哪个盒模型,主要看浏览器处于标准模式(Standards Mode)还是怪异模式(Quirks Mode)。我们都记得<!DOCTYPE>声明吧,这是告诉浏览器选择哪个版本的HTML,<!DOCTYPE>后面一般有DTD的声明,如果有DTD的声明,浏览器就是处于标准模式;如果没有DTD声明或者HTML4一下的DTD声明,那浏览器按照自己的方式解析代码,处于怪异模式。

    处于标准模式的浏览器(IE浏览器版本必须是6或者6以上),会选择W3C盒模型解析代码;处于怪异模式的浏览器,则会按照自己的方式去解析代码,IE6以下则会是选择IE盒模型,其他现代的浏览器都是采用W3C盒模型。

    因为IE6以下版本的浏览器没有遵循Web标准,不论页面开头有没有DTD声明,它都是按照IE盒模型解析代码的。


http://www.ppmy.cn/news/637735.html

相关文章

W3C是什么?什么是W3C标准?

什么是W3C W3C是英文 World Wide Web Consortium 的缩写&#xff0c;中文意思是W3C理事会或万维网联盟。W3C组织是对网络标准制定的一个非赢利组织&#xff0c;像HTML、XHTML、CSS、XML的标准就是由W3C来定制。 W3C的主要规范 到目前为止&#xff0c;W3C已开发了超过50个规范(草…

W3af详细安装与基本使用

安装 安装过程复杂而艰辛&#xff01;&#xff01;&#xff01;&#xff01; cd ~ 去根目录下安装apt-get updatepip install --upgrade pipgit clone https://github.com/andresriancho/w3af.gitcd w3af 安装pybloomfiltermmap sudo apt install -y python-pybloomfiltermmap…

w3c标准

1.什么是w3c 万维网联盟&#xff08;World Wide Web&#xff09; 简单的来说&#xff0c;就是一个国际性的中立组织&#xff0c;专门负责统一web相关的各项标准。 w3c标准由结构、表现 和行为三部分组成。 2.标签嵌套规则 块元素可以包含内联元素或某些块元素&#xff0c;但内…

kali 2020 安装w3af

w3af 官网http://w3af.org/download 官网文档http://docs.w3af.org/en/latest/install.html 一、先决条件 开始安装之前&#xff0c;请确保已准备好以下软件&#xff1a; Git客户端&#xff1a; sudo apt-get install gitPython 2.7&#xff0c;在大多数系统中默认安装点子版…

w3school和w3cschool两个网站有什么关系和区别?(转)

w3school地址&#xff1a;http://www.w3school.com.cn/ w3cschool地址&#xff1a;http://www.w3cschool.cn/ 总结结论&#xff1a; w3更早。w3school是06年注册的&#xff0c;而w3cschool是09年注册的。w3c更权威。其中w3cschool是应w3c中国组织官方而出的&#xff0c;而w3s…

爬虫基础之w3lib

目前在做的项目中遇到一个需求&#xff1a;将爬取到的大量网页中的文本提取出来。由于网页太多&#xff0c;无法逐个分析使用xpath表达式进行提取。使用正则表达式可以实现&#xff0c;但太麻烦。这里介绍一款专业处理这方面问题的包w3lib w3lib简介 w3lib是一个Python包&…

w3c标准的深入理解

简介 万维网联盟&#xff08;外语缩写&#xff1a;W3C&#xff09;标准不是某一个标准&#xff0c;而是一系列标准的集合。网页主要由三部分组成&#xff1a;结构&#xff08;Structure&#xff09;、表现&#xff08;Presentation&#xff09;和行为&#xff08;Behavior&…

电商神器!教你如何利用数据分析打造销售奇迹!

能解决80%通用需求&#xff0c;提供销售、财务、广告、库存等电商数据分析主题的奥威BI电商数据分析方案一直都是比较神秘的存在。有说它风险低的&#xff0c;也有说它性价比高、效率高、可塑性高&#xff08;支持个性化开发&#xff09;&#xff0c;但说到底&#xff0c;这份B…