JavaScript、CSS 相比,HTML 經(jīng)過(guò)三十多年的發(fā)展,似乎逐漸走進(jìn)無(wú)人問(wèn)津的角落,如何才能讓 HTML 再次回到人們視野的中心。
作者 | Yaser Adel Mehraban
譯者 | 譚開朗,責(zé)編 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下為譯文:
有多少次,身為開發(fā)者的你編寫了一個(gè)HTML塊而沒(méi)有意識(shí)到可能編碼得并不理想?
為什么
HTML一直處于無(wú)人問(wèn)津的角落,因?yàn)镴avaScript和CSS總是吸引人們的注意力。
請(qǐng)?jiān)谀X海里先保留這種印象,因?yàn)槲乙靡恍┖?jiǎn)單的技巧來(lái)發(fā)揮作用,讓HTML再次回到人們視野的中心。
以下是創(chuàng)建一目了然、可維護(hù)和可擴(kuò)展的代碼的一些方法,其很好的應(yīng)用了HTML5的語(yǔ)義標(biāo)記元素,并將在支持的瀏覽器中正確呈現(xiàn)。
其緣由就不贅述了,讓我們來(lái)看看具體是什么吧。
文檔類型
在index.html的頂部位置,請(qǐng)確保聲明了DOCTYPE。這將在所有瀏覽器中激活標(biāo)準(zhǔn)模式,并告知瀏覽器該如何編譯文檔。請(qǐng)記住DOCTYPE不是HTML元素。
HTML5是這樣的:
<!DOCTYPE html>
注意:如果應(yīng)用了框架,這已預(yù)先寫好。如果沒(méi)有,我強(qiáng)烈建議使用像Emmet這樣的代碼片段,它在VS代碼中可用。
想了解更多關(guān)于其他文檔類型的信息嗎?點(diǎn)擊這里查看參考文件:https://html.com/tags/doctype/。
可選標(biāo)簽
有些標(biāo)簽在HTML5中是可選的,主要是因?yàn)樵厥请[式呈現(xiàn)的。信不信由你,你可以省略<html>標(biāo)簽,而頁(yè)面呈現(xiàn)得也很好。
<!DOCTYPE HTML>
<head>
<title>Hello</title>
</head>
<body>
<p>Welcome to this example.</p>
</body>
</html>
上面是一個(gè)有效的HTML,但在某些情況下就不能這樣做了。例如標(biāo)簽后面跟著注釋:
<!DOCTYPE HTML>
<!-- where is this comment in the DOM? -->
<head>
<title>Hello</title>
</head>
<body>
<p>Welcome to this example.</p>
</body>
</html>
上面是無(wú)效的,因?yàn)樽⑨屛挥?lt;thml>標(biāo)簽之外,解析樹發(fā)生了更改。
結(jié)束標(biāo)簽
應(yīng)始終記得結(jié)束標(biāo)簽,否則某些瀏覽器在呈現(xiàn)頁(yè)面時(shí)會(huì)出現(xiàn)問(wèn)題。出于可讀性和其他原因,建議保留這些內(nèi)容,稍后我會(huì)詳細(xì)介紹。
<div id="example">
<img src="example.jpg" alt="example" />
<a href="#" title="test">example</a>
<p>example</p>
</div>
以上都是有效的標(biāo)簽,但也有一些特例,如下。
自閉合標(biāo)簽是有效的,但不是必需的。這些元素包括:
<br>, <hr>, <img>, <input>, <link>, <meta>,
<area>, <base>, <col>, <command>, <embed>, <keygen>, <param>, <source>, <track>, <wbr>
注意:普通元素永遠(yuǎn)不能有自閉合標(biāo)簽。
<title />
上面顯然是無(wú)效的。
字符集
預(yù)先定義字符集。最好是將它放在頂部元素中。
<head>
<title>This is a super duper cool title, right ?</title>
<meta charset="utf-8">
</head>
上面是無(wú)效的,標(biāo)題無(wú)法正確呈現(xiàn)。正確寫法是將字符集移到頂部位置。
<head>
<meta charset="utf-8">
<title>This is a super duper cool title, right ?</title>
</head>
語(yǔ)言
不忽略可選標(biāo)簽的另一個(gè)原因是在使用屬性時(shí)。在這種情況下,我們應(yīng)該定義web頁(yè)面的語(yǔ)言,這對(duì)于可訪問(wèn)性和搜索非常重要。
<html lang="fr-CA">
...
</html>
標(biāo)題
永遠(yuǎn)不要忽略標(biāo)題標(biāo)簽,否則可訪問(wèn)性太差了。我個(gè)人就永遠(yuǎn)不會(huì)使用這樣的網(wǎng)站,因?yàn)槲覄偞蜷_它即刻在20多個(gè)頁(yè)面后就找不到了(瀏覽器選項(xiàng)卡不會(huì)有任何顯示)。
base標(biāo)簽
這是一個(gè)非常有用的標(biāo)簽,應(yīng)該謹(jǐn)慎使用。它將設(shè)置應(yīng)用程序的基本URL。一旦設(shè)置好,所有鏈接都將相對(duì)于這個(gè)基本URL,這可能會(huì)導(dǎo)致一些不必要的行為:
<base href="http://www.example.com/" />
通過(guò)以上設(shè)置,href="#internal"將被編譯為href=http://www.example.com/#internal。或者h(yuǎn)ref="example.org"將被編譯為href="http://www.example.com/example.org"。
描述
這個(gè)meta標(biāo)簽非常有用,盡管嚴(yán)格來(lái)說(shuō)它不是最佳寫法。但在搜索引擎時(shí),這是超級(jí)有用的。
<meta name="description" content="HTML best practices">
這有一個(gè)帖子“搜索引擎優(yōu)化正盛行”:https://yashints.dev/blog/2019/06/11/seo-tips。
語(yǔ)義標(biāo)簽
雖然可以使用div創(chuàng)建UX工程師的線框,但這并不意味著必須這樣做。語(yǔ)義HTML為頁(yè)面提供了意義,而不單純是內(nèi)容顯示。像p、section、h{1-6}、main、nav等標(biāo)簽都是語(yǔ)義標(biāo)簽。如果使用p標(biāo)簽,用戶將知道這表示一段文本,瀏覽器也知道如何展示它們。
語(yǔ)義HTML超出了本文的范圍。但是我們應(yīng)該進(jìn)行檢查,就好比寫作所用的筆,而我們有鼠標(biāo)。
hr不應(yīng)該用于格式化
<hr>不是格式化元素,所以不要用它來(lái)格式化內(nèi)容。在HTML5中,這個(gè)標(biāo)簽代表了內(nèi)容的主題分離。正確的用法是這樣的:
<p>Paragraph about puppies</p>
<p>Paragraph about puppies' favourite foods</p>
<p>Paragraph about puppies' breeds</p>
<hr>
<p>Paragraph about why I am shaving my head </p>
使用title屬性時(shí)要小心
title屬性是一個(gè)功能強(qiáng)大的工具,它可以幫助闡明頁(yè)面上元素的操作或目的,比如工具提示。但是,它不能與圖像上的alt等其他屬性互換。
HTML 5 規(guī)范道:
目前不鼓勵(lì)依賴title屬性,因?yàn)楹芏嘤脩舸聿话凑找?guī)范的訪問(wèn)方式來(lái)暴露該屬性(例如,使用鼠標(biāo)等設(shè)備來(lái)喚出提示框,而不包括只用鍵盤或觸控鍵盤的用戶,或者現(xiàn)代手機(jī)或平板電腦)。
請(qǐng)閱讀有關(guān)如何正確使用此屬性的更多信息:https://html.spec.whatwg.org/multipage/dom.html#the-title-attribute。
單引號(hào)或雙引號(hào)
我見(jiàn)過(guò)的許多代碼庫(kù),他們的標(biāo)記中混合了這兩種形式。這并不好,特別是當(dāng)你使用一個(gè)依賴于單引號(hào)的框架時(shí),比如php,當(dāng)你在一個(gè)句子中使用單引號(hào)時(shí),就像我現(xiàn)在做的一樣。另一個(gè)原因是保持一致,這總是好的。不要這樣寫:
<img alt="super funny meme" src='/img/meme.jpg'>
而寫為:
<img alt="super funny meme" src="/img/meme.jpg">
省略布爾值
當(dāng)涉及到屬性的布爾值時(shí),建議省略,因?yàn)樗鼈儾惶砑尤魏沃担€會(huì)增加標(biāo)記的權(quán)重。
public class MyActivity extends AppCompatActivity {
<audio autoplay="autoplay" src="podcast.mp3">
<!-- instead -->
<audio autoplay src="podcast.mp3">
省略類型屬性
不需要向scriptand樣式標(biāo)簽添加type屬性。某些服務(wù)(如W3C的標(biāo)記驗(yàn)證工具)還會(huì)出現(xiàn)驗(yàn)證錯(cuò)誤。
驗(yàn)證標(biāo)記
可以使用W3C的標(biāo)記驗(yàn)證等服務(wù)以確保有效的標(biāo)記。
拒絕內(nèi)聯(lián)樣式
HTML中寫的是內(nèi)容,其如何展示取決于樣式。將展示形式留給CSS吧,不要使用內(nèi)聯(lián)樣式,這將有利于開發(fā)人員和瀏覽器理解你的標(biāo)記。
總結(jié)
這些只是編寫標(biāo)簽時(shí)要記住的冰山一角。還有很多很好的資源可以讓你深入了解,強(qiáng)烈建議你重復(fù)閱讀。
《GitHub HTML最佳實(shí)踐》:https://github.com/hail2u/html-best-practices
《W3C School HTML樣式指南》:https://www.w3schools.com/html/html5_syntax.asp
希望你喜歡本文,并能寫出優(yōu)雅的標(biāo)簽。
原文:https://dev.to/yashints/let-s-write-html-like-a-pro-28h5
本文為 CSDN 翻譯,轉(zhuǎn)載請(qǐng)注明來(lái)源出處。
【END】
面我們介紹了HTML的基本標(biāo)簽,這一次我們來(lái)復(fù)習(xí)一下HTML常用標(biāo)簽
*****圖像標(biāo)簽img*****
**語(yǔ)義**:用來(lái)展示一張圖片
**屬性**
src:文件的路徑
titl:鼠標(biāo)懸停時(shí)顯示的內(nèi)容
alt:當(dāng)圖片加載不出來(lái)時(shí)的替代文本
***路徑***
路徑又分為相對(duì)路徑和絕對(duì)路徑
相對(duì)路徑:不需要寫盤符,直接從當(dāng)前工程開始找指定的文件,如(image/itlike.png)
絕對(duì)路徑:需要寫盤符,從指定盤符路徑加載文件,如(d:/HtmlProject/image/itlike.png)
./:表示當(dāng)前路徑
../:相對(duì)路徑表示上一級(jí)
***超鏈接a標(biāo)簽***
語(yǔ)義
a標(biāo)簽定義超鏈接,用于從一張頁(yè)面鏈接到另一張頁(yè)面。
a 元素最重要的屬性是 href 屬性,它指示鏈接的目標(biāo)。
格式
```
蘇少年網(wǎng)我為國(guó)旗點(diǎn)個(gè)贊活動(dòng)的入口在哪里呢?具體怎么操作呢?相信很多小伙伴還沒(méi)有找到活動(dòng)的入口,所以接下來(lái)小編就給大家?guī)?lái)了江蘇少年網(wǎng)我為國(guó)旗點(diǎn)個(gè)贊活動(dòng)入口及操作指南介紹,有需要的小伙伴一起來(lái)看看吧,希望能幫助到你。
江蘇少年網(wǎng)我為國(guó)旗點(diǎn)個(gè)贊活動(dòng)入口:
復(fù)制網(wǎng)址鏈接http://ycw.com.cn/likeactivities/index到瀏覽器查看
活動(dòng)參與指南: 活動(dòng)參與指南:
1、復(fù)制上方鏈接打開“我為國(guó)旗點(diǎn)個(gè)贊”活動(dòng)頁(yè)面,點(diǎn)擊界面中的“我要點(diǎn)贊”;
2、拖動(dòng)滑塊進(jìn)行驗(yàn)證;
3、選擇所在區(qū)市;
4、點(diǎn)贊成功!
活動(dòng)規(guī)則: 活動(dòng)規(guī)則:
一、點(diǎn)贊時(shí)間
2020年6月10日至10月28日。
二、點(diǎn)贊程序
登錄活動(dòng)網(wǎng)頁(yè)后,點(diǎn)擊“我要點(diǎn)贊”,在對(duì)話框中選擇所在設(shè)區(qū)市、縣區(qū)后即可進(jìn)行點(diǎn)贊。
三、活動(dòng)組織
1.各地關(guān)工委要會(huì)同文明辦、教育局等部門,緊密聯(lián)系中小學(xué)校,依托校外教育輔導(dǎo)站等,積極組織更多學(xué)校更多學(xué)生參與活動(dòng)。
2.關(guān)工委“五老”、學(xué)校少先隊(duì)輔導(dǎo)員等,要結(jié)合點(diǎn)贊活動(dòng)過(guò)程,認(rèn)真對(duì)學(xué)生進(jìn)行有關(guān)國(guó)旗知識(shí)、國(guó)旗意義、國(guó)旗法規(guī)的教育,并結(jié)合“新冠”疫情防控,講好中國(guó)抗“疫”故事,宣講中國(guó)特色社會(huì)主義制度優(yōu)勢(shì),切實(shí)增強(qiáng)點(diǎn)贊活動(dòng)的實(shí)效。
3.要統(tǒng)籌安排時(shí)間,提高活動(dòng)效率,避免和學(xué)校教學(xué)進(jìn)度發(fā)生沖突。
4.活動(dòng)結(jié)束后,將根據(jù)各市、縣區(qū)的點(diǎn)贊量,評(píng)選出活動(dòng)優(yōu)秀組織獎(jiǎng)。
來(lái)源:咖綠茵手游網(wǎng)
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。