在CSS中,html中的标签元素大体被分为三种不同的类型:
块状元素、内联元素(又叫行内元素)和内联块状元素。
块状元素:display:block
内联元素:display:inline
内联块状元素:display:inline-block
常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>
内联(行级)标签:标签在一行内,宽度与高度由内容决定,只有在内容超过HTML的宽度时,才会换行
块状标签:标签独占一行,可指定宽、高 内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block
就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>标签就是这种内联块状标签。 inline-block 元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度、行高以及顶和底边距都可设置
区别:
|
是否占一行 |
能否指定高宽 |
垂直方向的margin、padding |
内联 |
否 |
否 |
否 |
块状 |
是 |
是 |
是 |
内联块状 |
否 |
是 |
是 |
(扩展)隐性改变display类型: 有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:
- position : absolute
- float : left 或 float:right
元素会自动变为以 display:inline-block 的方式显示,当然就可以设置元素的 width 和 height 了且默认宽度不占满父元素。