Box model

  1. 盒子模型概念:

盒子模型(Box Model)是CSS控制页面时一个很重要的概念。

image.png

content edge or inner edge
The content edge surrounds the rectangle given by the width and height of the box, which often depend on the element's rendered content. The four content edges define the box's content box
.
padding edge
The padding edge surrounds the box padding. If the padding has 0 width, the padding edge is the same as the content edge. The four padding edges define the box's padding box
.
border edge
The border edge surrounds the box's border. If the border has 0 width, the border edge is the same as the padding edge. The four border edges define the box's border box
.
margin edge or outer edge
The margin edge surrounds the box margin. If the margin has 0 width, the margin edge is the same as the border edge. The four margin edges define the box's margin box
.

  1. 盒子模型属性:
  • 边框(border):用于分隔不同元素、会占据空间、有4条边框、可无边框(设置为0)。
    border : border-width || border-style || border-color
  • 填充(padding):用于控制内容与边框之间的距离;会占据空间;
    可设置盒子模型上、右、下、左4个方向的内边距值;padding属性的值可以为0,即无内边距。
  • 边界(margin):用于控制元素与元素之间的距离;会占据空间;
    可设置盒子模型上、右、下、左4个方向的外边距值;margin属性的值可以为0,即无外边距。
  • 内容(content) :
    内容本身的宽=width
    内容本身的高=height
  • 盒子模型总尺寸
    盒子模型总尺寸=border-width+padding+margin+内容尺寸(宽度/高度)
  1. 盒子之间关系:
  • DOM是 Document Object Model的缩写,即“文档对象模型”。一个网页的所有元素组织在一起,就构成了一个棵“DOM”树。
    任意一个HTML文档都对应一棵DOM树,body是所有对象的根节点。而该DOM树的节点如何在浏览器中表现,则由CSS确定。即HTML控制网页的结构,CSS控制网页的表现。

  • 标准文档流
    “标准文档流”简称“标准流”。指在不适用其他的与排版和定位相关的特殊CSS规则是,各种元素的排列规则。
    (1). 块级元素(block level)
    总是以一个块的形式表现出来,并且跟同级的兄弟块依次竖直排列,左右撑满。
    (2). 行内元素(inline)
    标记本身不占有独立的区域,仅仅实在其他元素的基础上指出了一定的范围。
    行内元素在DOM树种同样是一个节点。从DOM的角度来看,块级元素和行内元素是没有区别的,都是树上的一个节点;而从CSS的角度来看,二者有很大的区别,块级元素拥有自己的区域,行内元素则没有。
    标准流就是CSS规定的默认的块级元素和行内元素的排列方式

  • 盒子在标准流中的定位原则
    (1) 行内元素之间的水平margin
    当两个行内元素紧邻时,他们之间的距离为 第一个元素的 margin-right 加上第2个元素的margin-left。
    (2)块级元素之间的竖直margin
    两个竖直块级元素之间的距离不是margin-bottom与margin-top的总和,而是两者中的较大者。这个现象称为 margin 的“塌陷”现象。
    (3)嵌套盒子之间的margin
    如果父div的高度值小于子块div的高度加上margin的值,此时IE浏览器会自动扩大,保持子元素的margin-bottom的空间以及父元素自身的padding-bottom。而firefox会保证父元素的高度完全吻合,子元素会超出父元素的范围。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,865评论 1 92
  • 盒模型,可以简单解释为:盒模型用来描述元素�所占据的空间。 有两种盒模型:W3C盒模型(标准盒模型)和IE盒模型这...
    就叫初九吧阅读 3,802评论 1 1
  • 1.盒模型包括哪些属性 以上图为例,去阐述盒模型的各个属性: content属性:规定内容区域,在标准盒模型中,宽...
    犯迷糊的小羊阅读 528评论 0 0
  • 7月27日,难得的晴,深圳 01. 今天我回来的时候,在等地铁,前面有个女生,长发,发梢毛躁。 跟你的发质一样糟糕...
    我叫阿嘉阅读 209评论 0 2
  • 吃,是一种幸福。 做,亦是一种幸福。 美食,一份暖心的享受和满足。 有时,乡愁是一种味道的思念, 寒冷冬夜的一碗热...
    马老大_阅读 558评论 2 2