CSS设计指南之理解盒子模型
一.理解盒模型
每一个元素都会在页面上生成一个盒子。因此,HTML页面实际上是由一堆盒子组成的。默认情况下,每个盒子的边框不可见,背景也是透明的,所以我们不能直接看到页面中盒子的结构。使用WebDeveloper工具条中的"OutLine"->"OutLine Level Element"菜单项,可以方便地显示盒子的边框和背景,从而让我们能从另外一个角度来审视页面的构成。
1.1 元素盒子的属性
1.边框(border):可以设置边框的宽窄、样式和颜色。
2.内边距(padding):可以设置盒子内容区与边框的间距,想像一下内边距是从边框向内推元素的内容。
3.外边距(margin):可以设置盒子与相邻元素的间距,想像一下外边距是边框向外推其他元素。

1.2 盒子边框
边框有3个相关的属性:宽度(border-width)、样式(border-style)、颜色(border-color)

1.3 盒子内边距
内边距是盒子内容区与盒子边框之间的距离,如果不设定padding的值,那么元素的文本就会紧挨着元素的边距。如下图所示,在显式设定了width的前提下,padding值的设定会加大盒子的宽度。

1.4 盒子外边距
1.如图4所示,默认情况下,元素之间也会有外边距,
推荐把下面这条规则作为样式表的第一条规则:* {margion:0 ;padding=0;},这条规则把所有元素默认的外边距和内边距都设定为零。
2.垂直叠加外边距

如上图所示,Div2设定了上外边距,Div3没有设定外边距,但是Div1与Div2的间距和Div2与Div3的间距是一样的,由此说明Div2此时设定的margin-top并没有起作用。
也就是说,较宽的外边距决定两个元素最终离多远,如果把Div2的margin-top设定为15,效果如下图,可以看到Div1与Div2的间距变宽了。
注意:叠加的只是垂直外边距,水平外边距不叠加。对于水平相邻的元素,它们的水平间距是相邻外边距之和。
二.盒子有多大
2.1 块级元素(block element)
1.没有宽度
所谓没有宽度,就是指没有显式地设置元素的width属性,如果不设置块级元素的width属性,那么这个属性的默认值是auto,结果会让元素的宽度扩展到与父元素同
宽。没有显式设置width属性的元素始终会扩展到填满其父元素的宽度为止,添加外边距会导致元素盒子变小。
2.设定宽度
为设定了宽度的盒子添加边框、内边距和外边距,会导致盒子扩展得更宽。扩展量等于水平边框和内边距之和。
2.2 行内元素
1.没有宽度
inline元素会扩展到足以包裹其内容的宽度,添加内边距和水平边框会导致liline元素变宽,添加量等于水平边框和内边距的和。
2.有宽度的块级元素
为设定了宽度的盒子添加边框、内边距和外边距,会导致盒子扩展得更宽。扩展量等于水平边框和内边距之和。

