样式标签和节标签
- 1. 常用的 样式标签 & 节标签
- 2. HTML 5 中的 样式标签 & 节标签
- 2.1 ★ header 文档 / 分区的 页眉(介绍性 信息,搭配 h1~h6 标签)
- 2.2 ★ footer 文档 / 分区 的 页脚 (可能搭配 address 标签)
- 2.3 ★ section 文档中的 主题性 分区/节(搭配 header ,h1~h6 标签)
- 2.4 ★ article (可分离) 完整 独立 的 主题性内容 (搭配 header,h1~h6,footer 标签)
- 2.5 ★ aside 侧栏 内容 (间接相关 内容,附属信息)
- 2.6 ★ details 描述细节
- 2.7 ★ summary 细节的 摘要/标签 (搭配 details 标签)
- 2.8 ★ dialog 对话框 或 窗口 内容
- 结束语
1. 常用的 样式标签 & 节标签
标签名 | 用于 |
---|---|
① <style> | 定义文档的 样式信息。 |
② <div> | 定义文档中的 块元素的 分区。 |
③ <span> | 定义文档中的 行内元素的 分区。 |
1.1 ★ style 文档的 内部样式 ( 搭配 head 标签)
- 定义 文档 样式: 如何为 HTML 文档定义 样式 ?
- 使用
<style>
样式 标签 - ① 样式 信息:
<style>
样式 元素包含 文档的样式信息。 - ② 标签内容: css: 它包含 CSS,该 CSS 应用于 包含
<style>
元素的 文档内容。
- 使用
- 使用说明
- 限定 父元素:
<style>
样式标签 放在什么位置 ?- 头部标签
<head>
中: 位于<head>
头部标签中 (也可以放在<body>
主体 标签中,但是建议不要这样做) head> style
- 头部标签
- 限定 父元素:
- 链接 外部 样式表: 如何链接 外部样式表 ?
- 使用
<link>
链接 标签。head> link
- 使用
- 样式 层叠问题
- 多个
<style>,<link>
样式标签 和链接标签的 样式应用顺序- 按顺序 应用样式: 如果文档中 含有多个
<style>,<link>
,它们将 按照文档中包含的顺序 应用于DOM——确保以 正确的顺序 包含它们,以避免意外的 级联问题。
- 按顺序 应用样式: 如果文档中 含有多个
- 多个
<style>
和<link>
的区别- ① 都可以 给文档添加 样式 css
- ② 内部 样式 css: 样式
<style>
标签,添加的 内部 css (在文档内部) - ③ 外部 样式 css: 链接
<link>
标签,添加的 外部 css (引入 外部 css 文件,来给文档添加样式)
- 样式
<style>
标签和属性的 浏览器支持
1.1.1 style 样式标签 的 属性
<style>
样式标签的 可选的属性
属性名 | 属性值 | 用于 |
---|---|---|
①type | =text/css | 内容的 媒体类型. 规定 样式表内容的 MIME 类型。 |
②media | = screen , tty , tv , projection , handheld , print , braille , aural , all | 适用媒体. 规定该样式 适用于哪个媒体.默认值为 all . |
③ title | text | 指定 可选 样式表 的 样式名称。 |
布尔属性 | 适用范围 , 已废弃 . 当 <style> 标签,写在 其他正文标签的内部时 (比如,<section> ), 如果该属性 存在,则样式应用于 其父元素和子元素。;如果不存在,则应用于 整个文档。 |
⑴ type 属性: 标签内容的 媒体类型 (可选的,唯一属性值 text/css )
- ⑴
<style>
样式 标签的type
类型 属性- ① 样式标签内容 的媒体类型:
type
类型 属性指示了<style>
标签 内容的类型。 - ② (媒体类型的) 样式语言: style-
type
类型 属性 以 MIME 类型(又称 媒体类型 media type ,不应该指定 字符集)定义 样式语言。- 如果该属性 未指定,则默认为
text/css
。 - 表示 内容是 css:
type="text/css"
是什么意思 ?- 指示
<style>
样式标签的 内容是 CSS。- 唯一 属性值: 目前,唯一 可能的值是
"text/css"
。
- 唯一 属性值: 目前,唯一 可能的值是
- 指示
- 如果该属性 未指定,则默认为
- 使用说明
- ① 可选: style-
type
类型 属性是 可选的 - ② 缺失 默认值: 如果没有指定,它默认为
text/css
——在现代 web 文档中 几乎没有必要包含 这个属性。
- ① 可选: style-
- ① 样式标签内容 的媒体类型:
- 示例1: 指明
<style>
样式标签的内容是 CSS
<head>
<style type="text/css">
h1 {color: red}
p {color: blue}
</style>
</head>
<body>
<h1>header 1</h1>
<p>A paragraph.</p>
</body>
⑵ media 属性: 内部样式 适用的媒体 (值为 媒体查询)
- ⑵
<style>
样式 标签的media
媒体 属性- 内部样式 适用的媒体
- 不同媒体 不同样式: 如何为 不同的媒介类型 规定不同的样式 ?
- 使用样式标签的
media
媒体属性- 该属性规定 该样式 适用于 哪个媒体。
- ① 有选择地 应用样式: 根据 媒体特性 (如 视窗宽度)有选择地 将内部样式表 应用于文档。
- ② 应用样式的 媒体:
- style-
media
媒体 属性定义了 应用样式的媒体。它的值是 一个媒体查询,如果属性缺失,则属性值 默认为all
。
- style-
- 使用样式标签的
- 不同媒体 不同样式: 如何为 不同的媒介类型 规定不同的样式 ?
- 适用于 多个媒体
- 如何在一个
<style>
标签中 定义多个媒体类型 ?- 逗号 分隔: 使用 逗号分隔的 列表
- 如何在一个
- 内部样式 适用的媒体
- 例如:
<style type="text/css" media="screen,projection">
<style>
的media
适用媒体 属性的浏览器支持- 所有主流浏览器 都支持
media
属性的"screen"、"print"
以及"all"
值。 - Opera 同时支持
"handheld"
值。
- 所有主流浏览器 都支持
<style>
样式 标签media
适用媒体 属性的属性值
属性值 | 用于 |
---|---|
① screen | 计算机 屏幕(默认值)。 |
② tty | 电传打字机 以及使用等宽字符网格的类似媒介。 |
③ tv | 电视类型设备(低分辨率、有限的屏幕翻滚能力)。 |
④ projection | 放映机。 |
⑤ handheld | 手持设备(小屏幕、有限的带宽)。 |
⑥ print | 打印预览模式 / 打印页。 |
⑦ braille | 美 /breil/, 盲人用点字法(盲文)反馈设备。 |
⑧ aural | 语音合成器。 |
⑨ all | 适合所有设备。 |
- tty
- 电传打字机(teletypewriter),美 /,teli’taip,raitə/
- Braille
- [brel]
- 盲人用点字法,盲文
- 示例1: 针对两种 不同媒体类型,设置 两种不同的样式 (计算机屏幕 和打印):
- 两个
<style>
标签 - 采用 不同的
media
媒体属性值
- 两个
<html>
<head>
<style type="text/css">
h1 {color:#FF0000;}
p {color:#0000FF;}
body {background-color:#FFEFD6;}
</style>
<style type="text/css" media="print">
h1 {color:#000000;}
p {color:#000000;}
body {background-color:#FFFFFF;}
</style>
</head>
<body>
<h1>Header 1</h1>
<p>A paragraph.</p>
</body>
</html>
- 网页上 显示的样式
- 打印时 显示的样式
- 示例2: 在
<link> , <style>
链接标签 和样式标签中的 css 媒体查询- 圆括号:
media
的属性值:- ① 可以是一个 属性值
- ② 也可以是另一个 属性 (媒体查询 属性),这个时候 把属性 括起来,方便区分 属性值的类型.
- 媒体查询
- ①
<link>
中- 用
media
属性,media="(媒体查询 属性)"
- 用
- ②
<style>
中,- 用标签的
media
属性 - 标签内部的 css , 用 css 媒体查询
@media (媒体查询 属性){}
- 用标签的
- ①
- 圆括号:
<!-- link 元素中的 CSS 媒体查询 -->
<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />
<!-- 样式表中的 CSS 媒体查询 -->
<style>
@media (max-width: 600px) {
.facet_sidebar {
display: none;
}
}
</style>
- 示例3: 定义两个 样式标签, 第二种在 指定条件下使用,在视窗宽度 小于
500px
时使用
<!doctype html>
<html>
<head>
<style>
p {
color: white;
background-color: blue;
padding: 5px;
border: 1px solid black;
}
</style>
<style media="all and (max-width: 500px)">
p {
color: blue;
background-color: yellow;
}
</style>
</head>
<body>
<p>This is my paragraph.</p>
</body>
</html>
- 放大缩小窗口,根据限定的 媒体查询, 样式会 发生变化.
1.2 ★ div 给文档内容 分组 /分区 (组合 块级元素)
-
给分档内容 分区(分组): 如何定义文档中的 分区或节 ?(division/section)。
- 使用
<div>
分区标签
- 使用
-
组合 块级元素: 如何组合 块级元素 ?
- 使用
<div>
分区标签
- 使用
-
使用说明
- 如何把文档 分割为 独立的、不同的部分 ?
- 使用
<div>
分区 标签
- 使用
- 容器: 文档内容 分区 元素 division element (
<div>
) 是流内容的 通用容器。- 纯 容器: 作为一个“纯”容器,
<div>
元素本身 并不表示 任何东西。
- 纯 容器: 作为一个“纯”容器,
- 给文档内容 分组:
- ① 设置 样式: 用于 对内容 进行分组,因此可以轻松地 使用 类
class
或id
属性 设置样式 - ② 设置 语言: 将文档的一部分 标记为 使用 不同的语言 编写 (使用
lang
属性)。
- ① 设置 样式: 用于 对内容 进行分组,因此可以轻松地 使用 类
- 优先级最低的 容器:
- ① 使用前提: 只有在 不适合使用其他 语义容器元素(如
<article>
或<nav>
)的情况下,才应 使用<div>
元素。 - ② 无语义 容器: 使用标签,应该尽量 语义化,有助于浏览器, 作为一个没有语义的容器,
<div>
的优先级是最低的,低于其他 有语义的容器标签. - ③ 默认 无样式: 它对内容或布局 没有影响,没有样式,直到使用 CSS 样式 进行设置。
- ① 使用前提: 只有在 不适合使用其他 语义容器元素(如
- 如何把文档 分割为 独立的、不同的部分 ?
-
块级 元素
<div>
是一个 块级元素吗 ?- 是的
- 什么是 块级元素 ?
- ① 独占 一行: 块级元素的内容 会自动地开始一个新行。
- ② 元素前后 换行: 浏览器 会在块级元素的前后 放置一个换行符,让
<div>
分区标签的内容,前后会 进行换行.
-
应用样式
- 设置样式: 如何给
<div>
分区标签 添加样式 ?- 通过
<div>
的class
或id
,配合 css , 应用 额外的样式。 - 类
class
属性和id
属性的区别- ❶ 类
class
: 用于 某 一类 元素. - ❷
id
: 用于标识 单独的 唯一的 元素。
- ❶ 类
- 通过
- 设置样式: 如何给
-
添加样式的 3 种 方式
- ① 行内 样式: 使用 该标签的
style
样式 属性 - ② 内部 样式: 使用
<style>
标签 - ③ 外部 样式: 使用
<link>
链接 外部样式文件,来添加样式.
- ① 行内 样式: 使用 该标签的
-
<div>
标签和属性的 浏览器支持- 过时 属性:
align
属性 已经过时;不要再用它了。- 相反,应该使用 CSS 属性或技术,如 CSS
Grid
或CSS `Flexbox 来 对齐和定位 页面上的
元素。
- 示例1: 一张图片,一段文字,进行样式设计
- 嵌套关系
div > img | p
<!doctype html>
<html>
<head>
<style>
.warning {
border: 10px ridge #f00;/*整个分区div容器的边框 粗细 边框样式 边框颜色*/
background-color: #ff0;/*分区div的背景颜色*/
padding: .5rem;/*分区div的内边距*/
display: flex;/*显示方式 伸缩*/
flex-direction: column;/*伸缩方向 列,横向*/
}
.warning img {
width: 100%;/*图片宽度*/
}
.warning p {
font: small-caps bold 1.4rem sans-serif;/*段落的字体 粗细*/
text-align: center;/*段落文本的水平对齐 */
}
</style>
</head>
<body>
<div class="warning">
<img src="https://interactive-examples.mdn.mozilla.net/media/examples/leopard.jpg"
alt="An intimidating leopard.">
<p>Beware of the leopard</p>
</div>
</body>
</html>
- 容器 和样式设置: 把一张图片,一个段落,包含在一个分区中,进行样式设置
- 示例2: 给上方的 图片和文字,设置 一个阴影框
.warning {
width: 15em;
border: 1px solid #333;
box-shadow: 8px 8px 5px #444;/*阴影的左右偏移量 上下偏移量 模糊距离 颜色*/
padding: 8px 12px;
background-image: linear-gradient(180deg, #fff, #ddd 40%, #ccc);/*分区容器 设置一个渐变的背景色*/
}
1.3 ★ span 组合 行内元素 (行内容器)
- 组合 行内元素: 如何组合文档中的 行内元素 ?
- 分组 和设置样式: 使用
<span>
行内分区 标签,为了给行内元素 设置样式,而对元素和元素内容 进行分组
- 分组 和设置样式: 使用
- 使用说明
-
① 使用 前提: 无其他替代的语义元素时 才选择, 和
<div>
一样,只有 当没有其他合适的 语义元素时 才应该使用它。 -
② 无语义的 容器标签:
<span>
也是 无语义的 容器标签.- 行内容器: 是 短语内容的 通用 行内容器,并没有 任何特殊语义。
-
③ 给行内元素 设置样式: 如何对
<span>
行内分区标签 应用样式 ?- 给
<span>
行内分区 标签 应用id
或class
属性
- 给
-
④ 默认样式
<span>
行内分区 标签,没有 特别的样式,当使用 CSS 进行设置时,才会有样式
-
<div>
分区 标签和<span>
行内分区 标签的区别- ① 无语义 容器标签: 都是 没有语义的容器标签
- ② 默认 无样式: 都是 默认没有样式的 (设置 CSS 才有样式)
- ③ 分组对象 不同
- 块级 元素:
<div>
分区 标签是 对 块级元素 进行分组( block-level element) - 内联(行内) 元素:
<span>
行内分区 标签是 对 内联元素 进行分组( inline element)。
- 块级 元素:
- ④
<div>
是一个 块元素, 而<span>
则是 行内元素 .- block-level element, inline element.
- 示例1: 把制作过程中 需要的 材料相关的文字,用红色,加粗的字体,突出显示
- 给文字内容,添加 相同的类,应用 相同的样式.
<!doctype html>
<html>
<head>
<style>
span.ingredient {
color: #f00;/*字体颜色*/
font-weight:bold;/*字体粗细*/
}
</style>
</head>
<body>
<p>Add the <span class="ingredient">basil</span>, <span class="ingredient">pine nuts</span> and <span class="ingredient">garlic</span> to a blender and blend into a paste.</p>
<p>Gradually add the <span class="ingredient">olive oil</span> while running the blender slowly.</p>
</body>
</html>
2. HTML 5 中的 样式标签 & 节标签
标签名 | 用于 |
---|---|
① <header> | 定义 文档 或 分区(文档的 一部分区域) 的 页眉。 |
② <footer> | 定义文档或分区 的 页脚。 |
③ <section> | 主题性 分区(节). 定义 文档中的节,一般是具有 主题性的 (带有 标题标签 h1~h6 )。比div 的分区,有更进一步的语义. |
④ <article> | 定义 (可分离) 完整 独立 的 主题性内容 (搭配 header,h1~h6,footer 标签),例如,一篇 博客,博客中的 一条评论. |
⑤ <aside> | 定义 侧栏 (页面 间接相关 内容)。 |
⑥ <details> | 定义 元素的 细节。 |
⑦ <dialog> | 定义 对话框或窗口。 |
⑧ <summary> | 为 细节<details> 元素定义 可见的摘要/标签。 |
2.1 ★ header 文档 / 分区的 页眉(介绍性 信息,搭配 h1~h6 标签)
-
文档的 页眉: 如何定义 文档 或者 文档的 分区(一部分区域)的 页眉(介绍信息) ?
- 使用
<header>
页眉 标签- 页眉: 是文档中 每个页面的 顶部区域。常用于 显示文档的 附加信息,可以包括 标题, logo、搜索表单、作者名 等。
- 使用说明
- ① 介绍性内容 和 辅助导航: HTML
<header>
头部元素 用于展示 介绍性内容,通常包含一组 介绍性的 或是 辅助导航 的实用元素。 - ② 容器:介绍内容 或者 导航链接栏的 容器。
- 标题 容器:
<header>
元素 不是分段内容,因此 不会往 大纲 中引入新的段落。- 通常用于 包含周围部分的 标题(
h1 ~ h6
元素),但这 不是必需的。
- 也包含 logo、搜索表单、作者名 等其他元素。
- 标题 容器:
- ③ 可以多个: 在一个文档中,可以定义 多个
<header>
元素。
- ① 介绍性内容 和 辅助导航: HTML
- 使用
-
<header>
页眉 标签的父元素:- 任何接受 flow content 的元素。
- 禁止的 父元素:
<header>
,不能是<address>、<footer>
或另一个<header>
元素的子元素。(为什么呢 ?)
-
<header>
页眉标签的 浏览器支持- IE 8 以及 更早的版本 不支持
<header>
标签。
- IE 8 以及 更早的版本 不支持
- 示例1: 文章的 页眉信息
<article>
<header>
<h1>What Does WWF Do?</h1>
<p>WWF's mission:</p>
</header>
<p>WWF's mission is to stop the degradation of our planet's natural environment, and build a future in which humans live in harmony with nature.</p>
</article>
- 示例2: 主页的 页眉信息
- 标题和 logo : 放在
<header>
中
- 标题和 logo : 放在
<header>
<h1>主页标题</h1>
<img src="mdn-logo-sm.png" alt="MDN logo">
</header>
2.2 ★ footer 文档 / 分区 的 页脚 (可能搭配 address 标签)
-
定义 页脚: 如何定义 文档 或者 文档的分区 (一部分区域) 的 页脚 ?
- 使用
<footer>
页脚标签
- 使用
-
页脚 包含的信息 : 有关该节的作者、版权数据或 相关文档的链接 的信息。
- ① 作者
- ② 版权
- ③ 使用 条款 链接
- ④ 相关文档 链接
- ⑤ 联系信息 (搭配
<address>
标签)等。
-
使用说明
- ① 联系信息: (搭配
<address>
标签)<footer>
元素内的联系信息 应该位于- 限定 子元素:
<address>
地址 标签 中。
- ② 可以 多个: 可以在一个文档中 使用 多个
<footer>
页脚 元素吗 ?- 可以
- ③
<footer>
页脚 标签的父元素- 任何 接收流内容的元素。
- 禁止 父元素: 注意
<footer>
页脚 元素的父元素,不能是<address>, <header>
或者另一个<footer>
- ① 联系信息: (搭配
-
<footer>
页脚标签的 浏览器支持- IE 8 以及 更早的版本 不支持
<footer>
标签
- IE 8 以及 更早的版本 不支持
- 示例1: 文档中的 页脚部分
<footer>
<p>Posted by: W3School</p>
<p>Contact information: <a href="mailto:someone@example.com">someone@example.com</a>.</p>
</footer>
- 示例2: 页脚中,显示 版权, 作者和时间
<!doctype html>
<html>
<head>
<style>
article {
min-height: 100%;
display: grid;
grid-template-rows: auto 1fr auto;
}
footer {
display: flex;/*显示方式 弹性*/
justify-content: center;/*居中显示*/
padding: 2px;/*页脚部分的内边距*/
background-color: #45a1ff;/*页脚的背景颜色*/
color: #fff;/*页脚部分的字体颜色*/
}
</style>
</head>
<body>
<article>
<h1>How to be a wizard</h1>
<!-- 有序列表,显示3个步骤 -->
<ol>
<li>Grow a long, majestic beard.</li>
<li>Wear a tall, pointed hat.</li>
<li>Have I mentioned the beard?</li>
</ol>
<!-- 页脚,显示版权信息 时间和作者-->
<footer>
<p>© 2018 Gandalf</p>
</footer>
</article>
</body>
</html>
- 嵌套关系:
footer > p
2.3 ★ section 文档中的 主题性 分区/节(搭配 header ,h1~h6 标签)
-
主题性 分区
- 如何定义 文档中的 节(section、区段) ?
- 使用
<section>
主题性 分区 标签
- 使用
- 使用说明
- 独立的 部分:
<section>
区段 标签 表示一个独立的部分——该部分 没有更具体的语义元素 来表示它。- △主题性 分区(节). 定义 文档中的节,一般是具有 主题性的 (带有 标题标签
h1~h6
,通常放在页眉header
中,header > h1~h6
)。比div
的分区,有更进一步的语义.<section>
区段 一般有标题:- 通常,但并非总是,
<section>
节(区段) 都有标题。
- 通常,但并非总是,
- △主题性 分区(节). 定义 文档中的节,一般是具有 主题性的 (带有 标题标签
- 没有 其他语义元素来表示: 例如,导航菜单 应该包装在
<nav>
导航 元素中,但是 搜索结果列表、地图显示 及其控件 没有特定的元素,可以放在<section>
区段标签中。
- 独立的 部分:
- 如何定义 文档中的 节(section、区段) ?
-
使用提醒
- 使用选择: 如果元素的内容 主题性内容,而且可以作为 完整单独的部分,那么
<article>
文章 元素可能是更好的选择(就像文章的 一稿多投) - 不作为 普通容器: 不要把
<section>
元素作为 一个普通的容器来使用,这是本应该是<div>
的用法(特别是当片段(the sectioning )仅仅 是为了美化样式的时候)。
- 使用选择: 如果元素的内容 主题性内容,而且可以作为 完整单独的部分,那么
-
使用场合:
- ① 文章的 章节
- ② 标签对话框中的 标签页
- ③ 论文中 有编号的部分 等。
- (都是 很有主题性的 分区(节))
-
section
标签的 浏览器支持- IE 9 才开始支持,之前的版本 不支持.
<section>
区段 标签的cite
引用属性
属性名 | 属性值 | 用于 |
---|---|---|
cite | URL | 主题性内容 的 URL,假如 主题性分区内容 是摘自 web 的话,可以附上 相关链接。 |
- 示例1: 文档中的 主题性 区段,主要解释了 PRC的含义:
<section>
<h1>PRC</h1>
<p>The People's Republic of China was born in 1949...</p>
</section>
- 示例2: 两个部分,两个区段,每个部分,有一个标题
<section>
<h1>Introduction</h1>
<p>People have been catching fish for food since before recorded history…</p>
</section>
<section>
<h1>Equipment</h1>
<p>The first thing you’ll need is a fishing rod or pole that you find comfortable and is strong enough for the kind of fish you’re expecting to land…</p>
</section>
2.4 ★ article (可分离) 完整 独立 的 主题性内容 (搭配 header,h1~h6,footer 标签)
-
可分离的 完整独立的 主题性内容
- 定义:独立的 自包含内容。
- 页眉(含标题) 和页脚: 一般来说,
article
会有 标题 部分( 包含在 页眉header
内,header > h1~h6
),有时也会包含 页脚footer
。
-
使用场合:一段内容脱离了 所在的语境,仍是完整的、独立的,则应该用
article
标签。 -
完整 独立 + 独自被引用:
article
元素 代表( 文档、页面或应用程序中) 独立的、完整的、可以独自 被外部引用的 内容。它可以是:- 一篇 博客
- 报刊中的 文章
- 一篇论坛 帖子
- 一段用户评论
- 独立的插件
- 其他任何 独立的内容。
-
使用说明
- 自嵌套 使用: 当
<article>
文章 元素嵌套使用时,则该元素代表 与外层元素有关的独立内容。- 例如,博客 和 博客下的评论, 都可以使用
article
标签 来表示.
- 例如,博客 和 博客下的评论, 都可以使用
- 作者信息:
<article>
元素的作者信息 可通过<address>
元素提供,但<article>
元素不能成为<address>
元素的子元素。 - 发布日期和时间:
<article>
元素的 发布日期和时间 可通过<time>
元素的pubdate
属性表示。
- 自嵌套 使用: 当
-
article
标签的 浏览器支持- IE 9 才开始支持,之前版本 不支持.
-
示例1: 1个 术语解释文章
<article>
<h1>Internet Explorer 9</h1>
<p>Windows Internet Explorer 9(简称 IE9)于 2011 年 3 月 14 日发布.....</p>
</article>
- 示例2: 一部电影的用户评论,评论的评论
- css
.review{
font-weight: bold;
font-size: 1.2em;
}
.review-time{
font-style: italic;
color: grey;
}
- html
<!-- 用户的评论,评论的评论 -->
<article class="film_review">
<header>
<h2>Jurassic Park 侏罗纪公园</h2>
</header>
<section class="main_review">
<p class="review">恐龙太逼真了~</p>
</section>
<section class="user_reviews" style="margin-left: 10px">
<article class="user_review">
<p class="review">真的很吓人!</p>
<footer>
<p class="review-time">
Posted on
<time datetime="2015-05-16 19:00">May 16</time>
by 小明同学.
</p>
</footer>
</article>
<article class="user_review">
<p class="review">确实,四部我都看了.</p>
<footer>
<p class="review-time">
Posted on
<time datetime="2015-05-17 19:00">May 17</time>
by 叫我杠精.
</p>
</footer>
</article>
</section>
<footer>
<p class="review-time">
Posted on
<time datetime="2015-05-15 19:00">May 15</time>
by 爱看剧的崽子.
</p>
</footer>
</article>
- 嵌套关系
<article>
:article > header | section*2 | footer
- ①
<header>
<h2>
- ②
<section>
主评论区<p>
- ③
<section>
评论的 评论区<article>
*2 两条 评论的评论<p>
<footer>
:footer > p > time
评论的发表者和时间<p>
<time>
- ④
<footer>
评论的发表者和时间<p>
<time>
- ①
- 示例3: 天气预报
- 嵌套关系
article > h1 | article*3
<article class="forecast">
<h1>Weather forecast for Seattle</h1>
<article class="day-forecast">
<h2>03 March 2018</h2>
<p>Rain.</p>
</article>
<article class="day-forecast">
<h2>04 March 2018</h2>
<p>Periods of rain.</p>
</article>
<article class="day-forecast">
<h2>05 March 2018</h2>
<p>Heavy rain.</p>
</article>
</article>
- css
.forecast {
margin: 0;
padding: .3rem;
background-color: #eee;
font: 1rem 'Fira Sans', sans-serif;
}
.forecast > h1,
.day-forecast {
margin: .5rem;
padding: .3rem;
font-size: 1.2rem;
}
.day-forecast {
background: right/contain content-box border-box no-repeat
url('/media/examples/rain.svg') white;
}
.day-forecast > h2,
.day-forecast > p {
margin: .2rem;
font-size: 1rem;
}
- 西雅图的天气预报: 整体 一个
article
- 西雅图的 每天的 天气预报: 各 一个
article
- 脱离语境,都是 完整独立的内容.
- 带 标题: 每个
<article>
,通常包括标题(<h1> - <h6>
元素)作为<article>
元素的 子元素。 - 内容相关: 当
<article>
元素 自嵌套使用时,则表示该元素 是与外层元素有关的 完整独立的内容。
- 知识拓展
- △ 点击查看【div,section,article 标签的 使用区别】
- ⑴ 语义:
div section article
,语义 是从无到有,逐渐增强的。 - ⑵ 作用:
- 样式化和脚本化:
div
无任何语义,仅仅用作 样式化或者脚本化; - 主题性 内容: 对于一段主题性的内容,则就适用
section
; - 完整独立的主题性 内容: 假如一段主题性内容 脱离上下文后 仍是完整且独立存在的一段内容,则就适用
article
。
- 样式化和脚本化:
2.5 ★ aside 侧栏 内容 (间接相关 内容,附属信息)
- 侧栏内容 (间接相关 内容): 如何定义 其所处 内容之外的内容 ?
- 使用
<aside>
侧栏标签 - 间接 相关:
<aside>
侧边栏 元素表示文档的一部分,其内容 仅与文档的主要内容 间接相关。 - 显示:
<aside>
的旁白 通常以 侧边栏 或标注框 的形式呈现。
- 使用
- 使用说明
<aside>
侧栏标签的内容 有什么要求 ?- ① 间接相关: 要与 附近的 内容相关。
- ② 不能用于 圆括号的文本: 不要使用
<aside>
元素 来标记圆括号化的文本,因为这种圆括号内的文本 被认为是 主流的一部分。
- 常用 说明
- ①
article
的 附属信息:- 在
article
元素中 作为 主要内容的 附属信息部分,其中的内容 可以是与当前内容 有关的 ❶ 相关的资料、❷ 名词解释 等.
- 在
- ② 整个文档的 附属信息:
- 在
article
元素之外 使用 , 作为页面或站点 整体的 附属信息部分。 - 侧边栏: 最典型的是 侧边栏,其中的内容 可以是 ❶ 友情链接, 博客中的 ❷ 其他的 文章列表、❸ 广告 等。
- 在
- ①
aside
标签的 浏览器支持- IE 9才开始支持,之前的版本 不支持
<aside>
标签。
- IE 9才开始支持,之前的版本 不支持
- 示例1: 侧边栏显示 间接相关的内容
<!DOCTYPE html>
<html>
<head>
<style>
body{
width: 600px;
}
aside {
width: 40%;
/*侧边栏的宽度 占比*/
padding-left: .5rem;
margin-left: .5rem;
float: right;
box-shadow: inset 5px 0 5px -5px #000;
/*侧边栏的阴影*/
font-style: italic;
/*侧边栏的字体样式*/
color: #229;
}
aside > p {
margin: .5rem;
}
p {
font-family: 'Fira Sans', sans-serif;
}
</style>
</head>
<body>
<p>蝾螈是一种 外形像蜥蜴的 两栖动物,包括 幼体和成体的短腿和尾巴。</p>
<aside>
<p>皮肤粗糙的蝾螈 用一种致命的神经毒素 来保护自己。</p>
</aside>
<p>几种蝾螈 生活在太平洋西北部的温带雨林中,包括 恩萨提纳蝾螈、西北蝾螈和皮肤粗糙的蝾螈。大多数蝾螈 都是夜行性动物,捕食昆虫、蠕虫和其他小动物。</p>
</body>
</html>
- 利用浮动,把侧边栏 显示在右边:
float: right;
- 知识拓展
rem
单位:(font size of the root element)是指 相对于 根元素的字体大小 的单位。是一个相对单位。- 计算: 根元素
font-size = 10px
>>>1rem =10px
- 成比例调整 (所有字体大小): 可以做到 只修改根元素就 成比例地调整所有字体大小,又可以 避免字体大小 逐层复合的连锁反应。
rem
单位的浏览器支持: 目前,除了IE8及更早版本外,所有浏览器均已支持rem
。
- 计算: 根元素
em
单位: (font size of the element)是指 相对于 父元素的字体大小 的单位。它们之间其实很相似,只不过一个计算的规则 是依赖根元素, 一个是依赖 父元素计算。
2.6 ★ details 描述细节
-
<details>
细节标签的 浏览器支持- Edge 和 IE 浏览器 都不支持
<details>
标签。
- Edge 和 IE 浏览器 都不支持
-
文档 详细信息(细节):
- 如何描述 文档或文档某个部分的 细节 (详细信息)?
<details>
细节标签- 开关 切换: 创建一个 公开小部件,其中信息 只有在小部件 切换到 “打开”状态 时才可见。
- 细节的 摘要或标签: 可以使用 摘要
<summary>
元素提供 摘要或标签 。
- 显示
- 细节 摘要 可见:
summary
标签的内容 作为摘要 是默认可见的 - 显示细节的 方式: 一个
<details>
小部件可以处于 两种状态之一。- ① 默认的 关闭状态(不可见):
- 只显示
<summary>
中的三角形和 摘要/标签 (如果没有<summary>
,则显示 用户代理 定义的 默认字符串)。- 默认情况下,关闭时小部件的高度 仅够显示 三角形和摘要。
- 打开时,它会展开 以显示 其中包含的 详细信息。
- 默认情况下, 何时会 显示出
<details>
细节标签的内容 ?- 点击时: 用户点击
<summary>
摘要 标签 时.
- 点击时: 用户点击
- 只显示
- ② 默认 打开状态(可见)
- 使用 details-
open="open"
- 使用 details-
- ① 默认的 关闭状态(不可见):
- 细节 摘要 可见:
- 如何描述 文档或文档某个部分的 细节 (详细信息)?
2.6.1 details 细节标签的 属性
⑴ open 属性: 默认细节 显示可见 (布尔属性)
<details>
细节标签的open
打开属性- 默认 显示可见(打开状态): 如何把
<details>
细节标签的内容,设置为是否是打开的 , 可见的 ?(不需要点击标题 就显示)- 使用
open
打开属性 - 这个details-
open
布尔属性 指示 细节(即元素的内容) 当前是否可见。- 缺省值
false
: 表示 细节不可见。
- 缺省值
- 使用
- 默认 显示可见(打开状态): 如何把
<details>
的open
打开显示 的属性值open="open"
- 示例1: 关于文档的细节:
<details>
<summary>Copyright 2011.</summary>
<p>All pages and graphics on this web site are the property of W3School.</p>
</details>
- 示例2: 默认可见的 详细信息:
<details open="open">
<summary>Copyright 2011.</summary>
<p>All pages and graphics on this web site are the property of W3School.</p>
</details>
- 示例3: 设置了样式的 细节内容和细节摘要
<!DOCTYPE html>
<html>
<head>
<style>
details {
border: 1px solid #aaa;/*设置 边框粗细 样式 颜色*/
border-radius: 5px;/*设置成圆角边框*/
padding: .5em .5em 0;/*设置内边距*/
}
summary {
font-weight: bold;/*细节标题的 字体粗细*/
margin: -.5em -.5em 0;
padding: .5em;
}
details[open] {
padding: .5em;
}
details[open] summary {
border-bottom: 1px solid #aaa;/*打开后 细节标题的下边框*/
margin-bottom: .5em;
}
</style>
</head>
<body>
<details>
<summary>Some Details</summary>
Something small enough to escape casual notice.
</details>
</body>
</html>
- 没设置样式的 和设置了 CSS样式的
- 嵌套关系
details > summary
<details>
<summary>
- 显示按钮: 三角形
- 打开和关闭: 三角形的常见用法是 旋转或扭转 来表示小部件的 打开或关闭
- 细节标题 默认值: 如果没有定义 细节标题
<summary>
,会默认显示 浏览器默认的- 360 和谷歌浏览器中显示为 “详细信息”.
- 360 和谷歌浏览器中显示为 “详细信息”.
- 示例4: 自定义 外观
- css
details{
width: 550px;
}
details > summary{
background-color: #ddd;
box-shadow: 3px 3px 4px black;
padding: 5px;
margin: 0;
}
details > p{
background-color: #ddd;
border-radius: 0 0 10px 10px;
padding: 5px;
margin: 10px 0;
box-shadow: 3px 3px 4px black;
}
- html
<!-- 细节信息 -->
<details>
<summary>Sublime Text 3 </summary>
<p>Sublime Text 是一个轻量、简洁、高效、跨平台的编辑器,方便的配色以及兼容vim快捷键等各种优点,它可跨平台支持 Windows/Mac/Linux;支持 32 与 64 位操作系统,它在支持语法高亮、代码补全、代码片段(Snippet)、代码折叠、行号显示、自定义皮肤、配色方案等 所有其它代码编辑器 所拥有的功能的同时,又保证了 其飞快的速度!</p>
</details>
- 细节内容的 展开方式
- 点击 三角按钮
- 点击
summary
的 标签内容
2.6.2 details 支持的事件: 切换 toggle 事件
- 切换
toggle
事件:- 除了元素支持的 常见事件之外,
<details>
元素 还支持 切换`toggle 事件 - 分派时机: 每当
<details>
元素的状态 在 打开 和 关闭 之间发生变化时,该事件 就会被 分派到<details>
元素。 - 发送时机: 它是在 状态更改之后 发送的,但是如果 在浏览器 可以调度事件之前 状态更改了多次,则将 事件合并 在一起,以便 只发送 一个事件。
- 除了元素支持的 常见事件之外,
- 示例1: 可以监听 切换
toggle
事件,以检测 小部件 何时更改状态:
details.addEventListener("toggle", event => {
if (details.open) {
/* the element was toggled open */
} else {
/* the element was toggled closed */
}
});
2.7 ★ summary 细节的 摘要/标签 (搭配 details 标签)
-
细节的 摘要/标签
- 如何描述 细节
details
元素的 摘要或标签 (summary or label ) ?- 使用
<summary>
摘要 标签
- 使用
- 如何描述 细节
-
细节信息: 如何描述有关 文档或文档片段的 详细信息 ?
- 使用
<details>
细节 标签
- 使用
-
限定 父元素
<summary>
摘要 标签,与<details>
细节 标签一起使用,作为它的子元素。details > summary
- 默认可见: 摘要/标签 是可见的
- 点击可见: 当用户 点击摘要时 会显示出详细信息。
- 切换状态单击
<summary>
元素 切换父元素<details>
元素的状态,打开和关闭。
- 切换状态单击
-
限定位置:
<summary>
摘要标签 只能用作<details>
细节 标签的第一个 子元素.
-
<summary>
元素的内容 :- 可以是 任何可以在段落中 使用的 标题内容、纯文本或HTML。
-
<summary>
细节摘要的 默认样式- 根据 HTML 规范,
<summary>
元素的默认样式 包括display: list-item
。 - 默认三角形: 这使得 更改或删除 标签旁边显示为 开关小部件的图标 成为可能,通常是 一个三角形。
- 删除 开关三角形: 可以将样式 更改为
display: block
以删除 三角形。
- 根据 HTML 规范,
-
summary
细节摘要的 浏览器支持- Edge 和 IE 不支持 细节摘要
summary
标签. - 细节摘要的属性
display:item
支持度 也很差.
- Edge 和 IE 不支持 细节摘要
2.8 ★ dialog 对话框 或 窗口 内容
<dialog>
对话框标签的 浏览器支持- 目前只有 Chrome 和 Safari 6 支持
<dialog>
标签。 - 360 也支持,支持的浏览器 比较少,不要使用
- 目前只有 Chrome 和 Safari 6 支持
- 对话框 / 交互式 组件:
- 如何定义 对话框 或 窗口 ?
- 使用
<dialog>
对话框标签 - 对话框 / 交互式 组件:
<dialog>
元素 表示一个 对话框 或 其他 交互式组件,例如一个 检查器或者 窗口。
- 使用
- 如何定义 对话框 或 窗口 ?
<dialog>
对话框标签的open
打开属性open="open"
- ① 对话框(交互组件) 可见: 指示 这个对话框是 激活的 和 能互动的。
- 当这个
open
特性 没有被设置,对话框 不显示给用户。 - 不设置
open
属性,对话框 用户就不可见.设置了 才能看见.
- 当这个
- ② 用户 交互: 规定
dialog
元素是 活动的,可见了, 用户就能 与之交互。
<dialog>
对话框 标签的属性- 包含了 全局属性。但是
tabindex
特性 不能被使用在dialog
元素上。 tabindex
: 整数 属性,指示元素是否 可以 获取输入焦点(可聚焦),是否应该参与 顺序 键盘导航,如果是,则表示 哪个位置。
- 包含了 全局属性。但是
- 示例1: 使用
<dialog>
对话框 元素:
<table border="1">
<tr>
<th>一月 <dialog open>这是打开的对话窗口</dialog></th>
<th>二月</th>
<th>三月</th>
</tr>
<tr>
<td>31</td>
<td>28</td>
<td>31</td>
</tr>
</table>
- 示例2: 在单击“更新详细信息”
"Update details"
按钮时 打开一个 包含表单的 弹出对话框。 - html
- 嵌套关系
body > ( dialog | menu | output)
- ①
dialog > ( form > p | menu )
- ❶
p > label > select > option*4
三个选择项 - ❷
menu > button*2
取消 确认
- ❶
- ②
menu > button
更新信息 按钮 - ③
output
输出文本
- ①
<!-- Simple pop-up dialog box containing a form -->
<dialog id="favDialog">
<form method="dialog">
<p>
<label>Favorite animal:
<select>
<option></option>
<option>Brine shrimp</option>
<option>Red panda</option>
<option>Spider monkey</option>
</select>
</label>
</p>
<menu>
<button value="cancel">Cancel</button>
<button id="confirmBtn" value="default">Confirm</button>
</menu>
</form>
</dialog>
<menu>
<button id="updateDetails">Update details</button>
</menu>
<output aria-live="polite"></output>
- js
(function() {
var updateButton = document.getElementById('updateDetails');
var favDialog = document.getElementById('favDialog');
var outputBox = document.getElementsByTagName('output')[0];
var selectEl = document.getElementsByTagName('select')[0];
var confirmBtn = document.getElementById('confirmBtn');
// “Update details” button opens the <dialog> modally
updateButton.addEventListener('click', function onOpen() {
if (typeof favDialog.showModal === "function") {
favDialog.showModal();
} else {
alert("The dialog API is not supported by this browser");
}
});
// "Favorite animal" input sets the value of the submit button
selectEl.addEventListener('change', function onSelect(e) {
confirmBtn.value = selectEl.value;
});
// "Confirm" button of form triggers "close" on dialog because of [method="dialog"]
favDialog.addEventListener('close', function onClose() {
outputBox.value = favDialog.returnValue + " button clicked - " + (new Date()).toString();
});
})();
结束语
- 捐助: 喜欢这篇文章吗? 持续更新中,捐助此文,向团团 表示鼓励和支持吧~❤
- 捐助二维码:
- 参考文档
- 感谢:♥♥♥ 如果这篇文章 对您有帮助的话,可以点赞、评论、关注,鼓励下作者哦,感谢阅读 ~
- 欢迎指正: 如果发现 有需要 更正的细节问题,欢迎指正,谢谢大家 ~╮( ̄▽ ̄)╭
- 转载 请注明出处 ,Thanks♪(・ω・)ノ
- 作者:Hey_Coder
- 来源:CSDN
- 原文:https://blog.csdn.net/VickyTsai/article/details/89436956
- 版权声明:本文为博主原创文章,转载请附上博文链接!