CSS-盒子模型

8 篇文章 0 订阅

温故而知新。本篇为《CSS权威指南》的学习笔记

盒子模型是什么

CSS盒子模型是最重要的一个概念,话不多说,先上图。
盒子模型-摘自《CSS权威指南》
如图所示,盒子四周(上下左右)分别都有对应的

  • 外边距 margin
  • 边框 border
  • 内边距 padding
  • 中间内容部分有width和height

这就是盒子模型所有的组成部分,可以想象一个包装精美的月饼来辅助理解。

一般,一个元素的width被定义为从左内边界右内边界的距离,height则是从上内边界下内边界的距离。【对应图片看-图上有指示】width影响的是内容区的宽度,而不是整个可见的元素框。

示例
整个元素可见如上图,width影响的是浅蓝色区域的宽度
200*200表示width*height

水平格式化

有七个属性:
margin-left border-left padding-left width padding-right border-right margin-right
相加等于元素包含块的width,高亮的属性可以取值auto,其他默认为0

从某种程度说,可以用auto弥补实际值与所需总和的差距。
eg:七个属性之和须等于400px

p {margin-left: auto; margin-right: 100px; width: 100px} 
// auto = 400-100-100=200,若设置的三个值之和≠400,则会强制把margin-right重置为auto(从左向右读的语言如英语)

垂直格式化

同样有七个属性:
margin-top border-top padding-top height padding-bottom border-bottom margin-bottom
相加等于元素包含块的height,高亮的属性可设置为auto,其他默认为0

可是。。如果将一个元素的上下外边距都设置为auto,实际上它们都会重置为0,使元素框没有外边距。

auto

以上,我们知道可以取auto的属性有:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left
  • height
  • width

在水平方向上,会自动“补齐”。但是在垂直方向上,大有文章。

若设置height: auto,有无padding\border其height不同。

什么意思呢?看例子:

第一个例子

<div style="height: auto; background: silver;">
    <p style="margin-top: 2em; margin-bottom: 2em;">a paragraph!</p>
</div>

eg. 1
对应的盒子模型
高度仅仅是文本内容的高度!

第二个例子

如果块级元素里面有内边距边框等,高度和上个例子有区别。

<div style="height: auto; border-top: 1px solid; border-bottom: 1px solid; background: silver;">
       <p style="margin-top: 2em; margin-bottom: 2em;">Another Paragraph!</p>
</div>

eg. 2
对应的盒子模型
高度=文本内容21px+(margin-top)32px +(margin-top) 32px = 85px

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值