HTML5语义化,你了解多少?

一、介绍

很多时候我们写HTML,为了方便都会直接使用div和span标签,再通过class来确定具体样式。网站哪—部分为标题,哪一部分为导航,哪—部分为头部和底部,都只能通过class进行确定。

但class命名规范却又没有一套统一的标准,因此导致很多时候无法确定整体网站的结构。

因此,在HTML5出现后,添加了关于页面布局结构的新标签。而在HTML书写过程中,根据不同的内容使用合适的标签进行开发,即为语义化。

在编程中,语义指的是一段代码的含义(这个HTML的元素有什么作用,扮演了什么样的角色)。HTML语义元素清楚地向浏览器和开发者描述其意义,例如<form> 、<table> 以及<img>等。

二、优点

对搜索引擎友好,有了良好的结构和语义,网页内容自然容易被搜索引擎抓取。

三、为什么要语义化

1、其他开发者便于阅读代码,通过不同标签明白每个模块的作用何区别;

2、结构明确、语义清晰的页面能有更好的用户体验,在样式(css)没有加载前也有较为明确的结构,更如img这一类的,在图片无法加载的情况下有alt标签告知用户此处图片的具体内容;

3、利于SEO,语义化便于搜索引擎爬虫理解,和搜索引擎建立良好的沟通,能让爬虫爬去更多关键有效的信息;

4、方便其他设备阅读(如屏幕阅读器,盲人设备和移动设备等)。

四、html5新增语义元素以及使用

1、header:标签定义“网页”或“section”的页眉。通常包含h1-h6元素或hgroup,作为整个页面或者一个内容块的标题。也可以包裹一节的目录部分,一个搜索框,一个nav,或者任何相关logo。

<!DOCTYPE html>
<html>
<body>

<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>

</body>
</html>

在这里插入图片描述
2、footer标签:代表“网页”或“section”的页脚。通常含有该节的一些基本信息,如:作者,相关文档链接,版权资料。如果footer元素包含了整个节,那么它们就代表附录,索引,提拔,许可协议,标签,类别等一些其他类似信息。

<!DOCTYPE html>
<html>
<body>

<footer>
  作者:xxx<br>
  Copyright&copyxxx.rights
</footer>

</body>
</html>

在这里插入图片描述
3、<section> 标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。

<!DOCTYPE html>
<html>
<body>

<section>
<h1>xxx</h1>
<p>
xxxxx
</p>
</section>

<section>
<h1>xxx</h1>
<p>
xxxxxx
</p>
</section>

</body>
</html>

在这里插入图片描述
4、article 定义文章。 标签规定独立的自包含内容。

一篇文章应有其自身的意义,应该有可能独立于站点的其余部分对其进行分发。

article 元素的潜在来源:论坛帖子、报纸文章、博客条目、用户评论

<!DOCTYPE html>
<html>
<body>

<article>
  <h1>xxx</h1>
  <p>哈哈哈哈哈哈啊哈哈哈哈哈哈</p>
</article>

</body>
</html>

在这里插入图片描述
5、aside定义页面内容之外的内容。标签定义其所处内容之外的内容。
aside 的内容应该与附近的内容相关。
aside标签:表示当前页面或文章的附属信息部分,可包含于当前页面或主要内容相关的引用、侧边栏、广告、导航条、以及其他类似的有别于主要内容的部分。

1)用于article标签之内,此时表示的是该独立内容的附属信息部分;

<article>
	<p>article内容区</p>
	<aside>
		<span>附属信息1</span>
		<span>附属信息2</span>
		<span>附属信息3</span>
	</aside>
</article>

2)用于article标签之外,此时作为页面或站点全局的附属信息部分。

<aside>
	<h1>附属信息标题</h1>
	<a href="#">附属信息...</a>
	<a href="#">附属信息...</a>
	<a href="#">附属信息...</a>
</aside>

6、details定义元素的细节。用于描述文档或文档某个部分的细节。

<!DOCTYPE HTML>
<html>
<body>

<details>
<summary>嘻嘻嘻嘻嘻嘻嘻</summary>
<p>哈哈哈哈哈哈啊哈哈哈哈哈哈</p>
</details>

</body>
</html>

