(1)块级元素(block-level)

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

  • 块级元素特点:
    ①总是从新行开始
    ②高度、行高、外边距以及内边距都可以控制。
    ③宽度默认是容器的100%
    ④可以容纳内联元素和其他块元素。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <style> div{ background-color:pink; width: 100px; height: 100px; } </style>
</head>

<body>
    <div>大禹治水</div>
    <p>后羿射日</p>
    <div>精卫填海</div>
</body>

</html>



(2)行内元素(inline-level)

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

  • 行内元素的特点:
    ①和相邻行内元素在一行上。
    ②高、宽无效,但水平方向的padding和margin可以设置,垂直方向的无效。
    ③默认宽度就是它本身内容的宽度。
    ④行内元素只能容纳文本或其他行内元素(a特殊)。

注意:
1.只有文字太能组成段落,因此p里面不能放块级元素,同理h1~h6,dt都是文字类块级标签,不能放其他块级元素。
2.连接里面不能再放链接。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <style> span { background: pink; width: 100px; /* 无效 */ } </style>
</head>

<body>
    <span>高数考完啦</span>
    <span>英语考完啦</span>
    <span>明天可以回家啦</span>
</body>

</html>



(3)行内块元素(inline-block)

行内元素中几个特殊标签:<img />、<INPUT />、<td>,可以对他们设置宽高和对齐属性。

  • 行内块元素特点:
    ①和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。
    ②默认宽度就是它本身的宽度。
    ③高度、行高、外边距以及行内边距都可以控制。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <style> input { width: 200px; height: 30px; } </style>
</head>

<body>
    <input type="text" />
    <input type="text" />
    <input type="text" />
</body>

</html>

(4)标签显示模式转换(display)

  • 块转行内:display:inline;
  • 行内转块:display:block;
  • 块、行内元素转换为行内块:display:inline-block;
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <style> div { width: 100px; height: 100px; background-color: pink; /* display: inline; */ } span { width: 100px; height: 100px; background-color: hotpink; /* display: block; */ } a { width: 50px; height: 20px; background-color: deeppink; /* display: inline-block; */ } </style>
</head>

<body>
    <div></div>
    <div></div>
    <div>哈哈</div>

    <span>直男</span>
    <span>铁男</span>
    <span>钢铁直男</span>

    <a href="#">早上好</a><a href="#">晚上好</a>
</body>

</html>


①display:inline
②display: block;
③display: inline-block;
发生变化啦: