首先,人能够经过视觉的划分判断内容的语义,搜索引擎看到的只是代码。搜索引擎只能经过标签来判断内容的语义。由于页面的很大一部分流量是来自搜索引擎的,要使页面尽量地对搜索引擎友好,因此就要尽量地使标签语义化。 css
之前以我以为写一个好的符合标准的页面只须要把结构和表现分离,而后不要使用table,p等标签就好了,至于通篇都是div我也不会以为有什么问题,由于CSS很强大。可是,全部的标签都是有本身的语义的,下面给出一部分标签的语义:
div 语义:Division(分隔)
span 语义:Span(范围)
ol 语义:Ordered List(排序列表)
ul 语义:Unordered List(不排序列表)
li 语义:List Item(列表项目)
…………
若是无视标签语义和默认样式,全部标签都用div,其实也是能够写出来视觉效果很好的页面,只要你灵活运用CSS。可是那样的话虽然视觉上达到了要求,可是整个页面一点语义都没有,搜索引擎仍是看不懂。因此,要记住:
结构(html)才是重点,样式(css)是用来修饰结构的。因此,要先肯定html,肯定标签,再来选用合适的css
其次,SEO的时候咱们常常用h1来突出标题,用strong来突出关键字,这确实就是语义化的体现。就目前的搜索引擎来讲并不能想访客那样很直观的去查看网页,它只有分析源码来体现或猜想网站要表达的内容。好比咱们想表达某篇文章的标题, 咱们或许会这样写:
<div id=”title”>文章的标题</div>
访客或许能理解咱们的意思,但搜索引擎就要反复揣摩了,更好的讨好搜索引擎咱们能够这样来写:
<h1>这是标题</h1>
小提示:h1拥有最高的权值,在一个页面中最好指使用1个h1来突出你的内容,太多的h1会分散其整个页面的权重,对搜索引擎也是很是的不友好。
固然语义化还有其余优点:
正如上面那个例子,语义化的代码更小,下载也就更快了。另外语义化代码也可以更加快速的帮助新的前端工程师理解咱们的代码。语义化代码也更能帮助视障的人经过设备来理解咱们的内容等等。固然语义化代码也是咱们能力的体现。
怎样进行web语义化?
一、html语义化
一个 html元素的存在就意味被标记内容的那部分有相应的结构化的意义,没有理由使用其余的标记。换句话说,不要让css使一个html元素看起来就像另外一个html元素,好比用<div>来代替<p>标记标题。简而言之,就是你在看到内容的时候想一想用什么标签能更好的描述它,是什么就用什么标签。很明显Hx系列看起来很像标题,由于拥有粗体和较大的字号。<strong> ,<em> 用来区别于其余文字,起到了强调的做用。至于列表<ul>、<ol>等和表格<table>很明显的告诉你他们是作什么的。如:
<Hx>
<h1>、<h2> 、、<h5> 、<h6>,做为标题使用,而且依据重要性递减。<h1>是最高的等级。
<p>
段落标记,知道了<p> 做为段落,咱们就不会再使用 <br/> 来换行了,并且不要 <br/> <br/> 来区分段落与段落。<p> 中的文字会自动换行,并且换行的效果优于 <br> 。段落与段落之间的空隙也能够利用css来控制,很容易并且清晰的区分出段落与段落。在利用行高 (line-height) 很容易的定义出行间距,再定义首字下沉等效果,那就挺完美了。
二、css命名语义化
通常而言,CSS类名的语义化声明方式应当考虑页面中某个相对元素的”用意”,独立于它的“定位”或确切的特性(结构化方式)。像left-bar, red-text, small-title…这些都属于结构化定义的例子。
让咱们看看下面这个例子:
html
如今咱们想把页面中的元素调换一下位置,若是咱们使用的是结构化方式(1),那么咱们就要把全部css类名从新进行定义,由于它们的位置变了。在布局(3)中,咱们看到元素都倒转了: right-bar 如今成了 “left-bar”,而 left-content 成了 “right-content”。若是你使用语义化方式则避免了此类问题。 前端
换句话说,使用语义化方式的话,咱们在修改网站布局的时候能够仅仅修改相关CSS类的属性便可,而不用修改它们的类名了,若是网站的代码很庞大,这将节省大量的时间。 web