作天在变卖大学书籍时也不晓得怎么的就想起语义化这个概念,于是乎也就花点时间搞搞它。语义化标记对于刚学web前端脚本语言的童鞋来说往往都没太 在意,哇哈哈,其实我也就算只比较老的菜鸟而已,本文不是说教,只是分享有关语义化的一些东西。

那什么是语义化呢?

首先抽象的说下语义(Semantic)的概念:“语义可以简单地看作是数据所对应的现实世界中的事物所代表的概念的含义,以及这些含义之间的关 系,是数据在某个领域上的解释和逻辑表示。”娘的,太抽象了。其实在那个用4000W打造的超级防猥琐的绿坝就有个叫语义分析的功能,如果发现不健康信 息,立马对其进行关闭,哼哼。

通过强大的拆字我们可以简单的理解它为:用特定的语言来定义特定的事物。在web前端中语义化标记也可以这样理解。

绿坝它全家靓照

你是不是特别特别喜欢DIV标签?

在刚开始学习web前端时想必你肯定听说div+css布局,说的那是如此好如此妙如此呱呱叫,于是乎你就div+css了,div套 div,div何其多,去w3c验证发现还能通过,仰天长呼,so easy,so easy。

然而堂堂的(X)HTML就一个div标签?答案肯定不是,那其他的标签是不是没有用?答案更不是。任何事物存在亦有它的价值所在滴。在初学 XHTML时,我曾经犯了一个很傻的错误,在定义几个行列表项时我是这样写的:

<div id="list">
虫下米<br />
wlsy<br />
虫下米wlsy合体<br />
</div>

你别笑,我当时真的是这样写的,只不过其中的文字记不清了,写完后发现在浏览器中是我想要的结果也就认为代码是正确的。代码是正确的吗?代码当然是 正确的但是不规范。在XHTML中有个专门定义列表的标签ul(无序列表),ol(有序列表),dl(定义列表)。所以更加规范,更加有语义的我们可以这 样写:

<ul id="list">
<li>虫下米</li>
<li>wlsy</li>
<li>虫下米wlsy合体</li>
</ul>

在学习XHTML时,应尽量能够熟悉有定义到的标签,并在特定的内容加以应用,比如我们可以用strong(用strong来替代b)标签来强调内 容,用Hx(h1,h2…..)来定义标题等等。我可以吐血奉献我搜刮到一些资源:XHTML Cheat Sheet(这是常用的XHTML标签表格,可以下下来看,不过是英文的),HTML 4.01 / XHTML 1.0 参考手册(这里面有标签的详细用而且还配有实例),在早些时候我有写过一篇:几个不太常见的(X)HTML标签。

另外关于语义化标签蓝色理想上有篇帖子很不错:http://bbs.blueidea.com/thread-2658231-1-1.html

所以呢相对于叫div+CSS布局,我更喜欢叫做(X)HTML+CSS布局。

结构命名中的语义化

这里说的结构就是就是我们平常编写的XHTML代码,而命名就是我们为id或class所取的名称。

有个例子是这样的,你是不是有时会类似这样来写代码(代码比较粗糙演示用):

<div id="left">
<p>今天是个好天气呀</>
</div>
<div id="right">
<p>我的一些照片</p>
</div>

CSS代码:

#left{float:left;display:inline;width:50%;}
#right{float:right;display:inline;width:49%;}

但是某天我突然闲着没事想换个布局来增加新鲜感,比如对掉左右边的内容,那么我仅仅要在CSS里面这样改:

#left{float:right;display:inline;width:50%;}
#right{float:left;display:inline;width:49%;}

结果呈现的效果确实是你想要的,但是为其id命名是不是违背的你的原意?你原本命名id=“left”的div内容的意思就是要在左边显示,而现在 却显示在右边了。虽然结果是你想要的,但是命名好像很别扭的跟你做对。所以如果要对其进行语义化的命名我们可以这样来:

<div id="content">
<p>今天是个好天气</p>
</div>
<div id="sidebar">
<p>我的一些照片</p>
</div>

