【样式标签 & 节标签】


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.
titletext指定 可选 样式表 的 样式名称
scoped布尔属性适用范围 , 已废弃 . 当 <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 文档中 几乎没有必要包含 这个属性。

  • 示例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 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>元素本身 并不表示 任何东西。
    • 给文档内容 分组:
      • 设置 样式: 用于 对内容 进行分组,因此可以轻松地 使用 类classid 属性 设置样式
      • 设置 语言: 将文档的一部分 标记为 使用 不同的语言 编写 (使用 lang 属性)。
    • 优先级最低的 容器:
      • 使用前提: 只有在 不适合使用其他 语义容器元素(如 <article><nav> )的情况下,才应 使用 <div> 元素。
      • 无语义 容器: 使用标签,应该尽量 语义化,有助于浏览器, 作为一个没有语义的容器,<div>的优先级是最低的,低于其他 有语义的容器标签.
      • 默认 无样式: 它对内容或布局 没有影响,没有样式,直到使用 CSS 样式 进行设置。
  • 块级 元素

    • <div> 是一个 块级元素吗 ?
      • 是的
    • 什么是 块级元素 ?
      • 独占 一行: 块级元素的内容 会自动地开始一个新行。
      • 元素前后 换行: 浏览器 会在块级元素的前后 放置一个换行符,让 <div> 分区标签的内容,前后会 进行换行.
  • 应用样式

    • 设置样式: 如何给<div> 分区标签 添加样式 ?
      • 通过 <div>classid ,配合 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> 行内分区 标签 应用idclass 属性
    • 默认样式

      • <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> 元素。
  • <header>页眉 标签的父元素:

    • 任何接受 flow content 的元素。
    • 禁止的 父元素:<header> ,不能是 <address>、<footer> 或另一个 <header>元素的子元素。(为什么呢 ?)
  • <header>页眉标签的 浏览器支持

    • IE 8 以及 更早的版本 不支持 <header> 标签。
    • 在这里插入图片描述

  • 示例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>
<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> 标签
    • 在这里插入图片描述

  • 示例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>区段标签中。
  • 使用提醒

    • 使用选择: 如果元素的内容 主题性内容,而且可以作为 完整单独的部分,那么<article>文章 元素可能是更好的选择(就像文章的 一稿多投)
    • 不作为 普通容器: 不要把 <section>元素作为 一个普通的容器来使用,这是本应该是<div>的用法(特别是当片段(the sectioning )仅仅 是为了美化样式的时候)。
  • 使用场合:

    • ① 文章的 章节
    • ② 标签对话框中的 标签页
    • ③ 论文中 有编号的部分 等。
    • (都是 很有主题性的 分区(节))
  • △ 点击查看【div,section,article 标签的 使用区别】

  • section 标签的 浏览器支持

    • IE 9 才开始支持,之前的版本 不支持.
    • 在这里插入图片描述

  • <section>区段 标签的 cite引用属性
属性名属性值用于
citeURL主题性内容 的 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> 标签。
    • 在这里插入图片描述

  • 示例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> 标签。
    • 在这里插入图片描述
  • 文档 详细信息(细节):

    • 如何描述 文档或文档某个部分的 细节 (详细信息)?
      • <details> 细节标签
      • 开关 切换: 创建一个 公开小部件,其中信息 只有在小部件 切换到 “打开”状态 时才可见。
      • 细节的 摘要或标签: 可以使用 摘要<summary>元素提供 摘要或标签 。
    • 显示
      • 细节 摘要 可见: summary 标签的内容 作为摘要 是默认可见的
      • 显示细节的 方式: 一个<details>小部件可以处于 两种状态之一。
        • 默认的 关闭状态(不可见):
          • 只显示<summary>中的三角形和 摘要/标签 (如果没有<summary>,则显示 用户代理 定义的 默认字符串)。
            • 默认情况下,关闭时小部件的高度 仅够显示 三角形和摘要。
            • 打开时,它会展开 以显示 其中包含的 详细信息。
          • 默认情况下, 何时会 显示出 <details>细节标签的内容 ?
            • 点击时: 用户点击<summary> 摘要 标签 时.
        • 默认 打开状态(可见)
          • 使用 details-open="open"

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 和谷歌浏览器中显示为 “详细信息”.
      在这里插入图片描述

  • 示例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以删除 三角形。
  • summary 细节摘要的 浏览器支持

    • Edge 和 IE 不支持 细节摘要summary 标签.
    • 细节摘要的属性 display:item 支持度 也很差.
    • 在这里插入图片描述

2.8 ★ dialog 对话框 或 窗口 内容

  • <dialog>对话框标签的 浏览器支持
    • 目前只有 Chrome 和 Safari 6 支持 <dialog> 标签。
    • 360 也支持,支持的浏览器 比较少,不要使用
      在这里插入图片描述
  • 对话框 / 交互式 组件:
    • 如何定义 对话框 或 窗口 ?
      • 使用<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
    • 版权声明:本文为博主原创文章,转载请附上博文链接!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值