W3C组织建议把全部网页上的对像都放在一个盒(box)中,设计师能够经过建立定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层。盒模型主要定义四个区域:内容(content)、内边距(padding)、边框(border)和外边距(margin)。对于初学者,常常会搞不清楚margin,background-color,background-image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的3D示意图,但愿便于你的理解和记忆。css
margin:层的边框之外留的空白
background-color:背景颜色
background-image:背景图片
padding:层的边框到层的内容之间的空白
border:边框
content:内容
接下来将讲述HTML和CSS的关键——盒子模型(Box model)。理解Box model的关键即是margin和padding属性,而正确理解这两个属性也是学习用css布局的关键。html
注: 为何不翻译margin和padding?
缘由一: 在汉语中并无与之相对应的词语;
缘由二: 即便有这样的词语, 因为在编写css代码时, 必须使用margin和padding, 若是咱们总用汉语词语代替其来解释的话, 到了实际应用时容易混淆margin和padding的概念。浏览器
若是有一点Html基础的话,就应该了解一些基本元素(Element),如p、h1~h六、br、div、li、ul、img等。若是将这些元素细分,又能够分别为顶级(top-level)元素、块级(block-level)元素和内联(inline)元素。less
块级元素是构成一个html的主要和关键元素,而任意一个块级元素都可以用Box model来解释说明。
Box Model: 任意一个块级元素均由content(内容)、padding、background(包括背景颜色和图片)、border(边框)、margin五个部分组成。
立体图以下: 布局
平面图以下:学习
根据以上两图,相信你们对于Box model会有个直观的认识。字体
如下说明margin和padding属性:
一、margin: 包括margin-top、margin-right、margin-bottom、margin-left,控制块级元素之间的距离,它们是透明不可见的。根据上、 右、下、左的顺时针规则,能够写为 margin: 40px 40px 40px 40px;
为便于记忆,请参考下图:搜索引擎
当上下、左右margin值分别一致, 可简写为:spa
margin: 40px 40px;
前一个40px表明上下margin值,后一个40px表明左右margin值。
当上下左右margin值均一致,可简写为:翻译
margin: 40px;
二、Padding: 包括padding-top、padding-right、padding-bottom、padding-left,控制块级元素内部,content与border之间的距离,其代码,简写请参考margin属性的写法。
至此,咱们已经基本了解margin和padding属性的基本用法。可是,在实际应用中,却老是发生一些让你琢磨不透的事,而它们又或多或少的与margin有关。
注: 当你想让两个元素的content在垂直方向(vertically)分隔时,既能够选择padding-top/bottom,也能够选择margin-top/bottom,再此Ruthless建议你尽可能使用padding-top/bottom来达到你的目的,这是由于css中存在Collapsing margins(折叠的margins)的现象。
Collapsing margins: margins折叠现象只存在于临近或有从属关系的元素,垂直方向的margin中。
详细说明以下:
若是只提供一个,将用于所有的四条边;
若是提供两个,第一个用于上-下,第二个用于左-右;
若是提供三个,第一个用于上,第二个用于左-右,第三个用于下;
若是提供所有四个参数值,将按上-右-下-左的顺序做用于四边。
body { padding: 36px;} //对象四边的补丁边距均为36px
body { padding: 36px 24px; } //上下两边的补丁边距为36px,左右两边的补丁边距为24px
body { padding: 36px 24px 18px; } //上、下两边的补丁边距分别为36px、18px,左右两边的补丁边距为24px
body { padding: 36px 24px 18px 12px; } //上、右、下、左补丁边距分别为36px、24px、18px、12px
下面说一下块级元素和内联元素
块级元素 | 内联元素 |
address - 地址 block - 块引用 center - 居中对齐块(不推荐) dir - 目录列表(HTML5踢出) div - 经常使用的不能再经常使用了 dl - 列表 fieldset - 一个包含着form组的框 form - 表了个单 h1 ~ h6 各类尺寸标题 hr - 水平分隔线(不推荐) menu - 菜单列表 noframes - 浏览器不支持frames显示的块 noscript - 浏览器不支持script显示的块 ol - 有序列表 ul - 无序列表 p - 段落 pre - 格式化文本 table - 表了个格 |
a - 锚点 abbr - 缩写(语义、利于搜索引擎) acronym - 首字(HTML5踢出) b - 粗体(不推荐) big - 大字体(不推荐) cite - 引用(语义、利于搜索引擎) code - 引用源码(语义) em - 强调(若是仅为了斜体请用<i>) font - 字体设定(不推荐) i - 斜体 img - 图片 input - 输入框 label - 表单标签(事件关联对应表单项) q - 短引用(标准添加引号,IE不添加引号) s - 中划线(不推荐) samp - 用于提取内容 select - 项目选择 small - 小字体(不推荐) strong - 粗体(不推荐) sub - 下标 sup - 上标 textarea - 多行文本输入框 u - 下划线 var - 定义变量 |