4.8 块级元素和行内元素
在 HTML 中,标签通常又被称作元素。例如 <a> 标签又叫做 <a> 元素,<p> 标签也叫作 <p> 元素。
HTML 元素根据其表现形式可以分为 2 种:一种是块级元素,一种是行内元素。
一、块级元素
什么是块级元素?前面内容我们讲到过的<div>、<p>、<h1>就是块级元素。
举例:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"> <title>4.8 块级元素和行内元素</title> </head> <body> <h1>纳兰性德最美的十首词</h1> <p>满族第一位大诗人,一笔写不尽纳兰情,半生书不完痴心梦。</p> <div> <h2>【 木兰花·拟古决绝词 】</h2> <p>人生若只如初见,何事秋风悲画扇。</p> <p>等闲变却故人心,却道故人心易变。</p> <p>骊山语罢清宵半,泪雨零铃终不怨。</p> <p>何如薄幸锦衣郎,比翼连枝当日愿。</p> </div> </body> </html>
运行浏览器后得到的效果如图
由此我们可以总结出块级元素的特点:每个块级元素都是独自占一行。
常见的一些块级元素:
<address> | 地址 | <hr> | 水平分隔线 |
<blockquote> | 块引用 | <menu> | 菜单列表 |
<center> | 居中对齐块 | <ol> | 排序表单 |
<dir> | 目录列表 | <p> | 段落 |
<div> | 常用块级容器 | <pre> | 格式化文本 |
<dl> | 定义列表 | <table> | 表格 |
<form> | 交互表单 | <ul> | 无序列表 |
<h1>~<h6> | 标题 | <ol> | 有序列表 |
二、行内元素
什么是行内元素?前面我们讲到的<b>、<i>、<em> 、<strong>、<span>就是行内元素。
行内元素一般都是基于语义级(semantic)的基本元素,它只能容纳文本或者其他行内元素,通常被包括在块元素中使用。
举例:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"> <title>4.8 块级元素和行内元素</title> </head> <body> <h1>纳兰性德最美的十首词</h1> <p>满族第一位大<b>诗人</b>,一笔写不尽纳兰情,<strong>半生书不完痴心梦</strong>。</p> <div> <h2>【 木兰花·拟古决绝词 】</h2> <p><em>人生</em>若只如<i>初见</i>,何事秋风悲画扇。</p> <p>等闲变却故人心,却道故人心易变。</p> <p>骊山语罢清宵半,泪雨零铃终不怨。</p> <p>何如薄幸锦衣郎,比翼连枝当日愿。</p> </div> </body> </html>
运行浏览器后得到的效果如图
由此我们可以总结出行内元素的特点:行内元素会在一条直线上排列,在同一行从左至右水平排列。
常见的一些行内元素:
<a> | 锚点 | <b> | 字体加粗 |
<big> | 大号字体 | <br> | 换行 |
<em> | 定义为强调的内容 | <i> | 斜体文本效果 |
<img> | 图像 | <input> | 输入框 |
<label> | 标签为input元素的标注 | <select> | 单选或多选菜单 |
<small> | 小号字体 | <span> | 组合文档的行内元素 |
<strong> | 强调内容 | <sub> | 定义下标 |
<sup> | 定义上标 | <textarea> | 多行文本输入框 |
嵌套规则
先看例子,这是一个错误示范!
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"> <title>4.8 块级元素和行内元素</title> </head> <body> <!--错误示范--> <h2>【 采桑子 】</h2> <em><p>非关癖爱轻模样,冷处偏佳。</p></em> <!--错误--> <p><div>别有根芽,不是人间富贵花。</div></p> <!--错误--> <h2><div>谢娘别后谁能惜,飘泊天涯。</div></h2> <!--错误--> <h2><p>寒月悲笳,万里西风瀚海沙。</p></h2> <!--错误--> </body> </html>
运行浏览器后得到的效果如图
浏览器能够识别这些标签,并且能按照我们的意思正确显示出效果。但是这段代码通不过W3C验证器。我们再看看验证器提示的错误。
分析:
第一句错误是块级元素<p>嵌套在行内元素<em>内。
第二句错误是说没有<p>开始标签,仔细看代码,第二句诗词的前面是有p标签的,为什么没识别到呢,原因就在第一句<p>写在了<em>内。
第二句和第三句都是块级元素嵌套块级元素,那是不是说,块级元素不能嵌套块级元素呢?答案是否定的。这个时候要区分块级元素的类型,它分为容器类块级元素(<div>)和文字类块级元素(<p>、<h1>~<h2>),只要是容器类块级元素都可以嵌套块级元素。但是文字类块级元素不可以。大家好好屡屡,然后结合案例看看,把这段消化好。
第四句,也是有很多经验的前端设计师容易犯的错误,<h2>是文字类块级元素,是不可以嵌套块级元素的。
由此我们可以得出嵌套规则有这些:
① 块元素可以嵌套行元素;
② 行元素可以嵌套行元素;
③ 行元素不可以嵌套块元素;
④ 文字类块元素不可以嵌套块元素;
⑤ 容器类块元素可以嵌套块元素。
你觉得文章内容怎么样