从零开始学习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>
<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;
可以设置宽高
一行能有多个