淺談web語義化

来源:http://www.cnblogs.com/shouce/archive/2016/03/11/5264206.html
-Advertisement-
Play Games

web語義化是什麼 HTML5標準出來的時候,我曾經詫異為什麼要定義這麼多header footer nav article標準,DIV不挻好的嘛,方便開發人員記憶啊。但當頁面開發完,面對所有都是DIV標簽的網頁,就會混亂了,到底哪裡是頁頭,哪裡是正文。當然我們可以用瀏覽器打開,F12一下,就一目了


web語義化是什麼

HTML5標準出來的時候,我曾經詫異為什麼要定義這麼多header footer nav article標準,DIV不挻好的嘛,方便開發人員記憶啊。但當頁面開發完,面對所有都是DIV標簽的網頁,就會混亂了,到底哪裡是頁頭,哪裡是正文。當然我們可以用瀏覽器打開,F12一下,就一目瞭然了,但如果是網路爬蟲,那就沒這麼容易識別到這個東西了。

引用wiki的定義,語義化是前端開發裡面的一個專用術語,其優點在於標簽語義化有助於構架良好的html結構,有利於搜索引擎的建立索引、抓取;另外,亦有利於頁面在不同的設備上顯示儘可能相同;此外,亦有利於構建清晰的機構,有利於團隊的開發、維護。

通俗而言,就是HTML的結構清晰,該是段落就用p標簽,該是頁腳就用footer標簽,而不要統一都用DIV。

為什麼要web語義化

其實wiki的定義裡面說得非常清晰了。語義化的好處有三點

  1. 有利於搜索
  2. 容易相容不同設備
  3. 結構清晰,利於團隊的開發、維護

要怎麼做

一個較為經典的案例是,初學word的人經常會用空格來進行縮進,用回車來填充進行換頁,這種排版在頁面佈局發生變化時,就會亂掉。所以我們要用回word本身的縮進,換頁符功能,真真正正告訴電腦這個排版的真正意圖,才能使得排版適應性強。 HTML不是二進位文件,導致人們在編寫的時候隨意性更加大了。我們要經常關註一些語義化的標簽,常用並且熟記。

  • h1~h6的規劃

一篇文章應該只有一個總標題即h1,我的每一篇博文都是這種結構的。然後根據文章的具體內容,會有若幹個h2及嵌套的h3,目前為止我的博文並沒有用到h4以下的標題

  • p

每一個段落都應該用p去表示,預設情況下p是有一定的縮進及行距,如果不想這樣排版,應該另外寫CSS去控制

  • ul,ol,li (Unordered list,Ordered list,List item)

li必須是在ul或者ol裡面,當我們只是列舉一些數據,但又達不到一個分論點這種語義時,或者在一些資訊的網站新聞列表中,都應該用此語義標簽,例如你當前在看的就是。

  • dl,dt,dd (description list,description list term,description list description)

這表示一種帶描述的層級遞進的列表,其中dl帶描述的列表,dt列表的標題,dd列表的描述 例如

    <dl>
    <dt>中國城市</dt>
    <dd>北京 </dd>
    <dd>上海 </dd>
    <dd>廣州 </dd>
    <dt>美國城市</dt>
    <dd>華盛頓 </dd>
    <dd>芝加哥 </dd>
    <dd>紐約 </dd>
    </dl>

效果圖:

dl,dt,dd效果

  • em,strong

由於本人是用markdown語法來寫博的,這兩個標簽更加是被語法首推使用的 測試斜體em 測試加強strong

  • header,nav,article,section,aside,footer

這對於明細內容頁的語義化十分重要,在此引用一圖說明各標簽的語義

明細內容頁的語義化

  • th,tbody

表格的表頭及重覆列表內容,正常的表格都應該區分表頭及表體內容。表頭預設是加粗並且居中的。

  • address

表示一種聯繫方式,方便爬蟲立馬找到你的聯繫方式,當然使用起來可能是辦公地址更加實際

    <address>
    Written by p2227<br />
    contact me : kuangqiyi(At)gmail.com <br />
    Address: searching the next bussiness address<br />
    </address>
  • dfn,code,samp,kbd,var,cite

這些元素和em 、strong都稱為短語元素,其語義如下

標簽語義
em 呈現為被強調的文本。
strong 定義重要的文本。
dfn 定義一個定義項目。
code 定義電腦代碼文本。
samp 定義樣本文本。
kbd 定義鍵盤文本。它表示文本是從鍵盤上鍵入的。它經常用在與電腦相關的文檔或手冊中。
var 定義變數。您可以將此標簽與 <pre> 及 <code> 標簽配合使用。
cite 定義引用。可使用該標簽對參考文獻的引用進行定義,比如書籍或雜誌的標題。

本人的列舉有限,詳細的要在實際使用中去慢慢記憶了。 具體的實施還要結合具體項目組制定一份標準,再嚴格執行,才能真實實施起來。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 求兩個數之和。這個問題夠簡單吧!能做對絕對不是問題,問題是你是否能做的比較好。好了,請看題目: Given an array of integers, return indices of the two numbers such that they add up to a specific targ
  • Controller中的數據,不管是使用的是ViewModel 還是ViewBag.Data,要將他傳遞到View中,這個很容易,但是如果要將它傳遞給JS中的某個對象,這個改如何處理呢? 後臺的數據格式: public class ViewModel { public int ID { get; s
  • 分散式dubbo zookeeperfastdfsactivemqredis 分散式緩存
  • 1 package com.shejimoshi.behavioral.TemplateMethod; 2 3 4 /** 5 * 功能:抽象模板類 6 * 時間:2016年3月10日下午9:02:32 7 * 作者:cutter_point 8 */ 9 public abstract class
  • 本節目錄 介紹 定義Filter 設置Filter 這是Abp中多租戶、軟刪除、激活\禁用等如此方便的原因 Install-Package EntityFramework.DynamicFilters 定義數據 class DemoDb : DbContext { public DemoDb() :
  • 在做h5移動頁面,相信大家一定碰到過頁面已經打開,但是裡面的圖片還未載入出來的情況,這種問題雖然不影響頁面的功能,但是對於不利於用戶體驗。拋開網速的原因,解決這個問題有多方面的思路:最基本的,要從http請求合併,緩存管理,圖片壓縮等方面做性能優化;另外就是可以對頁面里用到的所有圖片做預載入的處理。
  • 數組的5個迭代方法: every(); //對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true; filter(); //對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組; forEach(); //對數組中的每一項運行給定函數,這個方法沒有返回值;
  • 閑來無聊,收集總結一下jQuery常用操作,希望對新手有用。 基於jquery 1.3.2 <!--<script type="text/javascript" src="jquery/jquery-1.3.2.js"></script>--><!--<script src="https://aja
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...