0

0

第 31 章 项目实战-PC端固定布局[2]

php中文网

php中文网

发布时间:2016-05-26 08:19:45

|

1625人浏览过

|

来源于php中文网

原创

学习要点:

1.大纲算法 

2.section和div 

3.结构分析

主讲教师:李炎恢

 

本章主要开始使用学习用HTML5和CSS3来构建Web页面,第一个项目采用PC端 固定布局来实现。

一.大纲算法 

在HTML5中有一个很重要的概念,叫做HTML5大纲算法(HTML5Outliner),它的用途是为用户提供一份页面的信息结构目录。比如我们经常使用的手册就是一个非常好的大纲 结构:

合理的使用HTML5元素标签,可以生成一个非常清晰的文档大纲,我们可以通过各种 工具去查看当前页面,比如谷歌和火狐的插件可以查看当前的HTML5大纲。这里我们推荐 使用一个服务器端的测试工具:HTML 5 Outliner,网址如下:

测试工具:https://gsnedders.html5.org/outliner/    

这个工具可以上传本地html文件,也可以填写URL,或者直接在多行文本框上编写HTML5代码均可了解大纲。

通过我们将上一节课的代码编写,发现这个页面的大纲非常的难看,出现三个Untitled Section,这个意思表示页面此处缺少大纲标题,不规范。如果你的页面在这里测试,大纲都比较清晰,那么HTML5页面是比较规范的。

//大纲目录结构

1.UntitledSection 

  1.UntitledSection

    1.瓢城旅行社 

  2.UntitledSection

二.section和div 

首先,我们暂不探讨怎么让html5页面大纲合乎规范。先探讨一下section和div的区别。

div元素在html5之前就是非常常用的标签,它本身没有任何语义,用来页面布局和 CSS样式以及JS调用。那么,div的用途已经说的很清楚了:

1.如果是页面布局,且不是header、footer之类的专属区域,都应该使用div; 

2.如果只是单纯的对一个端内容进行CSS样式定义,那么也应该使用div; 

3.如果想对一段内容进行JS控制,那么也应该使用div。

html5中,section并不是用来取代div的。在基础课程中已经简单的了解过,它是具有语义的文档标签。表示一段文档中的章节,比如包含一个标题和一个段落,而大纲规范 中,至少要包含一个标题。

//section至少需要一个h1~h6

<section>
    <h2>Bootstraph2>
    <p>Bootstrap是一款html5开源框架p>
section>

通过上诉说明,我们对于下方的section标签,增加一个h2即可实现大纲要求。最终 大纲变成如下结构:

AI大学堂
AI大学堂

科大讯飞打造的AI学习平台

下载

//大纲目录结构

1.UntitledSection 

  1.UntitledSection

    1.瓢城旅行社 

  2.波特四抓

那么发现最后一个UntitledSection已经拥有了标题,已经符合规范。对于前面还 有两个,待会儿再说。现在再探讨一个问题,既然div用于没有任何语义的布局和样式定  义,那么我们就需要探讨一下如下代码用div还是section。

//这里改用section还是div呢?

<section class="center">
    <h1 class="logo"> 瓢城旅行社h1>
    <ul class="link">
        <li class="active">
            <a href="###"> 首页a>
        li>
        <li>
            <a href="###"> 旅游资讯a>
        li>
        <li>
            <a href="###"> 机票订购a>
        li>
        <li>
            <a href="###"> 风景欣赏a>
        li>
        <li>
            <a href="###">公司简介a>
        li>
    ul>
section>

从结构上来看,section需要包含至少一个h1~h6,这里是符合的。但容易混淆的 部分是,section是某个区域章节的标题,h1其实是整个网站的标题。而ul部分是导航超 链接,严格来讲,也不算章节的内容。最重要的是这块的section用于的布局样式定义, 所以我个人认为这里使用div更加妥当一些。

注:section本身使用频率并不是很高,而section并不是代替div的元素。 

//比较合理的做法

<div class="center">
    <h1 class="logo">瓢城旅行社h1>
    <ul class="link">
        <li class="active">
            <a href="###">首页a>
        li>
        <li>
            <a href="###">旅游资讯a>
        li>
        <li>
            <a href="###">机票订购a>
        li>
        <li>
            <a href="###">风景欣赏a>
        li>
        <li>
            <a href="###">公司简介a>
        li>
    ul>
div>

这里大纲进行了一个很有趣的变化,如下:

//改变后的大纲

1.UntitledSection 

  1.瓢城旅行社 

  2.波特四抓

通过目前的大纲,我们可以了解到,还剩一个标题就可以实现完美大纲。这个剩下的标 题是哪个元素下的呢?答案是:body元素。我们只要在body元素下创建一个h1,写上标 题名称,即可。

//增加body标题,解决大纲问题

<body> 
    <h1>Body大标题h1>
     ...
body>

虽然在body增加标题解决了大纲问题,但问题是我们本身页面设计根本不需要在body 创建一个h1啊。难道创建后,再隐藏这种多此一举的方法吗?这个问题,稍后再看,先再 探讨一下头部的结构问题。

三.结构分析 

首先,探讨一下nav元素。这个元素本质上是用来存放一组作为导航的链接,比如ul。

我们第一节课,把整个头部全部存放进去,显得不是特别合理,所以,最好在ul的外围。  而LOGO+导航,我们可以理解为header头部,所以,最终改写成如下结构:

//头部元素换成了header,nav元素只包含ul

<header id="header">
    <div class="center">
        <h1 class="logo">瓢城旅行社h1>
        <nav class="link">
            <ul>
                <li class="active">
                    <a href="###">首页a>
                li>
                <li>
                    <a href="###">旅游资讯a>
                li>
                <li>
                    <a href="###">机票订购a>
                li>
                <li>
                    <a href="###">风景欣赏a>
                li>
                <li>
                    <a href="###">公司简介a>
                li>
            ul>
        nav>
    div>
header>

在去掉

...

的情况下,我们发现,这种结构的主标题大纲居 然是:瓢城旅行社。而

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 序列化
Python 序列化

本专题整合了python序列化、反序列化相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.02

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

91

2026.02.02

主流快递单号查询入口 实时物流进度一站式追踪专题
主流快递单号查询入口 实时物流进度一站式追踪专题

本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。

27

2026.02.02

Golang WebAssembly(WASM)开发入门
Golang WebAssembly(WASM)开发入门

本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。

11

2026.02.02

PHP Swoole 高性能服务开发
PHP Swoole 高性能服务开发

本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。

5

2026.02.02

Java JNI 与本地代码交互实战
Java JNI 与本地代码交互实战

本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。

5

2026.02.02

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

62

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

55

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

27

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号