在这里插入图片描述
7、summary为 details元素定义可见的标题。标签包含 details 元素的标题,“details” 元素用于描述有关文档或文档片段的详细信息。

8、nav 标签定义导航链接的部分
用在整个页面主要导航部分上,不合适就不要用nav元素;可用作页面导航的链接组,并不是所有的链接组都要放进nav元素中,只需将主要、基本的链接组放进其中;

注意:例如,在页脚中通过会有一组链接,包括服务条款,首页,版权声明等,使用footer元素是最恰当的。

具体用途:传统导航条、侧边栏导航、业内导航、翻页操作等

<!DOCTYPE html>
<html>
<body>

<nav>
<a href="/html/">HTML</a> |
<a href="/css/">CSS</a> |
<a href="/js/">JavaScript</a> |
<a href="/jquery/">jQuery</a>
</nav>

</body>
</html>

在这里插入图片描述
9、datalist 标签定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。

datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。

请使用 input 元素的 list 属性来绑定 datalist。

<!DOCTYPE HTML>
<html>
<body>

<input list="cars" />
<datalist id="cars">
	<option value="BMW">
	<option value="Ford">
	<option value="Volvo">
</datalist>

</body>
</html>

在这里插入图片描述
10、mark 标签定义带有记号的文本。请在需要突出显示文本时使用 <m >标签。

<!DOCTYPE HTML>
<html>
<body>

<p>Do not forget to buy <mark>milk</mark> today.</p>

</body>
</html>

在这里插入图片描述

五、来一个综合案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>语义化结构标签</title>
    <style type="text/css">
    header {
     
     
        height: 50px;
        line-height: 50px;
        background-color: pink;
    }

    header span {
     
     
        height: 20px;
        font-size: 20px;
    }

    header span,div,nav {
     
     
        float: left;
        margin-left: 40px;
    }

    section {
     
     
        position: relative;
        margin-top: 30px;
        height: 200px;
        background-color: powderblue;
    }

    hgroup {
     
     
        position: absolute;
        right: 500px;
        background-color: rebeccapurple;
    }

    aside {
     
     
        display: flex;
        flex-direction: column;
        position: absolute;
        left: 0;
        background-color: rosybrown;
    }

    article {
     
     
        position: absolute;
        bottom: 0;
        width: 100%;
        background-color: saddlebrown;
    }

    footer {
     
     
        height: 50px;
        background: #abcdef;
        line-height: 50px;
        text-align: center;
        font-size: 24px;
        font-weight: bold;
        color: #696969;
    }
    </style>
</head>
<body>
    <header>
        <span>头部标签</span>
        <div>Logo</div>
        <!-- 导航条 -->
        <nav>
            <a href="index.html">首页</a>
            <a href="#">介绍</a>
            <a href="#">案例</a>
            <a href="#">链接</a>
            <a href="#">关于</a>
        </nav>
    </header>

    <!-- 定义块状区域 -->
    <section>
        <!-- 用于包裹标题标签,可以直观了解到这是一个标题集合 -->
        <hgroup>
            <h1>哈哈哈哈哈哈哈</h1>
            <h3>哈哈哈哈哈哈哈</h3>
            <h4>哈哈哈哈啊哈哈哈……</h4>
        </hgroup>
        <!-- 可以用于文章侧栏目 -->
        <aside>
            <a href="#se1">Section One</a>
            <a href="#se2">Section Two</a>
            <a href="#se3">Section Three</a>
        </aside>
        <!-- 文章 -->
        <article>
            文章内容区域
        </article>
    </section>
    <section>
        <!-- 多媒体并可附带标题 -->
        <figure>
            <figcaption>标题</figcaption>
            <div class="video">...</div>
        </figure>
    </section>
    <section>
        <!-- 用于下拉框 -->
        <input type="text" list="car">
        <datalist id="car">
            <option value="bmw">
            <option value="ford">
            <option value="volvo">
        </datalist>
    </section>
    <footer>
        用于尾部,Copyright,,,,,
    </footer>
</body>
</html>

在这里插入图片描述

本篇博客是自己学习笔记的整理,仅供学习交流,切勿用于商业用途,如有侵权,请联系博主删除,博主QQ:1105810790

猜你喜欢

转载自blog.csdn.net/qq_41880073/article/details/114661459