菜鸟的HTML5之路DAY 09-----盒子模型

1 盒子模型

所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。

1.1盒子边框(border)

可以设置边框的大小,边框线的样式属性
在这里插入图片描述
在这里插入图片描述

还可以设置边框角的弧度

border-radius
在这里插入图片描述
在这里插入图片描述

1.2 内边距(padding)

padding属性用于设置内边距。 是指 边框与内容之间的距离。

padding-top:上内边距

padding-right:右内边距

padding-bottom:下内边距

padding-left:左内边距

设置padding属性时会影响其本身的边框大小
在这里插入图片描述

在这里插入图片描述

1.3 外边距(margin)

margin属性用于设置外边距。 设置外边距会在元素之间创建“空白”, 这段空白通常不能放置其他内容。

margin-top:上外边距

margin-right:右外边距

margin-bottom:下外边距

margin-left:上外边距

margin:上外边距 右外边距 下外边距 左外边

取值顺序跟内边距相同。

1.3.1外边距实现盒子居中

可以让一个盒子实现水平居中,需要满足一下两个条件:

  1. 必须是块级元素。
  2. 盒子必须指定了宽度(width)

然后就给左右的外边距都设置为auto,就可使块级元素水平居中。

实际工作中常用这种方式进行网页布局,示例代码如下:

设置margin属性 margin:0px auto;
在这里插入图片描述

在这里插入图片描述

1.3.2 文字盒子居中图片和背景区别

  1. 文字水平居中是 text-align: center

  2. 盒子水平居中 左右margin 改为 auto

  3. 插入图片 我们用的最多 比如产品展示类

  4. 背景图片我们一般用于小图标背景 或者 超大背景图片

    text-align: center; /* 文字居中水平 /
    margin: 10px auto; /
    盒子水平居中 左右margin 改为 auto 就阔以了 */

1.3.3 清除元素的默认内外边距

* {
   padding:0;         /* 清除内边距 */
   margin:0;          /* 清除外边距 */
}

注意: 行内元素是只有左右外边距的,是没有上下外边距的。 内边距,在ie6等低版本浏览器也会有问题。我们尽量不要给行内元素指定上下的内外边距就好了。

1.3.4 相邻块元素垂直外边距的合并

当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。

在这里插入图片描述
这两个div为上下相邻,**上面的div设置了margin-bottom:100px,下面的div设置了margin-top:100px,但他们之间的间距并非100+100px,而是取其中最大者,**在编写的时候要特别注意。
在这里插入图片描述

1.4 盒子模型布局稳定性

开始学习盒子模型,同学们最大的困惑就是, 分不清内外边距的使用,什么情况下使用内边距,什么情况下使用外边距?

答案是: 其实他们大部分情况下是可以混用的。 就是说,你用内边距也可以,用外边距也可以。 你觉得哪个方便,就用哪个。

但是,总有一个最好用的吧,我们根据稳定性来分,建议如下:

按照 优先使用 宽度 (width) 其次 使用内边距(padding) 再次 外边距(margin)。

  width >  padding  >   margin   

原因:

  1. margin 会有外边距合并 还有 ie6下面margin 加倍的bug(讨厌)所以最后使用。
  2. padding 会影响盒子大小, 需要进行加减计算(麻烦) 其次使用。
  3. width 没有问题(嗨皮)我们经常使用宽度剩余法 高度剩余法来做。

1.5 CSS3盒模型

CSS3中可以通过box-sizing 来指定盒模型,即可指定为content-box、border-box,这样我们计算盒子大小的方式就发生了改变。

可以分成两种情况:

1、box-sizing: content-box 盒子大小为 width + padding + border content-box:此值为其默认值,其让元素维持W3C的标准Box Mode

2、box-sizing: border-box 盒子大小为 width 就是说 padding 和 border 是包含到width里面的

注:上面的标注的width指的是CSS属性里设置的width: length,content的值是会自动调整的。

说白了就是以什么为中心,border-box:这是以边框为中心,优先保证边框的大小不随内容而改变。

content-box(默认值):这是以内容为中心,盒子大小为 width + padding + border ,外形会随着padding,margin,内容的改变而改变。**

1.6 盒子阴影

> box-shadow:水平阴影 垂直阴影 模糊距离 阴影尺寸 阴影颜色  内/外阴影;
  1. 前两个属性是必须写的。其余的可以省略。
  2. 外阴影 (outset) 但是不能写 默认 想要内阴影 inset
    在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hzl529/article/details/101165714