Skip to content

页面结构

语义标签

HTML 标签都有具体语义,非然技术上可以使用 div 标签表示大部分内容,但选择清晰的语义标签更容易让人看明白。比如 h1表示标题、p标签表示内容、强调内容使用em标签。

<article>
	<h1>斑马兽</h1>
	<p>百度</p>
</article>

嵌套关系

元素可以互相嵌套包裹,即元素存在父子级关系。

<article>
  <h1>斑马兽</h1>
  <div>
    <p>百度</p>
    <span>banmashou.com</span>
  </div>
</article>

基本结构

下面是 HTML 文档的基本组成部分

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta name="keyword" content="Mysql,Laravel,Javascript,HTML,CSS,ES6,TYPESCRIPT,斑马兽" />
    <meta name="description" content="斑马兽" />
    <title>斑马兽</title>
</head>
<body>

</body>
</html>
标签说明
DOCTYPE声明为 HTML 文档
htmllang:网页的语言,如 en/zh 等,非必选项目
head文档说明部分,对搜索引擎提供信息或加载 CSS、JS 等
title网页标题
keyword向搜索引擎说明你的网页的关键词
description向搜索引擎描述网页内容的摘要信息
body页面主体内容

内容标题

标题使用 h1 ~ h6 来定义,用于突出显示文档内容。

  • 从 h1 到 h6 对搜索引擎来说权重会越来越小
  • 页面中最好只有一个 h1 标签
  • 标题最好不要嵌套如 h1 内部包含 h2

下面是使用默认样式的标题效果,掌握 CSS 后我们就可以随意美化了。

<h1>斑马兽</h1>
<h2>banmashou.com</h2>
<h3>baidu.com</h3>
<h4>taobao.com</h4>
<h5>mi.com</h5>
<h6>qq.com</h6>

页眉页脚

header 标签用于定义文档的页眉,下图中的红色区域都可以使用header标签构建。

<body>
    <header>
        <nav>
            <ul>
                <li><a href="">百度</a></li>
                <li><a href="">淘宝</a></li>
            </ul>
        </nav>
    </header>
    <article>
        <h2>斑马兽</h2>
        <ul>
            <li><a href="">小米</a></li>
            <li><a href="">腾讯</a></li>
        </ul>
    </article>
   	...
</body>

footer 标签定义文档或节的页脚,页脚通常包含文档的作者、版权信息、使用条款链接、联系信息等等。

<body>
    ...
    <article>
        <h2>斑马兽</h2>
        <ul>
            <li><a href="">小米</a></li>
            <li><a href="">腾讯</a></li>
        </ul>
    </article>
    <footer>
        <p>
            探索黑科技,小米为发烧而生
        </p>
    </footer>
</body>

导航元素

在 HTML 中使用nav设置导航链接。

<header>
        <nav>
            <ul>
                <li>
                    <a href="">小米</a>
                </li>
                <li>
                    <a href="">淘宝</a>
                </li>
            </ul>
        </nav>
</header>

主要区域

HTML5 中使用 main 标签表示页面主要区域,一个页面中main元素最好只出现一次。

<body>
		...
    <main>
        <article>
            <h2>斑马兽</h2>
            <ul>
                <li><a href="">小米</a></li>
                <li><a href="">淘宝</a></li>
            </ul>
        </article>
    </main>
    ...
</body>

内容区域

使用 article 标签规定独立的自包含内容区域。不要被单词的表面意义所局限,article 标签表示一个独立的内容容器。

<main>
	<article>
    <h2>斑马兽</h2>
    <ul>
      <li><a href="">小米</a></li>
      <li><a href="">淘宝</a></li>
    </ul>
	</article>
</main>

区块定义

使用 section 定义一个区块,一般是一组相似内容的排列组合。

<main>
   <article>
     <section>
       <h2>斑马兽</h2>
     </section>
     <section>
      <h2>小米</h2>
     </section>
   </article>
</main>

附加区域

使用 aside 用于设置与主要区域无关的内容,比如侧面栏的广告等。

<body>
  <main>
    <article>
      ...
    </article>
    </main>
    <aside>
      <h2>广告</h2>
      <p>图片</p>
    </aside>
  </main>
</body>

通用容器

div 通用容器标签是较早出现的,也是被大多数程序员使用最多的容器。不过我们应该更倾向于使用有语义的标签如article/section/aside/nav 等。

有些区域这些有语义的容器不好表达,这时可以采用div容器,比如轮播图效果中的内容。

<div>
  <header>
    <nav>
      <ul>
        <li><a href="">斑马兽</a></li>
        <li><a href="">小米</a></li>
      </ul>
    </nav>
  </header>

  <main>
    <article>
      <section>
        <h2>淘宝</h2>
      </section>
    </article>
    <aside>
      <h2>广告</h2>
      <p>这里放图片</p>
    </aside>
  </main>

  <footer>
    <p>
    底部栏
    </p>
  </footer>
</div>