CSS10 - 盒子模型 & 常用无序列表样式
盒子模型
所有的文档元素(标签)都会生成一个矩形框,我们称为元素框(element box),它描述了一个文档元素在网页布局中所占的位置大小。因此,每个盒子除了有自己大小和位置外,还影响着其他盒子的大小和位置。
盒子边框(border)
语法:
border : width style |color
边框属性—设置边框样式(border-style)
边框样式用于定义页面中边框的风格,常用属性值如下:
none:没有边框即忽略所有边框的宽度(默认值)
solid:边框为单实线(最为常用的)
dashed:边框为虚线
dotted:边框为点线
double:边框为双实线
边框设置:
上边框:
border-top:宽度 样式 颜色; 如:
border-top: 1px solid black;
右边框:
border-right:宽度 样式 颜色; 如:
border-right: 1px solid black;
底部边框:
border-bottom:宽度 样式 颜色; 如:
border-bottom: 1px solid black;
左边框:
border-left: 宽度 样式 颜色; 如:
border-left: 1px solid black;
内边距(padding)
padding 属性用于设置内边距。 是指 边框与内容之间的距离。
padding-top:上内边距
padding-right:右内边距
padding-bottom:下内边距
padding-left:左内边距
padding:上内边距 右内边距 下内边距 左内边距
外边距(margin)
margin 属性用于设置外边距。 设置外边距会在元素之间创建“空白”, 这段空白通常不能放置其他内容。
margin-top:上外边距
margin-right:右外边距
margin-bottom:下外边距
margin-left:上外边距
margin:上外边距 右外边距 下外边距 左外边距
注意: padding 与 margin 后面跟的数值个数不一样时其表示的意思是不一样的。
1 个值 padding:上下左右边距 ;比如 padding: 3px; 表示上下左右都是 3 像素;
2 个值 padding: 上下边距 左右边距;比如 padding: 3px 5px; 表示 上下 3 像素 左右 5 像素;
3 个值 padding:上边距 左右边距 下边距;比如 padding: 3px 5px 10px; 表示 上是 3 像素 左右是 5 像素 下是 10 像素;
4 个值 padding:上内边距 右内边距 下内边距 左内边距 比如: padding: 3px 5px 10px 15px; 表示 上是 3px 右是 5px 下是 10px 左是 15px (顺时针分配);
外边距实现盒子居中
让一个盒子实现水平居中,需要满足一下两个条件:
必须是块级元素。
盒子必须指定了宽度(width)
然后给左右的外边距都设置为 auto,就可使块级元素水平居中。
实际工作中常用这种方式进行网页布局,示例代码如下:
清除元素的默认内外边距
为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距:
*{
padding:0; 清除内边距
margin:0; 清除外边距
}
注意: 行内元素是只有左右内外边距,没有上下内外边距的。
外边距合并
无嵌套关系的垂直外边距
使用 margin 定义块元素的垂直外边距时,可能会出现外边距的合并。即当上下相邻的两个块元素相遇时,如果上面的元素有下外边距 margin-bottom,下面的元素有上外边距 margin-top,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。
这种情况并不多见,如果遇到了,布局时尽量避免即可。
有嵌套关系的垂直外边距
对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为 0,也会发生合并。
解决方案:
可以为父元素定义 1 像素的上边框或上内边距。
可以为父元素添加 overflow:hidden。
宽度和高度(width+height)
盒子的总宽度= width+左右内边距之和+左右边框宽度之和+左右外边距之和
盒子的总高度= height+上下内边距之和+上下边框宽度之和+上下外边距之和
注意:
1、宽度属性 width 和高度属性 height 仅适用于块级元素,对行内元素无效( img 标签和 input 除外)。
2、计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。
常用的无序列表样式
去除无序列表前面的小黑点:
用图片代替无序列表前面的小黑点(图片不宜过大):
把无序列表的右内边距移入内容区:
版权声明: 本文为 InfoQ 作者【桃夭十一里】的原创文章。
原文链接:【http://xie.infoq.cn/article/9eef537808821618866e72b9a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论