首页 > 代码库 > 从零开始学习html(十一)CSS盒模型——上

从零开始学习html(十一)CSS盒模型——上

一、元素分类

在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。

常用的块状元素有:

<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

常用的内联元素有:

<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

常用的内联块状元素有:

<img>、<input>

二、元素分类--块级元素

技术分享
 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>内联块状元素</title>
 6 <style type="text/css">
 7 div,p{background:pink;}
 8 </style>
 9 </head>
10 <body>
11 <div>div1</div>
12 <div>div2</div>
13 <p>段落1段落1段落1段落1段落1</p>
14 </body>
15 </html>
元素分类--块级元素

什么是块级元素?在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是块级元素。

设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。

a{display:block;}

块级元素特点:

1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

2、元素的高度、宽度、行高以及顶和底边距都可设置。

3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

来试一试:感受一下块级元素的特点

在代码编辑器中输入各种块级标签,试一试他们的特点。

 

三、元素分类--内联元素

技术分享
 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 5 <title>行内元素标签</title>
 6 <style type="text/css">
 7 a,span,em{
 8     background:pink;/*设置a、span、em标签背景颜色都为粉色*/
 9 }
10 </style>
11 </head>
12 <body>
13 <a href="http://www.baidu.com">百度</a>
14 <a href="http://www.imooc.com">慕课网</a>
15 <span>33333</span>
16 <span>44444</span><em>555555</em>
17 </body>
18 </html>
元素分类--内联元素

在html中,<span>、<a>、<label>、 <strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。

当然块状元素也可以通过代码display:inline将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使 div 元素具有内联元素特点。

 div{
     display:inline;
 }

......

<div>我要变成内联元素</div>

内联元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度及顶部和底部边距不可设置;

3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

内联元素之间有一个间距问题。

来试一试:感受一下内联元素的特点

在代码编辑器中输入各种内联元素标签,试一试他们的特点。

 

行内元素之间会产生间隙bug问题的场景:
1、当行内元素之间有“回车”、“tab”、“空格”时就会出现间隙。
如下代码:
<div>
<a>1</a>
<a>2</a>
<span>33333</span>
<span>44444</span>
<em>555555</em>
</div>

解决方法:
1、写在一行,之间不要有空格之类的符号。

2、使用font-size:0
div{font-size:0;}
a,span,em{font-size:16px;}

如果你想让div{font-size: 0;}起作用,请将行内元素包裹在里面,就想这样:
<div>
<a>我是链接</a>
<span>我是行空间</span>
</div>
 

四、元素分类--内联块状元素

技术分享
 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 5 <title>内联块状元素</title>
 6 <style type="text/css">
 7 a{
 8     
 9     width:20px;/*在默认情况下宽度不起作用*/
10     height:20px;/*在默认情况下高度不起作用*/
11     background:pink;/*设置背景颜色为粉色*/
12     text-align:center; /*设置文本居中显示*/
13 }
14 </style>
15 </head>
16 <body>
17 <a>1</a>
18 <a>2</a>
19 <a>3</a>
20 <a>4</a>
21 </body>
22 </html>
元素分类--内联块状元素

内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,

代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>标签就是这种内联块状标签。

inline-block 元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度、行高以及顶和底边距都可设置。

来试试,仿分页页码设计

在代码编辑器中大家可以看到我们为 a 元素设置了宽和高,但都没有起到作用,

原因是a在默认的时候是内联元素,内联元素是不可以设置宽和高的。

在编辑器的第8行,输入:

display:inline-block;

 

将块元素或行内元素转换为行块内元素:是为后面的课程做铺垫,

你只要知道行内元素不能设置高宽,转换后可以设置就行了,块状元素不能在一行显示转换后可以在一行显示就行了。

a标签变为内联块状元素后,居中设置的意思是,数字在每一个块内里面是居中显示的,而不是整个a标签在页面上居中

inline:内联元素{
1,不能设置width和height;
2,多个行内元素排成一行,直到一行排不下,才会换新一行;
3,只可以设置水平方向的边距,如:margin-left,margin-right,padding-left,padding-right.
}
block:块级元素{
1,块级元素独占一行;
2,可以设置width和height,默认宽度为一整行,除非单独设置宽度;
3,可以设置margin和padding属性。
}
inline-block{
简而言之就是让元素既可以在一行内显示,又可以设置宽高边距等。
}

 


块级元素默认占一整行 无论它的宽有没有一整行宽 没用完的空间不准其他元素使用

属性:display:block;

默认占一整行 默认宽度一整行 可以设置宽高 一行只有自己

 

内联(行内)元素 定义的是一段内容(文本)这一行内没占用完的空间其他内联元素可以共同使用

属性:display:inline;

没法设置宽高 一行可以有多个 大小由内容决定

 

内联块状元素(行内块级元素)

属性:display:inline-block;

可以设置宽高

一行能有多个

五、什么是盒模型

视频课程

 

从零开始学习html(十一)CSS盒模型——上