一周一章前端书·第13周:《HTML与CSS进阶教程》S01E02

第2章 语义化

2.1 语义化简介

  • HTML的精髓在于标签的语义。大部分标签都有它自身的语义,比如<p>标签,表示paragraph,一个段落;<h1>,表示header level 1,一级标题。
  • 前端的三大核心技术HTML、CSS和JavaScript,HTML编写网页的结构、CSS处理网页的外观、JavaScript控制网页的行为。其实HTML才是最基础也是最重要的,好比盖房子,房子装饰得再漂亮,如果根基不稳,也容易倒塌。
  • 编写语义良好的页面极其重要,不但有利开发调试和后期维护,也更利于搜索引擎优化。

2.2 标题语义化

  • 标题标签(h1~h6)在搜索引擎优化(SEO)中占有非常重要的地位,其中<h1>权重最高,<h6>权重最低。
  • 关于标题h1~h6的语义化:
    • 一个页面只有一个<h1>标签 :好比一篇文章只有一个主标题,<h1>表示页面中最高层级的标题,搜索引擎会赋予<h1>标签最高权重。如果一个页面出现多个<h1>标签,可能会被判以作弊;
    • h1~h6之间不要出现断层:虽然,我们通常只用到标题h1~h4,而不需要把6个标签全都用上,但标题的顺序应该是不应该出现断层的,比如“h1、h3、h4”而漏掉“h2”;
    • 结构和样式相分离
      1. 不要因为外观样式而滥用h1~h6标签:比如一个页面中,为了调整文本字体大小或者加粗字体而使用标题标签;
      2. 也不要用DIV来替代页面的标题

2.3 图片语义化

  • 如何更语义化的定义<img>标签?

alttitle属性:

<img src='' alt='给搜索引擎的图片描述' title='给用户看的图片描述'>
  • alttitle属性都表示图片的描述。
  • 其中alt的描述文字是给搜索引擎看的并且当图片挂掉时,会显示alt属性值的文字;
  • title是给用户看的,当鼠标悬停在图片上时,则显示title中的内容;
  • 所以我们应该注意,alt是必填属性,,在SEO中有一定权重;而title是选填属性,可加可不加。

<figure><ficaption>标签:

<figure>
    <img src="" alt="">
    <figcaption>图注描述</figcaption>
</figure>
  • <figure>元素代表一段独立的内容,经常和<figcaption>配合使用。这种组合标签表示在页面中引用图片、插图、表格、代码段等,比如可以实现“图片 + 图注”的效果。

2.4 表格语义化

  • 要做好表格的语义化,首先要注意<table>标签应该用来展示表格形式的数据,而不是用作页面布局。
  • 标签 说明
    table 表格
    caption 表格标题
    thead 语义划分表格的表头
    tbody 语义划分表格的表身
    tfoot 语义划分表格的表尾
    tr
    th 表头单元格
    td 表格单元格
    另外可以配合使用thtbody等表格标签,使得表格语义更良好,结构更清晰:
标签 说明
table 表格
caption 表格标题
thead 语义划分表格的表头
tbody 语义划分表格的表身
tfoot 语义划分表格的表尾
tr
th 表头单元格
td 表格单元格
  • 实例:
<table>
    <caption>三年二班成绩表</caption>
    <thead>
        <tr>
            <th>姓名</th>
            <th>语文</th>
            <th>数学</th>
            <th>英语</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>周杰伦</td>
            <td>80</td>
            <td>80</td>
            <td>80</td>
        </tr>
        <tr>
            <td>韩红</td>
            <td>90</td>
            <td>90</td>
            <td>90</td>
        </tr>
        <tr>
            <td>张杰</td>
            <td>100</td>
            <td>100</td>
            <td>100</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td>平均分</td>
            <td>90</td>
            <td>90</td>
            <td>90</td>
        </tr>
    </tfoot>
</table>

2.5 表单语义化

<label>标签的for属性

<div>
    <label for="userName">用户名:</label>
    <input type="text" id="userName" name="userName">
