Semantic Element

Semantic Element

1.什么是語義化

根據內容的結構,選擇合適的標簽(代碼語義化)便于開發者閱讀。寫出更優雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。

語義(semantic) 

語義化標記,是指每種標記表示一種特定的內容形態,例如標題、列表、表格等。與之對應的概念,是樣式標記(presentational markup)。

Tim最初設想HTML應該是一種純語義化的標記語言,然而在混沌無序的初始階段,各家瀏覽器廠商多少受到另一種通行多年的標記語言SGML的影響,由于該語言同時存在語義化標記和樣式標記,于是早期的HTML也被設計成了兩類標記的雜合體。

不過隨著90年代末CSS的逐步應用以及隨之而起的“內容與表現分離”理念,樣式標記在新的HTML版本中被逐漸廢除,但出于向后兼容的考慮,仍然有部分樣式標記被保留,例如:i(樣式)/ em(語義);b(樣式)/ strong(語義)。

2.為什么要語義化

  • 語言性質: HTML本身就是語義化標記語言,使用符合語義的標記,才談得上正確使用HTML
  • 可訪問性: 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構
  • 有利于SEO: 和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息。爬蟲依賴于標簽來確定上下文和各個關鍵字的權重。
  • 增強擴展性: 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁。
  • 便于開發和維護: 語義化更具可讀性,是下一步吧網頁的重要動向,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。

3.寫HTML代碼時應注意什么?

  • 盡可能少的使用無語義的標簽如:div、span;
  • 在語義不明顯時,既可以使用div或者p時,盡量用p, 因為p在默認情況下有上下間距,對兼容特殊終端有利;
  • 不要使用純樣式標簽,如:b、font、u等,改用css設置。
  • 表單域要用fieldset標簽包起來,并說明表單的用途;
  • 使用表格時,標題要用caption,表頭用thead,主體部分用tbody包圍,尾部用tfoot包圍。表頭和一般單元格要區分開,表頭用th,單元格用td;

    TagsDescription
    <thead>Specifies a table header
    <tbody>Specifies a table body
    <td>Specifies a table cell
    <tr>Specifies a table row
    <th>Specifies a table header
    <tfoot>Specifies a table footer
  • 過分使用diV標簽,html的語義化很不好,div 是一個沒有語義的標簽,但是沒有語義不代表沒有意義,建議div只用來構建布局,除此之外盡量少用。
  • Div與span在html中都是用在輔助布局的,都是沒有語義的,不同點是,div是塊元素,span是內聯元素,從邏輯結構上講,div 用來劃分塊元素,span用來劃分內聯元素。把<a>里邊套一個<span>我們常用的技巧。檢查Html頁面是否語義化最好的方法, 便是去掉頁面的Css鏈接, 看網頁結構是否井然有序, 頁面是否仍然有很好的可讀性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275767.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

玉伯:開源有帶給我什么

在2021年527螞蟻技術日上&#xff0c;螞蟻內源社區舉辦了內源專場&#xff0c;在專場上玉伯給大家分享了《開源有帶給我什么》&#xff0c;以下為演講的圖文整理。我的開源之路我從2009年到2018年&#xff0c;接近十年時間&#xff0c;一直在做開源的一些事情&#xff0c;在這個…

python并行運算庫_最佳并行繪圖Python庫簡介:“ HiPlot”

python并行運算庫HiPlot is Facebook’s Python library to support visualization of high-dimensional data table, released this January. It is particularly well known for its sophisticated interactive parallel plot.HiPlot是Facebook的Python庫&#xff0c;用于支持…

Asp.net 文件上傳的 FileUpload FileName 和 FileUpload PostedFile.FileName的細節問題

Asp.net 文件上傳的 FileUpload FileName 和 FileUpload PostedFile.FileName的細節問題 ASP.NET 文件上傳估計大家都用得很熟悉&#xff0c;常用控件 FileUpload 。 主要步驟&#xff1a; 1.判斷是否合法 2.獲得文件的路徑 &#xff08;包括目錄的完整路徑&#xff0c;同時可能…

java 友元_C++ 友元函數 | 菜鳥教程

對教程中的例子&#xff0c;稍加修改&#xff0c;添加了友元類的使用。#include using namespace std;class Box{double width;public:friend void printWidth(Box box);friend class BigBox;void setWidth(double wid);};class BigBox{public :void Print(int width, Box &…

剛學編程的程序員必備這5大編程網站,你知道幾個?

一個好的網站&#xff0c;就是程序員學編程的基地。 雖說新手程序員也許知道一些在線編程網站&#xff0c;但是質量上乘的編程網站又知道幾個呢? 下面就來給大家推薦5個質量上乘的編程網站&#xff1a; 0、Leetcode LeetCode是大名鼎鼎的在線刷題網站&#xff0c;通過該網站的…

【贈書福利】不扶好眼鏡,請別打開這本挑戰JS語言特性的書

文末贈福利大家好&#xff0c;我是若川。為感謝大家一直以來的支持和肯定&#xff0c;文末抽《JavaScript悟道》3本包郵送和若干紅包&#xff0c;詳細規則請看文末哦。"人們不停地給老化的語言“整容”&#xff0c;拼命地往其中注入各種新的特性來穩住其流行地位&#xff…