3.2.3
CSS3新增box-sizing属性,通过它可以将有宽度的盒子也设定成具有默认的auto状态下的行为。
CSS设计指南之理解盒子模型的更多相关文章
- CSS 设计彻底研究(三)深入理解盒子模型
第三章 深入理解盒子模型 盒子模型是CSS控制页面的基础.需要清楚“盒子”的含义是什么,以及盒子的组成.此外,应该理解DOM的基本概念,以及DOM树是如何与一个HTML文档对应的,在此基础上充分理解“ ...
- 《CSS 设计指南》学习笔记 一
本篇文章是对这几天看完 Charles Wyke-Smit 的 <CSS 设计指南> 后的一些学习笔记与心得,笔者好像是大一的时候开始接触网页设计,由于并不是计算机专业的,所以所有都是自己 ...
- CSS设计指南之定位
原文:CSS设计指南之定位 CSS布局的核心是position属性,对元素盒子应用这个属性,可以相对于它在常规文档流中的位置重新定位.position属性有4个值:static.relative.ab ...
- CSS学习篇核心之——盒子模型
概述 关于CSS的一些基础知识我们在前面文章中已经有所了解,这篇文章我们主要来学习下CSS中的核心知识盒子模型的知识. 盒子模型 元素框的最内部分是实际的内容(element),直接包围内容的是内边距 ...
- CSS设计指南之浮动与清除
原文:CSS设计指南之浮动与清除 浮动意思就是把元素从常规文档流中拿出来,浮动元素脱离了常规文档流之后,原来紧跟在其后的元素就会在空间允许的情况下,向上提升到与浮动元素平起平坐. 一.浮动 CSS设计 ...
- CSS(六):盒子模型
一.什么是盒子模型 盒子模型是css中一个重要的概念,理解了盒子模型才能更好的排版. 从上图可以看到标准的盒子模型范围包括margin(外边距).border(边框).padding(内边距).con ...
- CSS基础深入之细说盒子模型
Html任何一个元素(element)都可以当成一个盒子(box)来看待,可以结合现实中的盒子来理解下文,下文其中一些单词应该是通俗易懂的需要记录的单词. 基本情况 每一个盒子都有一个内容区域(con ...
- CSS 样式、布局、盒子模型
Css内容: 常用样式: 字体 颜色 背景 布局: 浮动 定位 标签特性 标签盒子模型: 边距 边框 动画: 旋转 渐变 注意:Css引路径从css文件里找 Html和js ...
- CSS 设计指南(第3版) 初读笔记
第1章 HTML标记与文档结构 关于<title>标签:搜索引擎会给<title>标签中的文字内容赋予很高的权重.而且这些文字也会作为网页标题出现在搜索结果列表中. 无论你想了 ...
随机推荐
- 从零开始,使用python快速开发web站点(2)
书接上文.http://blog.csdn.net/i7788/article/details/10306595 首先是数据库的搭建,这里的django的数据模型搭建十分easy. no sql.ju ...
- 架设FLASH视频流server心得
什么样的情况下才使用FMS?有下面几种情形的时候,你可能须要用到FMS 1.须要通过Flash Player 播放视频,而视频是以流的方式,而不是http渐进式下载的方式进行播放的时候.渐进式下载就是 ...
- Session为空的一种原因
在维护一份比较老的代码,想改为ajax调用,然后就添加了一个一般处理程序文件,也就是以.ashx结尾的文件,一切都正常,但发现session一直为空,很奇怪 基本的代码如下: public class ...
- 【IOS实例小计】今日开贴,记录我的ios学习生涯,留下点滴,留下快乐,成荫后人。
今天开贴来记录自己的ios学习过程,本人目前小白一个,由于对ios感兴趣,所以开始学习,原职java程序,呵呵,勿喷. 本次的[ios实例小计]主要参考一文http://blog.sina.com.c ...
- Android开源项目pulltorefresh分析与简单使用
在Android开发中有时我们须要訪问网络实时刷新数据.比方QQ好友在线状态最新信息,QQ空间须要显示很多其它的好友动态信息,EOE论坛client显示很多其它的文章帖子信息等.android-pul ...
- 【Energy Big Data】能源互联网和电力大数据
背景 今年的政府工作报告突出了互联网在经济结构转型中的重要地位,报告明白指出:要制定"互联网+"行动计划,推动移动互联网.云计算.大数据.物联网等与现代制造业结合,促进电子商务.工 ...
- hdu3886(数位dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3886 题意:给一定区间[A,B],一串由/,\,-组成的符号串.求满足符号串的数字个数. •/表示数字 ...
- 恩布企业 IM 安卓端 1.3,服务端 1.12 公布
恩布企业IM的 Android 安卓开源手机client EntboostIM 公布 1.3 版本号.同一时候恩布IM服务端更新至 1.12 版本号; 安卓端主要更新内容: 添加收发手机文件功能: 登 ...
- SWT中各种参数大全
1按钮组件(Button) (1)Button组件常用样式 SWT.PUSH按钮 SWT.CHECK多选按钮 SWT.RADIO单选按钮 SWT.ARROW箭头按钮 SWT.NONE默认按钮 SWT. ...
- ZooKeeper集群安装
ZooKeeper是Apache提供的.分布式服务协调系统,应用比較广泛. 由于项目中使用Kafka MQ,而Kafka全然使用ZooKeeper实现Kafka各组件的服务协调,包含Broker.Co ...