HTML&CSS精选笔记_盒子模型

盒子模型

认识盒子模型


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


网页就是多个盒子嵌套排列的结果。


内边距出现在内容区域的周围,当给元素添加背景色或背景图像时,该元素的背景色或背景图像也将出现在内边距中。


外边距是该元素与相邻元素之间的距离。


如果给元素定义边框属性,边框将出现在内边距和外边距之间。


规定可元素框处理元素内容、内边框、边框和外边距的方式



盒子模型相关属性


设置内容 样式属性 常用属性值

上边框
border-top-style:样式;  
border-top-width:宽度;  
border-top-color:颜色;  
border-top:宽度 样式 颜色;  


下边框
border-bottom-style:样式;  
border- bottom-width:宽度;  
border- bottom-color:颜色;  

border-bottom:宽度 样式 颜色;

 

左边框  
border-left-style:样式;  
border-left-width:宽度;  
border-left-color:颜色;  

border-left:宽度 样式 颜色;


右边框
border-right-style:样式;  
border-right-width:宽度;   
border-right-color:颜色;  

border-right:宽度 样式 颜色;


样式综合设置 border-style:上边 [右边 下边 左边]; none无(默认)、solid单实线、dashed虚线、dotted点线、double双实线
宽度综合设置 border-width:上边 [右边 下边 左边]; 像素值
颜色综合设置 border-color:上边 [右边 下边 左边]; 颜色值、#十六进制、rgb(r,g,b)、rgb(r%,g%,b%)
边框综合设置 border:四边宽度 四边样式 四边颜色;  


边框属性


设置边框样式(border-style)
none:没有边框即忽略所有边框的宽度(默认值)
solid:边框为单实线
dashed:边框为虚线
dotted:边框为点线
double:边框为双实线
既可以对盒子的单边进行设置,也可以综合设置四条边的样式
border-top-style:上边框样式
border-right-style:右边框样式
border-bottom-style:下边框样式
border-left-style:左边框样式
border-style:上边框样式   右边框样式  下边框样式   左边框样式
border-style:上边框样式   左右边框样式   下边框样式
border-style:上下边框样式   左右边框样式
border-style:上下左右边框样式
例如

只有上边为虚线dashed,其他三边为单实线solid
p{ borer-style:dashed solid solid solid;}


p{ border-style:solid;}        /*综合设置四边样式*/
p{ border-top-style:dashed;}   /*上边样式覆盖*/


