构建页面

课后整理 2021-3-2

高效网页的核心是结构良好、语义化的HTML。下面就来具体介绍如何构建本章案例的具体结构,操作步骤如下。

第1步,恰当地使用article、aside、nav、section、header、footer 和div 等元素将页面划分成不同的逻辑区块。本例创建了一个虚构博客,页面结构要点说明如下:

第2步,按照一定的顺序放置内容,确保页面在不使用CSS 的情况下也是合理的。例如,首先是报头,接着是主体内容,然后是一个或多个附注栏,最后是页面级的页脚。将最重要的内容放在最上面,对于智能手机和平板电脑等小屏幕用户来说,不用滚动太远就能获取主体内容。此外,搜索引擎“看到”的页面也类似于未应用CSS的页面,因此,如果将主体内容提前,搜索引擎就能更好地对网站进行索引。这同样也会让屏幕阅读器用户受益。

第3步,以一致的方式使用标题元素(h1~h6),从而明确地标识页面上这些区块的信息,并对它们按优先级排序。

第4步,使用合适的语义标记剩余的内容,如段落、图和列表。

第5步,如果有必要,使用注释来标识页面上不同的区域及其内容。根据个人习惯,选用一种不同的注释格式标记区块的开始(而非结束)。

页面基本框架结构代码如下所示。

<div class="page"> 
    <!-- ==== 开始报头 ==== -->
    <header class="masthead" role="banner">
        <p class="logo"><a href="/"><img /></a></p>
        <ul class="social-sites">[社交图片链接]</ul>
        <nav role="navigation">[主导航链接列表]</nav>
    </header>
    <!-- 结束报头 -->
    <div class="container"> 
        <!-- ==== 开始主体内容 ==== -->
        <main role="main">
            <section class="post">
                <h1>[文章标题]</h1>
                <img  class="post-photo-full" />
                <div class="post-blurb">
                    <p>[正文内容]</p>
                </div>
                <footer class="footer">[博客条目页脚]</footer>
            </section>
            <section class="post">
                <h1>[文章标题]</h1>
                <img  class="post-photo" />
                <div class="post-blurb">
                    <p>[正文内容]</p>
                </div>
                <footer class="footer">[博客条目页脚]</footer>
            </section>
            <nav role="navigation">
                <ol class="pagination">[链接列表项]</ol>
            </nav>
        </main>
        <!-- 结束主体内容 --> 
        <!-- ==== 开始附注栏 ==== -->
        <div class="sidebar">
            <article class="about">
                <h2>关于自己</h2>
            </article>
            <div class="mod">
                <h2>我的经历</h2>
                ... [映射图像] ... </div>
            <aside class="mod">
                <h2>热门职位</h2>
                <ul class="links">[链接列表项]</ul>
            </aside>
            <aside class="mod">
                <h2>最近分享</h2>
                <ul class="links">[链接列表项]</ul>
            </aside>
        </div>
        <!-- 结束附注栏 --> 
    </div>
    <!-- 结束容器 --> 
    <!-- ==== 开始页脚 ==== -->
    <footer role="contentinfo" class="footer">
        <p class="legal"><small>[版权信息]</small></p>
    </footer>
    <!-- 结束页脚 --> 
</div>
<!-- 结束页面 -->

在上面结构中,使用section元素来标记每个包含部分博文的条目。如果它们是完整的博文条目,就应该使用article来标记它们,例如,在单独的、完整的博客文章页内。对它们使用article 替代section 也可以,只要代表这一段代码可以成为独立的内容。

第6步,保存文档,在浏览器中预览,则显示效果如图17.1所示,除了浏览器默认样式以外并没有设置其他样式。这个页面是一栏的。由于它的语义结构非常好,页面是完全可用,且可理解的,只是有一点朴素。

图1 页面结构默认显示效果

【注意】

不一定要在应用CSS 之前就标记好整个页面。实践中,很少先将一个区块的HTML 写好,再为其编写一些或全部的CSS,然后再对下一个区块重复这一过程。处理方式取决于个人习惯。