CSS及简单的网页布局

CSS的三大特性:层叠、继承、优先级

CSS层叠性:指多重CSS样式的叠加,是浏览器处理冲突的一个能力,如果一个属性通过两个相同的选择器设置到同一个元素上,这时一个属性就会将另一个属性层叠掉。

CSS继承性:指书写CSS样式时子标签会继承父标签的某些样式,想要设置可继承的属性只需要将它应用与父元素即可。

CSS优先级:出现两个或多个规则应用在同一元素上就会出现优先级问题。

盒子模型:盒子模型、浮动、定位

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

每个盒子除了有它自己的大小和位置外,还影响着其他盒子的大小和位置。

盒子边框(border)

语法:

border: border-width  ||   border-style  ||   border-colo

设置边框样式(border-style)常用属性值如下:

none:没有边框(默认值)

solid:边框为单实线

dashed:边框为虚线

dotted:边框为点线

double:边框为双实线

表格的细线边框

table{border-collapse:collapse}

border-collapse:collapse:表示边框合并在一起

圆角边框

语法格式:  border-radius : 左上角  右上角  右下角  左下角;

 

内边距(padding):指边框与内容之间的距离

padding-top: 上内边距

padding-right: 右内边距

padding-bottom:下内边距

padding-left:  左内边距

外边距(margin:设置外边距会在元素之间创建“空白”这段空白通常不能放置其他内容

margin-top: 上外边距

margin-right: 右外边距

margin-bottom:下外边距

margin-left:  左外边距

取值顺序跟内边距相同

 

外边距实现盒子居中

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

1.必须是块级元素

2.盒子必须定义了宽度

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

清除元素的默认内外边距

*{

 margin:0

padding:0

}

注意:行内元素只有左右内外边距,没有上下内外边距

 

外边距合并

相邻块元素垂直外边距的合并(外边距塌陷)

CSS及简单的网页布局

嵌套块元素垂直外边距合并

CSS及简单的网页布局

解决方案:

1.可以为父元素定义1px的山边框或上内边距

2.可以为父元素添加 overflow:hidden

 

content宽度和高度

使用width和height可以对盒子的大小进行控制,width华人height的属性值可以为不同单位的数值或相对父元素的百分比。

注意:

1.width和height属性仅适用于块级元素,对行内元素无效(img和input除外)

2.计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。

3.如果一个盒子没有给定宽高或者继承父元素的宽高,则padding不会影响本盒子的大小。

 

盒子模型布局的稳定性

建议按照优先使用 宽(width)其次使用内边距(padding)再次(外边距)

原因:

1.margin会有外边距合并,还有ie6下margin加倍的bug,所以最后使用。

2.padding会影响盒子大小,需要进行加减计算,稍微麻烦,其次使用。

3.width没有问题,所以最先使用。

 

CSS3盒模型

CSS3中通过box-sizing来置顶盒模型即可指定为 content-box border-box

可分为两种情况:

1. box-sizing:content-box 盒子大小为 width+padding+border content-box:此值为其默认值

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

 

浮动

普通流(normal flow)

普通流就是一个网页内标签元素正常从上到下,从左到右排列顺序的意思

浮动(float)

浮动最早是用来控制图片的,以便于达到其他元素(特别是文字)实现环绕图片的额效果

浮动详细内幕特性

浮动首先创建包含酷爱的概念,就是说浮动的元素总是找离他最近的父级元素对齐,但是不会超出内边距的范围。

 

未完--------