这样命名为content就是内容,命名为sidebar就是边栏,管它上窜下跳,左躲右藏,命名内容块始终为包含内容,命名边栏块也始终包含边 栏。这个例子就是语义化命名的实例,很好理解吧。

看看我是怎么给自己的网站结构命名的:

结构命名为常用的英文单词,多词之前用-来分割。因为是个人博客所以命名也就没什么其他特殊要求了。如果想看看其他的网站的命名推荐各位用 firebug,这是在Firefox的一个插件,能很方面的查看,修改和调试代码。

这里有一些有用的文章能够让你更加理解结构命名中的语义化:

CSS类命名的语义化VS结构化方式(这篇文章有很好的配图帮助你理解语义化命名)

语义化有什么优势吗?

当你写完代码后在浏览器调试,如果呈现的结果是你想要的,你是不是就不会再去检查你的代码了呢?访客能看到浏览器解析后的实际页面,但是你想过流量 的另一个重要来源:搜索引擎吗?

语义化更有利于SEO

有个很常见的例子是这样的:在初学SEO的时候你是不是经常用h1来突出你的标题,用strong来突出你的关键字,或许你不太在意,但这确实是语 义化的体现。就目前的搜索引擎来说并不能想访客那样很直观的去查看网页,它只有分析的你源码来体现或猜测网站要表达的内容。比如你想表达某篇文章的标题, 你或许会这样写:

<div id="title">文章的标题</div>

访客或许能理解你的意思,但搜索引擎就要反复揣摩了,更好的讨好搜索引擎我们可以这样来写:

<h1>这是标题</h1>

小提示:h1拥有最高的权值,在一个页面中最好指使用1个h1来突出你的内容,太多的h1会分散其整个页面的权重,对搜索引擎也是非常的不友好。

当然语义化还有其他优势:

正如上面那个例子,语义化的代码更小,下载也就更快了。另外语义化代码也能够更加快速的帮助新的前端工程师理解你的代码。语义化代码也更能帮助视障 的人通过设备来理解你的内容等等。当当然语义化代码也是你能力的体现。

一些资料:semantic code: what? why? how?,

4 Ways CSS Can Improve Your SEO

语义化的更高体现-微格式

什么是微格式呢?维基百科这样给它定义的:

微格式(Microformat),是通过语意相关让内容人机可读。网页上的允许的微格式数据包括事件、人物、地点等,它可以被其他的软件检测到, 并提取出相应的信息,以及对信息进行索引、搜索、跨平台的参考,把这些信息以其他形式重复使用或组合。

从技术上来说,这些数据是一些语义标记,用标准的(X)HTML中的class名称设置。他是开放、可用、自由的,可以被任何人使用。

维基百科上还有一个实例我就不贴了,你可以到这里看到。

在往后,当搜索引擎越来越重视微格式,在你的网站上应用微格式肯定会为你加分不少。在应用和推广微格式上面,我觉得wordpress做的非常的 好,在之前应用了诸如:rel=”tag”,rel=”nofollow”,rel=”license”后,在升级到wordpress2.8后我发现它 在header处新增了这几个:

根据字面意就是帮助搜索引擎理解本页的主页,开始页,上一篇和下一篇。不过目前有些微格式还处于草案当中,并不能确保它在最后时还在。要想关注微格 式你可以看看它的官方网站

微格式还有个很经典的例子就是名片的应用,它也就是通过一些很有语义的标记来描述个人信息,如果你想折腾微格式还是有得折腾的,为了避免篇幅过长下 面给出写有用的了链接方便有兴趣的继续折腾。

微格式全功略Hcard、hCalendar、hReview、 XFN 轻松掌握(这几个微格式也就是主要来体现个人信息,这篇来自ued163)。这里也还有一系列的翻译译文http://www.mijia.org/blog/?p=152能 够帮助你很好的理解微格式。

end~

