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:上下左右边框样式

例如<p>只有上边为虚线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仅适用于块级元素,对行内元素无效(<img />标记和<input />除外)。

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

元素的类型与转换


元素的类型


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

块元素

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

常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>标记是最典型的块元素。

行内元素

行内元素不占有独立的区域,仅仅靠自身的字体大小和图像尺寸来支撑结构,一般不可以设置宽度、高度、对齐等属性,常用于控制页面中文本的样式。

常见的行内元素有<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<a>、<span>等,其中<span>标记最典型的行内元素。

注意:在行内元素中有几个特殊的标记——<img />、<input />、<td>,可以对它们设置宽高和对齐属性,有些资料可能会称它们为行内块元素。

1、<div>标记

div:块级元素,单独占一行

span:行内元素,默认在一行上显示

div是英文division的缩写,意为“分割、区域”

<div>标记将网页分割为独立的、不同的部分,以实现网页的规划和布局。<div>与</div>之间相当于一个容器,可以容纳段落、标题、表格、图像等各种网页元素。也就是说大多数HTML标记都可以嵌套在<div>标记中,<div>中还可以嵌套多层<div>

<div>标记通过与id、class等属性配合,然后使用CSS设置样式,可以替代大多数的块级文本标记。

注意:1、<div>标记最大的意义在于和浮动属性float配合,实现网页的布局,这就是常说的DIV+CSS网页布局。

2、<div>可以替代块级元素如<h>、<p>等,但是他们在语义上有一定的区别。例如<div>和<h2>的不同在于,<h2>具有特殊的含义,语义较重,代表着标题,而<div>是一个通用的块级元素,主要用于布局。

特征

div通常是块及元素

独自占一行

独自不能实现复杂效果,必须结合CSS样式进行渲染

<div>可定义文档中的分区或节

<div>标签可以把文档分割为独立的,不同的部分

      如果使用id或class来标记<div>,那么该标签的作用会变得更加有效

2、<span>标记

<span>标记是行内元素,<span>与之间只能包含文本和各种行内标记,如加粗标记<strong>、倾斜标记<em>等,<span>中还可以嵌套多层<span>。

<span>标记常用于定义网页中某些特殊显示的文本,配合class属性使用。

元素的转换

如果希望行内元素具有块元素的某些特性,例如可以设置宽高,或者需要块元素具有行内元素的某些特性,例如不独占一行排列,可以使用display属性对元素的类型进行转换。

使用display属性对块元素和行内元素进行转换。其属性值及含义如下:

inline:此元素显示为行内元素(行内元素默认display属性值)

block:此元素显示为块元素(块元素默认display属性值)

inline-block:此元素将显示为行内块元素,可以对其设置宽高和对齐等属性,但是该元素不会独占一行

none:此元素将被隐藏,不显示,也不占用页面空间,相当于该元素不存在

注意:<div>被转换成了行内元素,而行内元素只可以定义左右外边距,定义上下外边距时无效。

块元素垂直外边距的合并

相邻块元素垂直外边距的合并

当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。

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

对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。

如果希望外边距不合并,可以为父元素定义1像素的上边框或上内边距。这里以定义父元素的上边框为例,在父<div>的CSS样式中增加如下代码:

border-top:1px solid #FCC;       /*定义父div的上边框*/

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/11321.html

(0)
上一篇 2021年7月19日 11:01
下一篇 2021年7月19日 11:01

相关推荐

发表回复

登录后才能评论