MySQL存儲過程之事務管理

MySQL存儲過程之事務管理 ACID:Atomic、Consistent、Isolated、Durable 存儲程序提供了一個絕佳的機制來定義、封裝和管理事務。 1&#xff0c;MySQL的事務支持 MySQL的事務支持不是綁定在MySQL服務器本身&#xff0c;而是與存儲引擎相關&#xff1a; Java代碼 MyISAM&#xff…

羅馬數字 java_【leetcode刷題】[簡單]13.羅馬數字轉整數(roman to integer)-java

羅馬數字轉整數 roman to integer題目羅馬數字包含以下七種字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。字符 數值I 1V 5X 10L 50C 100D 500M 1000例如&#xff0c; 羅馬數字 2 寫做 II &#xff0c;即為兩個并列的 1。12 寫做 XII &a…

我在工作中是如何使用Git的

大家好&#xff0c;我是若川。今天分享一篇關于git的好文章。我自己經常用命令行終端和git縮寫。具體可以看我以往的文章。使用 ohmyzsh 打造 windows、ubuntu、mac 系統高效終端命令行工具&#xff0c;用過都說好。點擊下方卡片關注我、加個星標學習源碼整體架構系列、年度總結…

克服浮躁_設計思維:您克服并贏得低迷的最終工具。

克服浮躁設計思維101 (Design thinking 101) Let’s begin by getting ourselves clear on the question: What is design thinking?讓我們首先弄清楚問題&#xff1a;設計思想是什么&#xff1f; Many people have an impression that design thinking has something to do …

mongodb數組字段prefix匹配返回

DOC: https://docs.mongodb.com/manu... collection&#xff08;test&#xff09;結構 {_id: Objectd("123456789"),category: [apple_1,apple_2,banana_1,banana_2] }Question: 對test表的所有數據做category過濾&#xff0c;返回category中以apple開頭的元素 表原數…

java參數化查詢_小博老師解析Java核心技術 ——JDBC參數化查詢(二)

[步驟閱讀四]SQL注入按照以上方式開發&#xff0c;確實已經完成了基本的用戶登錄業務需求&#xff0c;但是這么做的話可以會出現一個比較嚴重的問題&#xff0c;那就是容易被SQL注入。所謂SQL注入&#xff0c;就是在需要用戶填寫信息&#xff0c;并且這些信息會生成數據庫查詢字…

Lightbox 效果

網上其實到處都是。 遮罩層&#xff1a; .transparent {filter:alpha(opacity0); -moz-opacity: 0.0; opacity: 0.0; z-index: 90;background-color:#000;float:left;top:0;left:0;position:absolute;width:100%; }主要業務層&#xff1a;.rollover5 {display:none; position:a…

前端搶飯碗系列之Vue項目如何做單元測試

大家好&#xff0c;我是若川。今天分享一篇vue項目如何做單元測試的好文&#xff0c;文章比較長&#xff0c;建議先收藏&#xff0c;需要時用電腦看。點擊下方卡片關注我、加個星標學習源碼系列、年度總結、JS基礎系列關于單元測試&#xff0c;最常見的問題應該就是“前端單元測…

React Native組件開發指南

React Native的組件開發一直處在一個比較尷尬的處境。在官方未給予相關示例與腳手架的情況下&#xff0c;社區中依然誕生了許許多多的React Native組件。因為缺少示例與規范&#xff0c;很多組件庫僅含有一個index.js文件。這種基礎的目錄結構也導致了一些顯而易見的問題&#…

java activiti jbpm_activiti和jbpm工作流引擎哪個比較好?

原標題&#xff1a;activiti和jbpm工作流引擎哪個比較好&#xff1f;在常用的ERP系統、OA系統的開發中&#xff0c;工作流引擎是一個必不可少的工具。之前在選擇工作流引擎時曾經在activiti和jbpm之間有過比較&#xff0c;當時做出的決定是使用jbpm&#xff0c;但實際開發過程中…

C/C++中善用大括號

C/C中善用大括號轉載于:https://www.cnblogs.com/satng/archive/2010/12/17/2138840.html

識別人聲_演唱人聲的5個技巧

識別人聲什么是聲樂伴奏&#xff1f; (What is Vocal Comping?) Vocal comping describes the process of combining multiple vocal takes into one “supertake” that has the best parts of each. This is called a “composite track,” or comp for short. Many instrum…

你知道source map如何幫你定位源碼么?

大家好&#xff0c;我是若川。今天分享一篇我們經常會忽略的定位原始代碼位置原理的文章。文章不長&#xff0c;例子不錯&#xff0c;可以先收藏&#xff0c;有空時動手試試。學習源碼系列、年度總結、JS基礎系列前言我們知道&#xff0c;代碼上線前要經過壓縮&#xff0c;美化…

OOP 中的 方法調用、接口、鴨式辯型、訪問者模式

2019獨角獸企業重金招聘Python工程師標準>>> 方法調用的四種方式 直接調用&#xff1a;通過類或者實例直接調用其方法。接口調用或者轉型調用&#xff1a;通過將實例回調給一個接口對象&#xff0c;或者轉型為一個父類的實例&#xff0c;來調用間接調用&#xff1a;…