CSS两种盒模型

盒模型有两种,W3C 和IE 盒子模型

  1. W3C定义的盒模型包括margin、border、padding、content,元素的宽度width=content的宽度

  2. IE盒模型与W3C盒模型的唯一区别就是元素的宽度,元素的width=border + padding + content

  3. IE定义的盒模型较为合理,所以在css3中新增了box-sizing,包含两个属性content-box和border-box。

  4. content-box 元素的width = content

  5.  border-box 元素的width = border + padding + content

1. 对于行内元素 margin-top/margin-bottom对于上下元素无效,margin-left/margin-right有效! 对于相邻的块级元素margin-top和margin-bottom两者叠加按照一定的规则

(1) 都是整数 margin值取两者的最大值

        (2) 都是负数 margin值取最小值

        (3)两者正负相反,margin值取两者之和

标准盒模型和IE模型的区别

标准盒模型width指的是内容区域content的宽度;height指的是内容区域content的高度。

标准盒模型下盒子的大小  = content + border + padding + margin

怪异盒模型中的width指的是内容、边框、内边距总的宽度(content + border + padding);height指的是内容、边框、内边距总的高度

怪异盒模型下盒子的大小=width(content + border + padding) + margin

2. 根据盒模型解释边距重叠:

BFC(边距重叠解决方案):

  • bfc的基本概念:

BFC 全称为 块格式化上下文 (Block Formatting Context) 。

  • bfc的原理:

1.BFC,这个元素的垂直方向的边距会发生重叠。
2.bfc的区域不会与浮动元素的box重叠
3.计算bfc高度的时候浮动元素也会参与计算
4.bfc在页面上是一个独立的容器,外面的元素不会影响里面的元素

  • 怎么创建bfc:

    根元素

1.float属性不为none

2.position为absolute或fixed

3.display为inline-block, table-cell, table-caption, flex, inline-flex

4.overflow不为visible

  • bfc的使用场景有哪些?

BFC垂直方向边距重叠 (给子元素增加了父元素div)外边距将不会重叠:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>获取盒子宽高</title>
    <style>
        #box1{
        color: white;
        font-size:50px;
        text-align: center;
        line-height:185px;
        width:300px;height:185px;
        background: plum;
        margin:99px;

    }
        #box2{width:300px;
        height:185px;
        background:pink;
        color: white;
        font-size:50px;
        text-align: center;
        line-height:185px;
        margin:99px;
        }

    </style>
</head>
<body>
    <div id="box1">盒子一</div>
    <div style="overflow:hidden"><div id="box2">盒子二</div><div>
</body>
</html>

效果图:


BFC不与float重叠(给没有浮动的盒子创建BFC设置 overflow: auto;)

<section id="layout">
        <style media="screen">
          #layout{
            background: red;
          }
          #layout .left{
            float: left;
            width: 100px;
            height: 100px;
            background: pink;
          }
          #layout .right{
            height: 110px;
            background: #ccc;
            overflow: auto;
          }
        </style>
        <div class="left"></div>
        <div class="right"></div>
      </section>

创建前:


原文地址:https://www.cnblogs.com/niuyaomin/p/11618296.html

时间: 2024-10-10 06:46:02

CSS两种盒模型的相关文章

DIV+CSS两种盒子模型(W3C盒子与IE盒子)

在辨析两种盒子模型之前,先简单说明一下什么叫盒子模型. 原理: 先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模式. 特点: 每个盒子都有:边界.边框.填充.内容四个属性: 每个属性都包括四个部分:上.右.下.左:这四部分可同时设置,也可分别设置

css的两种盒模型

W3C标准盒模型 在标准盒模型中,width指content部分的宽度. IE的盒模型 在IE盒模型中,width表示content+padding+border这三个部分的宽度 box-sizing的使用 定义使用哪种盒模型的属性 box-sizing:content-box  是W3C 盒子模型 box-sizing:border-box 是IE盒子模型也叫怪异模型 box-sizing:padding-box   padding计算入width内,不包括border 原文地址:https:

