用合理的HTML标记以及特有的属性去格式化文档内容。

浏览器会根据标签的语义给定一个默认的样式。

判断网页标签语义是否良好的一个简单方法就是:去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。语义良好的网页去掉样式后结构依然很清晰。

一个语义良好的页面,h标签应该是完整有序没有断层的。

标题与内容

标题和内容模块如下图所示。

这种标题配内容的模块。我们可以用如下几种方案来实现同样的效果

方案一

<div class="h2">标签的语义<a href="#">更多 &gt;&gt;</a></div>
<div class="p">
HTML才是最重要的...修饰结构的。<span class="strong">正确地做法是先确定HTML</span>,确定语义化的标签,再来选用合适的CSS
</div>
<div class="p">
判断网页标...简单方法就是:<span class="strong">去掉样式</span>,看网页结构是否组...结构依然很清晰。一个语义良好的页面,<span class="strong">h标签应...有断层的</span>。
</div>
.h2 { position: relative; border-bottom: 1px dashed #222; }
.h2 a { position: absolute; right: 0; top: 0; }
.p { text-indent: 2em; line-height: 150%; margin-top: 20px; }
.strong { color: red; }

视觉效果达到了,再来看看它的语义吧。我们只能看到‘分隔’ div、‘范围’span这样的无语义标签,从标签上看不出结构的逻辑。这显然是不行的,我们需要用标签代码能够清晰地透露出“标题”,“内容”,“被强调的文本”等信息。

方案二

<h2>标签的语义<a href="#">更多 &gt;&gt;</a></h2>
<p>HTML才是最...来修饰结构的。<strong>正确地做法是先确定HTML</strong>,确定语义化的标签,再来选用合适的CSS</p>
<p>判断网页标签语...简单方法就是:<strong>去掉样式</strong>
一个语义良好的页面,<strong>h标签应该是完整有序没有断层的</strong>。</p>
h2 { position: relative; border-bottom: 1px dashed #222; }
h2 a { position: absolute; right: 0; top: 0; }
p { text-indent: 2em; line-height: 150%; margin-top: 20px; }
strong { color: red; }

方案二大有改进,从标签中能清楚地看到标题和内容的划分,也能看到“根据浏览器的默认样式”被强调了。但还有要改进的地方<h2>标签的语义<a href="#">更多 &gt;&gt;</a></h2>,更多信息它不应属于二级标题的,虽然视觉上它和“标签语义”是放在同一行的,但事实上它并不属于标题!让我们再改进一下。

方案三

<h2>标签的语义</h2>
<a href="#">更多 &gt;&gt;</a>
<p>HTML才是最...来修饰结构的。<strong>正确地做法是先确定HTML</strong>,确定语义化的标签,再来选用合适的CSS</p>
<p>判断网页标签语...简单方法就是:<strong>去掉样式</strong>
一个语义良好的页面,<strong>h标签应该是完整有序没有断层的</strong>。</p>

此时语义是不错了,但根据方案三的HTML结构,我们很难通过CSS完成设计图中的设计。于是要借助无语义化的div和span了。

<div class="header">
<h2>标签的语义</h2>
<a href="#">更多 &gt;&gt;</a></div>
<p>HTML才是最...来修饰结构的。<strong>正确地做法是先确定HTML</strong>,确定语义化的标签,再来选用合适的CSS</p>
<p>判断网页标签语...简单方法就是:<strong>去掉样式</strong>
一个语义良好的页面,<strong>h标签应该是完整有序没有断层的</strong>。</p>

添加适当的无语义标签div和span,这样我们的代码既精简,语义又清晰。这里需要特别说明的是,当页面内标签无法满足设计需要时,才适当添加div和span等无语义标签来辅助实现。

语义化标签应注意的其他问题

1. 尽可能少地使用无语义化标签div和span

2. 在语义不明显,既可以用p也可以用div的地方,尽量用p,因为p默认情况下有上下间距,去样式后的可读性更好,对兼容特殊终端有利;

3. 语义上需要强调的文本可以包在strong或em标签里,strong和em有”强调”的语义,其中strong的默认样式是加粗,而em的默认样式是斜体。

更新2013-08-12

为什么要语义化

1. 手持移动设备的无障碍阅读

手持移动设备可能对CSS的解析能力较弱,这时可能就需要更语义化的标签来体现一个页面的易读性

2. 搜索引擎的友好收录

蜘蛛爬行能够根据标签的使用来确定上下和各关键字的权重

3. 盲人等一些障碍人士的更好地阅读

4. 技术趋势所需

正如HTML初衷那样,各个标签的本义就是希望在特定的地方使用合适的标签,而不是去用样式来表现一个不语义的标签。

5. 便于团队醒目的可持续运用及维护

语义化的命名能够使我们在多人协作一个项目时更加有序和快捷。

HTML语义化之常见模块的更多相关文章

  1. 第二天学习笔记:(MDN HTML学习、web安全策略与常见攻击、语义化)

    一:Web入门 1:web文件命名 在文件名中应使用连字符(-).搜索引擎把连字符当作一个词的分隔符, 但不会以这种方式处理下划线. 养成在文件夹和文件名中使用小写,并且使用短横线而不是空格来分隔的习 ...

  2. 浏览器中常见的html语义化标签

    html标签默认在浏览器中展示的样式,html标签的用途:语义化(明白每个标签的用途,在什么情况下使用此标签合理);标签语义化好处:1.更容易被搜索引擎收录2.更容易让屏幕阅读器读出网页内容. 网页上 ...

  3. Semver(语义化版本号)扫盲

    最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用 npm install package@next 时,也不清楚next代表的 ...

  4. HTML5的新语义化的标签

    在HTML5之前采用HTML+CSS文档结构写法 [ID选择器说明 id选择器——用于标识页面上特定元素(比如站点导航.页眉.页脚)而且必须唯一; 也可以用来标识持久结构性元素(如主导航.内容区域)] ...

  5. 如何让你的JavaScript代码更加语义化

    语义化这个词在 HTML 中用的比较多,即根据内容的结构化选择合适的标签.其作用不容小觑: 赋予标签含义,让代码结构更加清晰,虽然我们可以在标签上添加 class 来标识,但这种通过属性来表示本体的形 ...

  6. Semantic UI – 完全语义化的前端界面开发框架

    Semantic UI 是一个 UI 库,使前端开发更简单,更容易学习.Semantic UI 介绍了许多界面元素.在大多数情况下,只有你需要的元素建立一个自定义的构建可能是最好的. UI 组件分为四 ...

  7. Html5新增的语义化标签(部分)

    2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,html5的标准规范终于制定完成.这是互联网的一次重大变革,这也许是一个时代的来临! 总结一些h5新增的语义化标签,记录下来方便自己学习 ...

  8. 腾讯TGideas语义化标签(转)

    --------引子--------------- 家里有个熊孩子,经常会有一些意想不到的事情发生:回家的时候,他会笑呵呵冲过来,大声喊着“臭爸爸”:你让他把鞋穿上,他会提起鞋子往楼下扔...在小孩的 ...

  9. html5语义化标签总结二

    HTML 5的革新之一:语义化标签二文本元素标签.分组元素标签. HTML 5的革新——语义化标签(一)中介绍了一些HTML5新加的一些节元素,一张页面中结构元素构成网页大体,但是也需要其他内容来填充 ...

随机推荐

  1. JAVA基础学习day25--Socket基础二-多线程

    一.上传图片 1.1.示例 /* 上传图片 */ import java.net.*; import java.io.*; import java.util.*; import java.text.* ...

  2. 基础学习day01--JAVA入门和JDK的安装与配置

    一.软件是什么 软件按照一定顺序组成的计算机指令和数据集合. 二.什么是软件开发 软件开发是使用计算机的语言制作的软件.如迅雷,Windows系统,Linux,QQ等. 三.DOS常用命令 cd..: ...

  3. Windows下HG服务器的搭建

    1.环境和所需工具安装 1. 安装python-2.7.9.exe 2. 安装mercurial-3.2.3.win32-py2.7.exe 3. 安装mercurial-3.2.3-x86.msi ...

  4. [windows]禁止指定用户使用远程桌面服务登录

    windows2003下禁止用户远程登录的方法如下: 1.打开控制面板 > 管理工具 > 本地安全策略 2.安全策略-->本地策略-->用户权限分配-->通过终端服务拒绝 ...

  5. java Hello 出现以下结果:Bad command or the file name 可能是什么原因

    没有这个命令或文件名 原因可能是没有成功安装jdk或者没有配置好jdk 的环境变量,或者没有编译相应的文件. 2. 出现以下结果:Exception in thread “main” java.lan ...

  6. uname

    uname uname用于打印操作系统和硬件架构相关的信息,对于可能在多个系统或架构上运行的Shell脚本程序很有用, 缺省选项相当于 -s 或--system $uname [-amnrsvpio] ...

  7. [转]让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求

    本文转自:http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html 今天下午17点左右,博客园博客站点出现这样的错误信息: Error S ...

  8. MVC+AjaxFileUpload文件上传

    来源:微信公众号CodeL 本次给大家分享的是ajaxfileupload文件上传插件,百度一大堆功能超炫的文件上传插件,为什么我们会选择这个插件呢? 原因是在此之前,我们尝试使用过很多基于flash ...

  9. 【Ext.Net学习笔记】05:Ext.Net GridPanel的用法(包含Filter、Sorter、Grouping、汇总(Summary)的用法)

    GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: <ext:GridPanel runat="server&qu ...

  10. 合工大OJ 1337 一加二减三

    Description 题目描述:给一个串,形如一+二-三,求值 Input 第一行为一个正整数T,表示数据的组数,接下来有T行每行都是一个形如一+二-三的串,一,二,三均为正整数 Output 对于 ...