</div>
  • 根据W3C规范的定义,<label>标签是描述输入控件的说明文字。
  • 其中<label>标签的for属性值,应该填入所关联的表单元素控件的idfor属性的作用,一是增强了语义;二是增强操作便捷性,使得鼠标点击范围扩大至<label>元素上。

<fieldset><legend>标签

<fieldset disabled="disabled">
    <legend>补充信息</legend>
    <div>
        <label for="job">职称:</label>
        <input type="text" id="job" name="job">
    </div>
    <div>
        <label for="address">地址:</label>
        <input type="text" id="address" name="address">
    </div>
</fieldset>
  • <fieldset><legend>标签用于为表单元素进行分组。
  • 分组除了可以增强表单的语义,也可以通过<fieldset>元素的disabled属性来禁用分组内的元素。

2.6 其他语义化

不要滥用<br/>换行标签

<p>
    <p>深圳市</p><br/>
    <p>南山区</p><br/>
    <p>深南大道1101号</p>
</p>
  • 根据W3C规定,<br/>标签仅用于段落中的换行,也就是说,<br/>标签只应该出现在<p>标签之中。 而通过<br/>标签进行页面的换行,甚至通过多个<br/>标签来调整元素之间的间距是不符合HTML语义化的。

使用<ul>无序列表标签

<ul>
    <li>
        <span class="point hot"></span>
        走上穷兵黩武,台湾恐难承受
    </li>
    <li>
        <span class="point"></span>
        新版历史教科书删去文革
    </li>
    <li>
        <span class="point"></span>
        2040年日本独居家庭将达四成
    </li>
</ul>
  • 对于列表型的数据,比如菜单、新闻列表等,建议使用<ul>无序列表或者<ol>有序列表,而不是div来实现。

由于有序列表标签前的数字外观是固定的,所以大多数情况都是使用无序列表。

使用<strong><em>标签

<strong>文本加粗</strong>
<em>文本倾斜</em>
  • 在表现上,<strong>标签是加粗的文本,<em>标签是斜体文本。
  • 而在W3C规定中,<strong><em>标签的文本被视为关键字,搜索引擎也赋予了一定的权重。
  • 基于结构和样式分离的原则,通常我们做法是:先通过CSS reset去除<strong><em>标签的默认样式,然后只为页面中的重要文本加<strong><em>标签。
  • <strong><em>标签的区别:
    • <em>表示emphasis(强调),比如“我<em>喜欢</em>胡萝卜”和“我喜欢<em>胡萝卜</em>”强调的东西就不一样;
    • <strong>表示strong importance for its contents(十分重要的内容),单独对某个句子增加其重要性,比如“<strong>警告!该链接不安全 ,是否继续访问?</strong>

使用<del><ins>标签

<div>
    <p>越南进口火龙果</p>
    <p>
        <del>原价:¥36.90/kg</del>
    </p>
    <p>
        <ins>现在仅售:¥30/kg</ins>
    </p>
</div>
  • <del><ins>标签配合使用,可以实现商品原价和优惠价的HTML结构。
  • <del>标签表示“delete”,用于定义被删除的文本;<ins>标签表示“insert”,用于定义被更新的文本。

页面显示图片该用<img>标签还是CSS的background-img

  • 在页面上显示一张图片,可以用HTML的方式(<img>标签),也可以用CSS的方式(样式背景图片background-img:(url)),那什么情况该采用具体哪种方式呢?
  • 答案是根据HTML语义来做判断,如果图片是作为HTML文档的一部分,并且希望搜索引擎能识别时,就该使用HTML的方式;而如果图片仅仅是起到修饰作用,被不被搜索引擎识别也无所谓的情况下,就该使用CSS的方式。

2.7 语义化验证

  • 判断HTML的语义是否良好的最简单方式,就是禁用CSS样式,检查页面是否仍然具备很好的可读性。一个语义良好的页面,在“CSS裸奔”之后,可读性也非常高。

2.8 HTML5舍弃的标签

  • HTML5新增了一些标签,同时也舍弃了一些标签。
  • 舍弃的标签主要有两大类:
    • 仅仅为了定义样式,而没有任何语义的标签。比如<s><font><center>等;
    • 很少使用或已经被新标签替代的。比如<frame><dir>等;
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容