有关WEB前端中的语义化相关推荐

  1. web标准与HTML语义化

    说来惭愧,学习前端已经有了一段时间,但对最基本也是极其重要的一些网站设计的基础思想都不太清楚.最近写项目发现了很多自己的不足,特此写一些文章来记录自己最近看书了解的一些知识与感悟. Web标准-结构. ...

  2. 前端面试—html语义化

    html最常见的问题:语义化的HTML结构怎么理解? 前天面试对于这个问题我是这么答的: html语义化就是让页面的内容结构化. 1.在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的. 2 ...

  3. web前端中的命名规则

    规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不 ...

  4. web系统中的结构化数据标记

    Web 系统的设计要点之一是内容和表示的分离,网站以HTML发布内容,对内容进行操作的服务也只能访问 HTML.随着表现形式各异的设备在大量地增加,也大大增加了网站针对不同表示格式的数量.同时,一些新 ...

  5. css中如何实现帧布局_浅谈web前端中的表格布局与CSS盒子布局

    在web前端设计排版时我们可能会用到表格布局和div+CSS布局,但现在主要使用后者,为何?今天我们来谈一谈两者之间的发展和原理. 话不多说下面来干货 发展过程 上个世纪Web开发人员流行使用表格进行 ...

  6. 如何在软件发布计划中自动化语义化版本与变更日志

    摘要:本文引入两个工具commitizen和standard-version来实现语义化版本与变更日志的自动化,提升规范化程度,减少人工干预. 随着DevOps方法与实践的普及,越来越多的企业开始使用 ...

  7. HTML中的语义化标签

    一.什么是语义化标签 语义化标签可以理解为用于进行网页页面构建的标签,他们不会影响页面内容,只是对页面结构的规范话. 二.为什么使用语义化标签 易修改.维护 更易理解页面结构 有利于SEO搜索引擎检索 ...

  8. web开发中首页静态化处理

    首先为什么我们要将页面静态化呢? 首先我们来讲讲页面静态化的优点: 1:加快网站的运行速度,提升客户体验 2:减少对后端服务器的压力 其次我们再来讲讲页面静态化处理的一些要求? 跟客户信息相关的内容, ...

  9. web前端中快速切换图片实现视频播放效果

    在前端界面中有video组件可以直接播放下载到的视频,也可以通过video.js来显示rtmp等流媒体,实现实时画面的效果.当我们为了保证实时的效果,在将实时视频进行一帧一帧的检测之后,再合成视频,然 ...

最新文章

  1. 如何导入别人的android studio项目,解决gradle版本不兼容问题
  2. 基于量子粒子群算法实现天线阵列优化
  3. 行为型模式——状态模式(十一)
  4. Luminus模板可选项
  5. 前端之JQuery:JQuery属性操作
  6. 3.1 Zabbix企业级分布式监控系统 --- zabbix 安装
  7. android11电视,谷歌发布首款Android TV版 基于Android 11开发者预览版
  8. [Deep Learning] 神经网络基础
  9. python语言太差_Python语言 最差实践
  10. springboot基于web的游泳馆信息管理系统毕业设计源码281444
  11. 蚁群算法 c语言,基本蚁群算法代码C版
  12. 从三本院校到斩获字节跳动后端研发Offer
  13. 深度学习目标检测模型的评价标准-AP与mAP
  14. linux怎么切换键盘布局,Ubuntu 切换键盘布局(colemak - workman - norman)
  15. Elasticsearch 使用初级入门 【入门篇】
  16. 不等距双杆模型_电磁感应之双杆模型.ppt
  17. 百度地图-新手入门教程
  18. Linux 【进程】
  19. 【SDN】软件定义硬件
  20. 视频压缩编码问答--转载

热门文章

  1. 循环体中continue、break语句的使用
  2. 【STM32】入门(零):keil安装、科学使用、芯片包安装
  3. ECL模型计量与应用
  4. Orcale数据库简介
  5. windows 批处理文件
  6. 咸鱼带你学计算机网络—物理层(二)
  7. 吕文哲:为什么我说EOS完爆以太坊,理由全在这里了
  8. php连接数据库的留言板,PHP+MySql实现简单的留言板功能
  9. NGINX根据客户端真实ip限制/referer限制
  10. ResidualCoder