设置边框宽度(border-width
border-top-width:上边框宽度
border-right-width:右边框宽度
border-bottom-width:下边框宽度
border-left-width:左边框宽度
border- width:上边框宽度 [右边框宽度 下边框宽度 左边框宽度]


设置边框颜色(border-color
border-top-color:上边框颜色
border-right-color:右边框颜色
border-bottom-color:下边框颜色
border-left-color:左边框颜色
border-color:上边框颜色 [右边框颜色 下边框颜色 左边框颜色]
设置段落的边框样式为实线,上下边灰色,左右边红色
p{
      border-style:solid;                       /*综合设置边框样式*/
      border-color:#CCC #FF0000;    /*设置边框颜色:两个值为上下、左右*/
}
设置二级标题的边框样式为实线,且下边框为红色,其余边框采用默认文本的颜色
h2{
border-style:solid;                 /*综合设置边框样式*/
border-bottom-color:red;      /*单独设置下边框颜色*/
}
注意:设置边框颜色时同样必须设置边框样式,如果未设置样式或设置为none,则其他的边框属性无效。
综合设置边框
border-top:上边框宽度 样式  颜色
border-right:右边框宽度 样式  颜色
border-bottom:下边框宽度 样式  颜色
border-left:左边框宽度 样式  颜色
border:四边宽度 样式  颜色
像border、border-top等这样,能够一个属性定义元素的多种样式,在CSS中称之为复合属性。
常用的复合属性有font、border、margin、padding和background等。
复合属性可以简化代码,提高页面的运行速度,但是如果只有一项值,最好不要应用复合属性,以免样式不被兼容。


内边距属性


所谓内边距指的是元素内容与边框之间的距离,也常常称为内填充。
在CSS中padding属性用于设置内边距,同边框属性border一样,padding也是复合属性
padding-top:上内边距
padding-right:右内边距
padding-bottom:下内边距
padding-left:左内边距
padding:上内边距[右内边距 下内边距  左内边距]


外边距属性


所谓外边距指的是元素边框与相邻元素之间的距离,即盒子与盒子之间的距离。
在CSS中margin属性用于设置外边距,它是一个复合属性,与内边距padding的用法类似
margin-top:上外边距
margin-right:右外边距
margin-bottom:下外边距
margin-left:上外边距
margin:上外边距 [右外边距  下外边距  左外边距]

对块元素应用宽度属性width,并将左右的外边距都设置为auto,可使块级元素水平居中,实际工作中常用这种方式进行网页布局,示例代码如下:
.header{ width:960px; margin:0 auto;}


为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距: 
*{
padding:0;         /*清除内边距*/
margin:0;          /*清除外边距*/
}
注意:使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。


背景属性


1、设置背景颜色
background-color属性值可使用预定义的颜色值、十六进制#RRGGBB或RGB代码rgb(r,g,b)设置。background-color的默认值为transparent,这时子元素会显示其父元素的背景。
2、设置背景图像
通过background-image属性实现背景图像的设置
3、设置背景图像平铺
默认情况下,背景图像会自动向水平和竖直两个方向平铺。如果不希望图像平铺或只沿着一个方向平铺,可以通过background-repeat属性来控制,该属性的取值如下:
repeat:沿水平和竖直两个方向平铺(默认值)
no-repeat:不平铺(图像位于元素的左上角,只显示一次)
repeat-x:只沿水平方向平铺
repeat-y:只沿竖直方向平铺
4、设置背景图像的位置
background-position属性的值通常有两个,中间用空格隔开,水平和垂直方向的坐标。
background-position属性的取值有多种,具体如下:
使用不同单位的数值:直接设置图像左上角在元素中的坐标,例如“background-position:20px 20px;”


使用预定义的关键字:指定背景图像在元素中的对齐方式。
水平方向值:left、center、right。
垂直方向值:top、center、bottom。


使用百分比:按背景图像和元素的指定点对齐
0% 0%      表示图像左上角与元素的左上角对齐。
50% 50%    表示图像50% 50%中心点与元素50% 50%的中心点对齐。
20% 30%    表示图像20% 30%的点与元素20% 30%的点对齐。
100% 100%  表示图像右下角与元素的右下角对齐,而不是图像充满元素。
如果只有一个百分数,将作为水平值,垂直值则默认为50%。


5、设置背景图像固定
用background-attachment属性来设置背景图像固定,其属性值如下:
scroll:图像随页面元素一起滚动(默认值)
fixed:图像固定在屏幕上,不随页面元素滚动


6、综合设置元素的背景
背景属性是一个复合属性,可以将背景相关的样式都综合定义在一个复合属性background中
background:背景色 url("图像") 平铺 定位 固定;
各个样式顺序任意,中间用空格隔开,不需要的样式可以省略。但实际工作中通常按照背景色、url("图像")、平铺、定位、固定的顺序来书写。


盒子的宽与高


使用宽度属性width和高度属性height可以对盒子的大小进行控制。
width和height的属性值可以为不同单位的数值或相对于父元素的百分比%,实际工作中最常用的是像素值。


W3C规范,符合CSS规范的盒子模型的总宽度和总高度的计算原则是:
盒子的总宽度= width+左右内边距之和+左右边框宽度之和+左右外边距之和
盒子的总高度= height+上下内边距之和+上下边框宽度之和+上下外边距之和


注意:1、宽度属性width和高度属性height仅适用于块级元素,对行内元素无效(标记和除外)。
2、计算盒子模型的总高度时,还应考虑上下两个盒子垂直外边距合并的情况。


元素的类型与转换


元素的类型


HTML标记一般分为块标记和行内标记两种类型,它们也称块元素和行内元素。


块元素
每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。
常见的块元素有

~