CSS3 常用属性(三)-- 用户界面、文字、两种盒模型

用户界面--column 关于用户界面,我们先了解一下在块元素中写文字时,浏览器中的呈现情况,这个其实很明显,所有的文本内容会在块元素内从左到右一个个字排列,排满后,从上到下一排排渲染--然而,有些时候,页面需求的呈现方式是,类似于报纸似得,将一段文本内容,分成多列布局显示. 用户界面使用的示例如下: .font{ width:300px; height:300px; border:1px solid #000; margin:0px auto; column-count:3; /* 定义数量

CSS两种盒子模型

盒子模型有两种,分别为标准 W3C 盒子模型和 IE 盒子模型.他们对盒子模型的解释各不相同. 我们先来看熟悉的标准 W3C 盒子模型: 从上图可以看出,标准 W3C 盒子模型的范围包括 margin.border.paddding.content,并且 content 宽度计算不包括其他部分. 再来看 IE 盒子模型: 从上图可以看到 IE 盒子模型的范围也包括 margin.border.paddding.content,不同的是,content 宽度计算包含了 border 和 paddd

css的两种盒子模型

css的两种盒子模型:W3C标准盒子模型.IE盒子模型 两者的相同之处:都包含margin.border.padding.content 两者的不同之处:W3C标准盒子模型的content部分不包含其他部分:IE盒子模型的content部分包含border.padding部分. 举例说明:一个盒子模型margin为10px,border为2px,padding为5px,content为100px,高为50px. 1.W3C标准盒子模型 盒子需要占据的位置:宽10*2+2*2+5*2+100=13

CSS学习笔记——盒模型,块级元素和行内元素的区别和区别

今天本来打算根据自己的计划进行前端自动化的学习的,无奈早上接到一个任务需求需要新增一个页面.自从因为工作需要转前端之后,自己的主要注意力几 乎都放在JavaScript上面了,对CSS和HTML这方面其实基础真的很差,今天在写页面的时候就被浮动啊.内外边距啊这些耽误了不少时间. 反思一下,自己确实在这些基础方面的不足很多,所以今后的学习笔记主要是我在工作中遇到的一些问题和他们的解决方法.其中可能中会有JS.CSS.HTML各方面的,我会把自己每一天学到的内容都记录一下,辅助自己打好基础. 今天在

两个盒模型之间的空隙

html文档中的每个元素都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒模型.盒模型通过四个边界来描述:margin(外边距),border(边框),padding(内边距),content(内容区域),这个大家都知道,那什么是两个盒模型之间的空隙呢?该怎么清除它呢? 假设有一个class为content的父div,里面包含两个子div,这两个子div要同一行显示,我们想要两个子div紧紧连接在一起,所以把它们的margin和padding值全部设为0. 1 <sty

&nbsp; Css中的盒模型及盒模型宽度计算

CSS假定所有的HTML文档元素都生成了一个描述该元素在HTML文档布局中所占空间的矩形元素(element box),可以形象地将其看作是一个盒子.CSS围绕这些盒子产生了一种"盒子模型"概念. 盒模型,实际上就是把某些标签元素看成为一个箱子.箱子与其他箱子之间的距离,是箱子的最外围,它不是一条边线而是添加在边框外面的空间.这个外边距使元素盒子之间不必紧凑地连接在一起,是CSS布局的一个重要手段.用margin(外边距)属性来表示,margin-top,margin-right,ma

87.CSS Flex 弹性盒模型布局教程(共用的css在48篇文章gird)

CSS Flex 弹性盒模型布局教程 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. flex布局就是给任何一个容器添加 display:flex 注:设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效. 注:Safari 6.1+(前缀-webkit-) iOS 7.1+(前缀-webkit-)最新flex 兼容性查看请点此处 最新Flex兼容性 Flex 容器 flex contain