整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          在學(xué)習(xí)html?這一篇文章就夠了

          家好,我是四川新華電腦學(xué)院小張,

          這篇文章講解Html的相關(guān)知識(shí),如果想從零開始學(xué)習(xí)php編程的小伙伴,請(qǐng)從淼哥的第一篇文章看!

          上次文章講解的是DTD,也就是我們常說的DOCTYPE。

          我們繼續(xù)講解。

          <!DOCTYPE html>-------------------------DOCTYPE 聲明了文檔類型

          <html> ------------------------------------文檔類型html開始標(biāo)記

          <head> -----------------------------------頭部標(biāo)記

          <title>我的第一個(gè)標(biāo)題</title>

          </head> ----------------------------------頭部結(jié)束標(biāo)記

          <body> ---------------------------------文件主體

          <h1>我的第一個(gè)標(biāo)題</h1>

          <p>我的第一個(gè)段落。</p>

          </body> ----------------------------------文件主體結(jié)束

          </html> ----------------------------------文檔類型html結(jié)束標(biāo)記

          這個(gè)是我們上次講解的html架構(gòu)。

          接著我們繼續(xù)講解。

          html標(biāo)簽

          ?寫法<html></html>

          HTML標(biāo)簽是HTML文檔的根標(biāo)簽,在HTML中標(biāo)簽是一層嵌套一層的,而<HTML>標(biāo)簽是根標(biāo)簽(最外面一層的標(biāo)簽),所有其他的標(biāo)簽都寫在這個(gè)標(biāo)簽中。

          根標(biāo)簽我們可以理解為最外層的標(biāo)簽。(看上面的結(jié)構(gòu))

          文檔頭信息

          HTML又包含head標(biāo)簽和body標(biāo)簽,其中head標(biāo)簽中設(shè)置文檔頭信息,body標(biāo)簽中設(shè)置文檔的內(nèi)容。

          <head> 標(biāo)簽用于定義文檔的頭部,它是所有頭部元素的容器。

          <head> 中的元素可以引用腳本、指示瀏覽器在哪里找到樣式表、提供元信息等等。

          下面這些標(biāo)簽可用在 head 部分:<base>, <link>, <meta>, <script>, <style>, 以及 <title>。

          那么怎么理解元信息呢?比如對(duì)于網(wǎng)頁本身的一些描述,該網(wǎng)頁的標(biāo)題?該網(wǎng)頁的描述,該網(wǎng)頁用的什么字符編碼!等等,這些信息描述著網(wǎng)頁,用戶又看不到這些信息。

          比如某個(gè)人的性別,姓名,當(dāng)你看到這個(gè)人,可以看到外貌,身高,穿衣服的顏色。但是你并不知道這個(gè)人的姓名,有的也不知道性別。尤其像某些中性一點(diǎn)的長(zhǎng)相。是吧。元信息不會(huì)渲染,但是屬于該網(wǎng)頁的信息。

          • base標(biāo)簽

          (該標(biāo)簽應(yīng)該學(xué)習(xí)了a img link form這幾個(gè)標(biāo)簽之后在學(xué)習(xí),看不懂沒關(guān)系,可以先了解)

          base標(biāo)簽,是嵌套在head標(biāo)簽中的一個(gè)標(biāo)簽。這個(gè)標(biāo)簽是一個(gè)可選標(biāo)簽,也就是可以有,也可以沒有!

          <base> 標(biāo)簽為頁面上的所有鏈接規(guī)定默認(rèn)地址或默認(rèn)目標(biāo)。

          通常情況下,瀏覽器會(huì)從當(dāng)前文檔的 URL 中提取相應(yīng)的元素來填寫相對(duì) URL 中的空白。比如:我有個(gè)<a href='aa.html'>標(biāo)簽,那么瀏覽器會(huì)從當(dāng)前文檔的url,比如當(dāng)前文檔的url是www.xxxx.com/aa/bb/cc.html,瀏覽器會(huì)把www.xxxx.com/aa/bb/路徑拿出來,和aa.html組成新的url,那么這個(gè)超鏈接就會(huì)變成www.xxxx.com/aa/bb/aa.html。

          使用 <base> 標(biāo)簽可以改變這一點(diǎn)。

          如果我們將base設(shè)置成為其他的url。<base />那么,還是<a href='aa.html'>標(biāo)簽,就會(huì)把http://www.myweb.com/i/這個(gè)路徑拿出來和aa.html組成新的url地址。那么這個(gè)url超鏈接就會(huì)變成http://www.myweb.com/i/a.html這個(gè)鏈接了。

          瀏覽器隨后將不再使用當(dāng)前文檔的 URL,而使用指定的基本 URL 來解析所有的相對(duì) URL。這其中包括 <a>、<img>、<link>、<form> 標(biāo)簽中的 URL。

          base標(biāo)簽的用法

          <base /> ------必選屬性。(你有這個(gè)標(biāo)簽,就必須擁有這個(gè)屬性)

          <base target="_blank" /> ------------------可選屬性。target意思是目標(biāo),打開超鏈接的方式,

          當(dāng)然也可以將兩個(gè)屬性寫到一個(gè)base標(biāo)簽中。

          <base target="_blank"/>

          默認(rèn)target的屬性是_self,也就是點(diǎn)擊超鏈接,在當(dāng)前頁面的框架中打開。(為什么不是當(dāng)前頁面呢?因?yàn)轫撁嬗锌赡芮短自诳蚣芾铮?/p>

          • link標(biāo)簽

          <link> 標(biāo)簽定義文檔與外部資源的關(guān)系。 也就是說定義外部CSS文件存放的位置。因?yàn)槿绻麑SS全部寫在網(wǎng)頁中,這樣顯的頁面太亂,一般都是單獨(dú)存放在一個(gè)CSS 文件中的。

          <link> 標(biāo)簽最常見的用途是鏈接樣式表CSS。

          用法: <head> <link rel="stylesheet" type="text/css" href="test.css"></head>

          • meta標(biāo)簽

          <meta> 元素可提供有關(guān)頁面的元信息(meta-information),針對(duì)搜索引擎和更新頻度的描述和關(guān)鍵詞。

          <meta> 標(biāo)簽位于文檔的頭部,不包含任何內(nèi)容。

          <meta> 標(biāo)簽的屬性定義了與文檔相關(guān)聯(lián)的名稱/值對(duì)。

          meta標(biāo)簽的作用有:搜索引擎優(yōu)化(SEO),定義頁面使用語言,自動(dòng)刷新并指向新的頁面,實(shí)現(xiàn)網(wǎng)頁轉(zhuǎn)換時(shí)的動(dòng)態(tài)效果,控制頁面緩沖,網(wǎng)頁定級(jí)評(píng)價(jià),控制網(wǎng)頁顯示的窗口等!

          由于meta信息相對(duì)比較復(fù)雜我們將在以后HTML高級(jí)課程中講解

          最常用meta標(biāo)簽是:

          <meta charset=“utf-8”/>

          設(shè)置頁面編碼寫法。(頁面編碼注意,要設(shè)置的編碼和文檔的編碼統(tǒng)一,否則會(huì)出亂碼)

          具體編碼以后的文章講解。

          • script標(biāo)簽

          <script> 標(biāo)簽用于定義客戶端腳本,比如 JavaScript。

          script 元素既可以包含腳本語句,也可以通過 src 屬性指向外部腳本文件。

          必需的 type 屬性規(guī)定腳本的 MIME 類型。

          JavaScript 的常見應(yīng)用是圖像操作、表單驗(yàn)證以及動(dòng)態(tài)內(nèi)容更新。

          用法<script type="text/javascript">document.write("Hello World!") ></script> 以后學(xué)javascript將會(huì)用到,這里只做了解。

          • style標(biāo)簽

          <style> 標(biāo)簽用于為 HTML 文檔定義樣式信息。(內(nèi)聯(lián)CSS樣式)

          在 style 中,您可以規(guī)定在瀏覽器中如何呈現(xiàn) HTML 文檔。

          type 屬性是必需的,定義 style 元素的內(nèi)容。唯一可能的值是 "text/css"。

          用法<head> <style type="text/css"> h1 {color:red} p {color:blue} </style> </head>

          該標(biāo)簽將會(huì)在學(xué)習(xí)CSS時(shí)用到,這里只做了解

          • title標(biāo)簽

          <title> 元素可定義文檔的標(biāo)題。

          瀏覽器會(huì)以特殊的方式來使用標(biāo)題,并且通常把它放置在瀏覽器窗口的標(biāo)題欄或狀態(tài)欄上。

          同樣,當(dāng)把文檔加入用戶的鏈接列表或者收藏夾或書簽列表時(shí),標(biāo)題將成為該文檔鏈接的默認(rèn)名稱。

          用法<title>網(wǎng)頁標(biāo)題</title>

          <title> 標(biāo)簽是 <head> 標(biāo)簽中唯一要求包含的東西。(必須有title標(biāo)簽)

          • head 標(biāo)簽總結(jié)

          <head>標(biāo)簽唯一要求包含的標(biāo)簽是<title>其他那幾種可以包含也可以不包含,但是一般我們會(huì)包含<meta charset=“utf-8”>告訴瀏覽器我們的文件編碼是什么。

          常用的標(biāo)簽有:

          <meta name=“keywords” content=“關(guān)鍵字”>告訴搜索引擎這個(gè)頁面的關(guān)鍵字

          <meta name=“description” content=“頁面介紹”>告訴搜索引擎這個(gè)頁面的簡(jiǎn)介

          meta標(biāo)簽,會(huì)在Html高級(jí)部分繼續(xù)講解。

          <body>頁面主體信息

          body 元素包含html的所有顯示web內(nèi)容(比如文本、超鏈接、圖像、表格和列表等等。)

          Body中可以使用塊級(jí)標(biāo)簽和內(nèi)聯(lián)標(biāo)簽來顯示文檔結(jié)構(gòu)

          塊級(jí)標(biāo)簽:h1~h6,p,div,table,ul,dl,from標(biāo)簽等

          內(nèi)聯(lián)標(biāo)簽:a,img,span,I,strong,select標(biāo)簽等

          什么塊級(jí)標(biāo)簽(元素)呢?塊級(jí)標(biāo)簽和內(nèi)聯(lián)標(biāo)簽區(qū)別是什么?

          塊級(jí)元素(block)特性:總是獨(dú)占一行

          內(nèi)聯(lián)元素(inline)特性:和相鄰的內(nèi)聯(lián)元素在同一行。

          標(biāo)簽和元素是一個(gè)意思!

          <body>中包含的標(biāo)簽?

          • 標(biāo)題標(biāo)簽

          通過<h1>~<h6>六個(gè)標(biāo)簽定義不同大寫的標(biāo)簽。

          • 文本格式化標(biāo)簽

          早期編寫html代碼的時(shí)候,那個(gè)時(shí)候css用的很少,所以有一些標(biāo)簽來文本格式化。現(xiàn)在基本都用CSS來格式化文本的大小顏色粗體等等。

          而更多時(shí)候使用這些標(biāo)簽來進(jìn)行占位,利用CSS來渲染這些標(biāo)簽。常用的是span。

          • html中的注釋

          注釋用來說明、注解、注釋代碼。給人看的不會(huì)被執(zhí)行。

          格式為:<!– 注釋內(nèi)容-->

          瀏覽器頁面不會(huì)被顯示,而頁面源代碼中可以看到注釋的內(nèi)容。因?yàn)轫?xiàng)目越大,或者你的頁面越大,當(dāng)時(shí)可能你能看懂。時(shí)間長(zhǎng)了肯定看不明白。如果有注釋的話,可以馬上理解當(dāng)時(shí)為什么要這么做。

          • 水平線

          在HTML代碼中加入一條水平線利用<hr />來操作。

          • 段落標(biāo)簽-<p>

          瀏覽器會(huì)自動(dòng)地在段落的前后添加空行,一般用在大段的文章。

          • 換行標(biāo)簽<br/>

          <br/>標(biāo)簽可以實(shí)現(xiàn)換一個(gè)新行 ,正常來說,你在編寫html頁面的時(shí)候,無論怎么換行,在頁面用瀏覽器打開的時(shí)候,是不會(huì)換行的,如果加入了<br/>標(biāo)簽,瀏覽器就會(huì)認(rèn)為這里該換行顯示了。

          • 鏈接<a>標(biāo)簽

          HTML 使用超級(jí)鏈接與網(wǎng)絡(luò)上的另一個(gè)文檔相連。

          幾乎可以在所有的網(wǎng)頁中找到鏈接。點(diǎn)擊鏈接可以從一張頁面跳轉(zhuǎn)到另一張頁面。

          超鏈接可以是一個(gè)字,一個(gè)詞,或者一組詞,也可以是一幅圖像,您可以點(diǎn)擊這些內(nèi)容來跳轉(zhuǎn)到新的文檔或者當(dāng)前文檔中的某個(gè)部分。

          當(dāng)您把鼠標(biāo)指針移動(dòng)到網(wǎng)頁中的某個(gè)鏈接上時(shí),箭頭會(huì)變?yōu)橐恢恍∈帧?

          我們通過使用 <a> 標(biāo)簽在 HTML 中創(chuàng)建鏈接。

          有兩種使用 <a> 標(biāo)簽的方式:

          1、通過使用 href 屬性 - 創(chuàng)建指向另一個(gè)文檔的鏈接

          <a href=“鏈接的文件名” target=“_blank”>鏈接名</a>

          2、通過使用 name 屬性 - 創(chuàng)建文檔內(nèi)的書簽

          一般錨點(diǎn)鏈接主要用于網(wǎng)頁太長(zhǎng)了,想瀏覽的那個(gè)位置需要滾輪滾動(dòng)好幾下才能到達(dá)那個(gè)位置,而使用錨點(diǎn)(書簽)直接可以準(zhǔn)確的跳轉(zhuǎn)到你想去的位置。

          <a name=“文檔標(biāo)簽名”>文檔標(biāo)簽</a>

          文檔中對(duì)錨進(jìn)行命名(創(chuàng)建一個(gè)書簽)

          <a href=“#tips”>鏈接名</a>

          同一個(gè)文檔中創(chuàng)建指向該錨的鏈接用關(guān)鍵字#+錨名字

          <a >有用的提示</a>

          也可以鏈接到其他網(wǎng)絡(luò)上的頁面錨的鏈接

          • 圖像<img>

          可以使用img標(biāo)簽在頁面上顯示一張圖片。

          格式:

          <img src=“圖片路徑” width=“寬” height=“高” alt=“圖片無法顯示時(shí)的提示”title=“鼠標(biāo)放圖片上的提示”/>

          備注:一般只設(shè)置寬即可,瀏覽器會(huì)根據(jù)圖片大小進(jìn)行縮放。如果強(qiáng)行設(shè)置寬、高,有的時(shí)候圖片會(huì)失真。

          • 列表標(biāo)簽

          列表標(biāo)簽分為有序標(biāo)簽和無序標(biāo)簽

          當(dāng)然、有序列表前面也可以更改序號(hào),需要在CSS中學(xué)習(xí)改變序號(hào)的方法。

          • 二級(jí)列表<dl>標(biāo)簽

          • 表格標(biāo)簽-table

          Table標(biāo)簽用來制作表格,表格由若干個(gè)行<tr>組成,每一行又由若干個(gè)單元格<td>組成。

          Table標(biāo)簽中使用tr標(biāo)簽定義行,td標(biāo)簽定義一行中的一個(gè)列。如:定義一個(gè)一行四列。

          表格的表頭使用 <th> 標(biāo)簽進(jìn)行定義。

          大多數(shù)瀏覽器會(huì)把表頭顯示為粗體居中的文本:

          <table>標(biāo)簽的cellpadding 屬性規(guī)定單元邊沿與其內(nèi)容之間的空白。

          <table>標(biāo)簽的cellspacing 屬性規(guī)定單元格之間的空間。

          橫向合并單元格-colspan

          表格-table-豎向-rowspan

          • 內(nèi)聯(lián)框架

          可以使用iframe在頁面中在嵌入另外一個(gè)頁面。

          • 分區(qū)標(biāo)簽-div

            Div是塊級(jí)標(biāo)簽,主要是用來作為標(biāo)簽容器,和規(guī)劃頁面結(jié)構(gòu)(頁面布局)的

            用法:

            <div style="margin:auto;border:1px solid #f00;width: 300px;height: 600px"></div>

          在很早以前,小編剛?cè)胄械臅r(shí)候,那個(gè)時(shí)候CSS不流行,頁面布局全部都用表格來做。那酸爽實(shí)在無法用言語來表達(dá)。而現(xiàn)在都是用CSS來進(jìn)行頁面布局。這個(gè)div標(biāo)簽頁是以后布局常用的標(biāo)簽。

          • Span標(biāo)簽

          Span標(biāo)簽是內(nèi)聯(lián)標(biāo)簽,沒有特殊功能。主要是用來做為文本的容器,span標(biāo)簽主要是配合CSS來處理文字。

          比如,我只想讓幾個(gè)文字編程紅顏色的,這個(gè)時(shí)候就可以用span標(biāo)簽配合CSS來做了。

          • 框架集-frameset

          我們可以使用frameset標(biāo)簽把一個(gè)頁面窗口分隔成多個(gè)窗口,然后使用frame標(biāo)簽為每一個(gè)窗口制定一個(gè)頁面

          使用rows/cols的值規(guī)定每行或每列占據(jù)屏幕的面積,中間用逗號(hào)分隔。

          frameset不能放在body中,如果放在body中不能顯示框架 !

          在最新的html5中已經(jīng)刪除了這個(gè)標(biāo)簽了

          • 實(shí)體

          在 HTML 中,某些字符是預(yù)留的。

          在 HTML 中不能使用小于號(hào)(<)和大于號(hào)(>),這是因?yàn)闉g覽器會(huì)誤認(rèn)為它們是標(biāo)簽。

          比如我們想在網(wǎng)頁使用空格,直接按空格鍵是肯定不好使的,所以使用使用實(shí)體&nbsp; !

          • 音頻

          <embed src="helloworld.swf" height=“100” width=“100”/>

          <embed> 標(biāo)簽是 HTML 5 中的新標(biāo)簽。

          使用embed標(biāo)簽可以在網(wǎng)頁中嵌入Flash,Mid,MP3等嵌入式內(nèi)容

          現(xiàn)在html5出了很多新的標(biāo)簽,以后會(huì)專門有講解html5的文章。

          今天我們一起了解了html相關(guān)的很多標(biāo)簽。其實(shí)都很簡(jiǎn)單。只要自己動(dòng)手做一做,就可以做出來了。如果想要做出精美的頁面,還是需要配合css來實(shí)現(xiàn)的哦。

          明天我們繼續(xù)講解html的一些其他相關(guān)知識(shí)。手寫不宜!請(qǐng)給小編點(diǎn)個(gè)贊!十分感謝。

          文將詳細(xì)介紹如何在.NET桌面程序中使用自定義的XML配置文件來保存和讀取設(shè)置。除了XML之外,我們還將探討其他常見的配置文件格式,如JSON、INI和YAML,以及它們的優(yōu)缺點(diǎn)和相關(guān)的NuGet類庫。最后,我們將重點(diǎn)介紹我們?yōu)楹芜x擇XML作為配置文件格式,并展示一個(gè)實(shí)用的示例。

          1. 背景

          在.NET桌面程序中,通常使用setting文件來保存程序的配置信息。使用setting文件的方法很簡(jiǎn)單,只需在項(xiàng)目中添加一個(gè)setting文件,然后通過Properties.Settings.Default來獲取和保存設(shè)置即可。

          我的開源項(xiàng)目 HackerScreenSaver[1] 之前就是使用這種方式,但是當(dāng)我在升級(jí) Windows11 的內(nèi)核版本后,發(fā)現(xiàn)當(dāng)程序在被系統(tǒng)以屏保程序啟動(dòng)后,無法加載配置了。

          如此這般就需要使用其他方式來存儲(chǔ)配置文件了。畢竟,setting文件并非唯一可用于保存設(shè)置的方式。我們可以選擇存儲(chǔ)到注冊(cè)表,或者自己寫配置文件并保存。

          2. 常見的配置文件格式

          對(duì)于一些簡(jiǎn)單的配置我們甚至可以直接寫一個(gè)二進(jìn)制文件,當(dāng)然一般情況下我們還是選擇常見格式的配置文件,比如:JSON、INI 和 YAML。

          1.JSON(JavaScript Object Notation) 格式?優(yōu)點(diǎn):易于閱讀和編寫,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于Web API和前端開發(fā)。?缺點(diǎn):根據(jù) JSON 規(guī)范,其是不支持注釋的(單獨(dú) Json 文件在某些編輯器可以正確解析注釋,在 .NET Core 中通過 JSON 配置提供程序讀取配置時(shí),也可以在配置文件中添加注釋)。?相關(guān)類庫:Newtonsoft.Json(建議使用自帶的 System.Text.Json),可參考相關(guān)遷移教程[2]2.INI(Initialization File)?優(yōu)點(diǎn):簡(jiǎn)潔,易于閱讀和編輯,適用于存儲(chǔ)簡(jiǎn)單的鍵值對(duì)。?缺點(diǎn):不支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和類型。?相關(guān)類庫:ini-parser3.YAML(Yet Another Markup Language)?優(yōu)點(diǎn):簡(jiǎn)潔,易于閱讀和編輯,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),支持注釋。?缺點(diǎn):縮進(jìn)敏感,可能導(dǎo)致錯(cuò)誤。?相關(guān)類庫:YamlDotNet

          3. HackerScreenSaver 的配置選擇

          HackerScreenSaver 為了設(shè)計(jì)的小巧,根據(jù)合適原則和簡(jiǎn)單原則,我最終選擇了不需要引入其他第三方的 XML 格式配置文件。

          XML(eXtensible Markup Language)具有以下優(yōu)點(diǎn):

          ?可擴(kuò)展性強(qiáng),支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。?支持注釋,便于理解和維護(hù)。?作為標(biāo)準(zhǔn)的數(shù)據(jù)交換格式,易于與其他系統(tǒng)集成。

          以下是我們?cè)O(shè)計(jì)的一個(gè)簡(jiǎn)單的配置類 SimpleSetting,用于保存設(shè)置:

          • public class SimpleSetting{ // 類的屬性和構(gòu)造函數(shù)省略...
            /// <summary> /// 從文件中讀取設(shè)置 /// </summary> /// <param name="path">配置文件路徑</param> public SimpleSetting(string path) { System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSetting)); using (System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open)) { SimpleSetting ss = (SimpleSetting)xs.Deserialize(fs); isLocal = ss.isLocal; uInfo = ss.uInfo; Opacity = ss.Opacity; autoExit = ss.autoExit; } }
            /// <summary> /// 保存設(shè)置到文件 /// </summary> /// <param name="path">配置文件路徑</param> public void Save(string path) { System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSetting)); using (System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Create)) { xs.Serialize(fs, this); } }}

            SimpleSetting 類中包含了從XML文件中讀取設(shè)置和將設(shè)置保存到XML文件的方法。為了使用該類,我們只需要在程序中創(chuàng)建一個(gè) SimpleSetting 對(duì)象,然后調(diào)用其 SaveLoad 方法即可。這樣,我們就可以在.NET桌面程序中使用自定義的XML配置文件來保存設(shè)置了。

            4. 最后

            本文詳細(xì)介紹了如何在.NET桌面程序中使用自定義的 XML 配置文件以及為何選擇 XML 作為配置文件格式。同時(shí),我們還探討了其他常見的配置文件格式,如 JSON、INI 和 YAML,以及它們的優(yōu)缺點(diǎn)和相關(guān)的 NuGet 類庫。希望這篇文章能幫助你找到適合你項(xiàng)目需求的配置文件解決方案!

            References

            [1] HackerScreenSaver: https://github.com/sangyuxiaowu/HackerScreenSaver?wt.mc_id=DT-MVP-5005195
            [2] 相關(guān)遷移教程: https://learn.microsoft.com/zh-cn/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft?wt.mc_id=DT-MVP-5005195

          何提升Web頁面的性能,很多開發(fā)人員從多個(gè)方面來下手如JavaScript、圖像優(yōu)化、服務(wù)器配置,文件壓縮或是調(diào)整CSS。

          很顯然HTML 已經(jīng)達(dá)到了一個(gè)瓶頸,盡管它是開發(fā)Web 界面必備的核心語言。HTML頁面的負(fù)載也是越來越重。大多數(shù)頁面平均需要40K的空間,像一些大型網(wǎng)站會(huì)包含數(shù)以千計(jì)的HTML 元素,頁面Size會(huì)更大。

          如何有效的降低HTML 代碼的復(fù)雜度和頁面元素的數(shù)量,本文主要解決了這個(gè)問題,從多個(gè)方面介紹了如何編寫簡(jiǎn)練,清晰的HTML 代碼,能夠使得頁面加載更為迅速,且能在多種設(shè)備中運(yùn)行良好。

          在設(shè)計(jì)和開發(fā)過程中需要遵循以下原則:

          • 結(jié)構(gòu)分離:使用HTML 增加結(jié)構(gòu),而不是樣式內(nèi)容;
          • 保持整潔:為工作流添加代碼驗(yàn)證工具;使用工具或樣式向?qū)ЬS護(hù)代碼結(jié)構(gòu)和格式
          • 學(xué)習(xí)新語言:獲取元素結(jié)構(gòu)和語義標(biāo)記。
          • 確保可訪問: 使用ARIA 屬性和Fallback 屬性等
          • 測(cè)試: 使網(wǎng)站在多種設(shè)備中能夠良好運(yùn)行,可使用emulators和性能工具。

          HTML,CSS 和JavaScript三者的關(guān)系

          HTML 是用于調(diào)整頁面結(jié)構(gòu)和內(nèi)容的標(biāo)記語言。HTML 不能用于修飾樣式內(nèi)容,也不能在頭標(biāo)簽中輸入文本內(nèi)容,使代碼變得冗長(zhǎng)和復(fù)雜,相反使用CSS 來修飾布局元素和外觀比較合適。HTML元素默認(rèn)的外觀是由瀏覽器默認(rèn)的樣式表定義的,如在Chrome中h1標(biāo)簽元素會(huì)渲染成32px的Times 粗體。

          三條通用設(shè)計(jì)規(guī)則:

          1. 使用HTML 來構(gòu)造頁面結(jié)構(gòu),CSS修飾頁面呈現(xiàn),JavaScript實(shí)現(xiàn)頁面功能。CSS ZenGarden 很好地展示了行為分離。
          2. 如果能用CSS或JavaScript實(shí)現(xiàn)就少用HTML代碼。
          3. 將CSS和JavaScript文件與HTML 分開存放。這可有助于緩存和調(diào)試。

          文檔結(jié)構(gòu)方面也可以做優(yōu)化,如下:

          • 使用HTML5 文檔類型,以下是空文件:
          <!DOCTYPE html>
          <html>
          <head>
           <title>Recipes: pesto</title>
          </head>
          <body>
           <h1>Pesto</h1>
           <p>Pesto is good!</p>
          </body>
          </html>
          
          • 在文檔起始位置引用CSS文件,如下:
          <head>
           <title>My pesto recipe</title>
           <link rel="stylesheet" href="/css/global.css">
           <link rel="stylesheet" href="css/local.css">
          </head>
          

          使用這兩種方法,瀏覽器會(huì)在解析HTML代碼之前將CSS信息準(zhǔn)備好。因此有助于提升頁面加載性能。

          在頁面底部body結(jié)束標(biāo)簽之前輸入JavaScript代碼,這樣有助于提升頁面加載的速度,因?yàn)闉g覽器在解析JavaScript代碼之前將頁面加載完成,使用JavaScript會(huì)對(duì)頁面元素產(chǎn)生積極的影響。

          <body>
           ...
           <script src="/js/global.js">
           <script src="js/local.js">
          </body>
          

          使用Defer和async屬性,腳本元素具有async 屬性無法保證會(huì)按順序執(zhí)行。

          可在JavaScript代碼中添加Handlers。千萬別加到HTML內(nèi)聯(lián)代碼中,比如下面的代碼則容易導(dǎo)致錯(cuò)誤且不易于維護(hù):

          index.html:

          <head>
           ...
           <script src="js/local.js">
          </head>
          <body onload="init()">
           ...
           <button onclick="handleFoo()">Foo</button>
           ...
          </body>
          

          下面的寫法比較好:

          index.html:

          <head>
           ...
          </head>
          <body>
           ...
           <button id="foo">Foo</button>
           ...
           <script src="js/local.js">
          </body>
          

          js/local.js:

          init();
          var fooButton =
           document.querySelector('#foo');
          fooButton.onclick = handleFoo();
          

          驗(yàn)證

          優(yōu)化網(wǎng)頁的一種方法就是瀏覽器可處理非法的HTML 代碼。合法的HTML代碼很容易調(diào)試,且占內(nèi)存少,耗費(fèi)資源少,易于解析和渲染運(yùn)行起來更快。非法的HTML代碼讓實(shí)現(xiàn)響應(yīng)式設(shè)計(jì)變得異常艱難。

          當(dāng)使用模板時(shí),合法的HTML代碼顯得異常重要,經(jīng)常會(huì)發(fā)生模板單獨(dú)運(yùn)行良好,當(dāng)與其他模塊集成時(shí)就報(bào)各種各樣的錯(cuò)誤,因此一定要保證HTML代碼的質(zhì)量,可采取以下措施:

          • 在工作流中添加驗(yàn)證功能:使用驗(yàn)證插件如HTMLHint或SublineLinter幫助你檢測(cè)代碼錯(cuò)誤。
          • 使用HTML5文檔類型
          • 確保HTML的層次結(jié)構(gòu)易于維護(hù),要避免元素嵌套處于左開狀態(tài)。
          • 保證添加各元素的結(jié)束標(biāo)簽。
          • 刪除不必要的代碼 ;沒有必要為自關(guān)閉的元素添加結(jié)束標(biāo)簽;Boolean 屬性不需要賦值,如果存在則為True;

          代碼格式

          格式一致性使得HTML代碼易于閱讀,理解,優(yōu)化,調(diào)試。

          語義標(biāo)記

          語義指意義相關(guān)的事物,HTML 可從頁面內(nèi)容中看出語義:元素和屬性的命名一定程度上表達(dá)了內(nèi)容的角色和功能。HTML5 引入了新的語義元素,如<header>,<footer>及<nav>。

          選擇合適的元素來編寫代碼可保證代碼的易讀性:

          • 使用<h1>(<h2>,<h3>…)表示標(biāo)題,<ul>或<ol>實(shí)現(xiàn)列表
          • 注意使用<article> 標(biāo)簽之前應(yīng)添加<h1>標(biāo)簽;
          • 選擇合適的HTML5語義元素如<header>,<footer>,<nav>,<aside>;
          • 使用<p>描述Body 文本,HTML5 語義元素可以形成內(nèi)容,反之不成立。
          • 使用<em>和<strong>標(biāo)簽替代<i>和<b>標(biāo)簽。
          • 使用<label>元素,輸入類型,占位符及其他屬性來強(qiáng)制驗(yàn)證。
          • 將文本和元素混合,并作為另一元素的子元素,會(huì)導(dǎo)致布局錯(cuò)誤,

          例如:

          <div>Name: <input type="text" id="name"></div>
          

          換種寫法會(huì)更好:

           1: <div>
           2: <label for="name">Name:</label><input type="text" id="name">
           3: </div>
          

          布局

          要提高HTML代碼的性能,要遵循HTML 代碼以實(shí)現(xiàn)功能和為目標(biāo),而不是樣式。

          • 使用<p>元素修飾文本,而不是布局;默認(rèn)<p>是自動(dòng)提供邊緣,而且其他樣式也是瀏覽器默認(rèn)提供的。
          • 避免使用<br>分行,可以使用block元素或CSS顯示屬性來代替。
          • 避免使用<hr>來添加水平線,可使用CSS的border-bottom 來代替。
          • 不到關(guān)鍵時(shí)刻不要使用div標(biāo)簽。
          • 盡量少用Tables來布局。
          • 可以多使用Flex Box
          • 使用CSS 來調(diào)整邊距等。

          CSS

          雖然本文講解的是如何優(yōu)化HTML,下面介紹了一些使用css的基本技能:

          • 避免內(nèi)聯(lián)css
          • 最多使用ID類 一次
          • 當(dāng)涉及多個(gè)元素時(shí),可使用Class來實(shí)現(xiàn)。

          以上就是本文介紹的優(yōu)化HTML代碼的技巧,一個(gè)高質(zhì)量高性能的網(wǎng)站,往往取決于對(duì)細(xì)節(jié)的處理,因此我們?cè)谌粘i_發(fā)中,能夠考慮到用戶體驗(yàn),后期維護(hù)等方面,則會(huì)產(chǎn)生更高效的開發(fā)。


          主站蜘蛛池模板: 精品视频一区二区三区免费 | 一区免费在线观看| 日本在线不卡一区| 精品一区二区三区在线成人 | 波多野结衣一区二区三区88| 日本一区二区三区在线视频观看免费| 无码日韩精品一区二区人妻 | 欧洲精品一区二区三区| 久久99国产精一区二区三区| 无码人妻精品一区二区三区东京热 | 视频一区二区三区免费观看| 中日av乱码一区二区三区乱码| 日韩人妻一区二区三区免费 | 国产AV国片精品一区二区| 国产自产V一区二区三区C| 97se色综合一区二区二区| 亚洲国产精品成人一区| 99精品国产高清一区二区| 国产嫖妓一区二区三区无码| 国产一区二区中文字幕| 亚洲国产一区二区三区在线观看 | 久久精品国产一区二区三| 久久久无码精品人妻一区| 爆乳熟妇一区二区三区| 亚洲高清一区二区三区| 国产一区二区不卡在线播放| 麻豆AV无码精品一区二区 | 亚洲一区二区三区久久| 亚洲A∨精品一区二区三区| 无码乱码av天堂一区二区| 一区二区三区国模大胆| 亚洲A∨精品一区二区三区下载| 久久精品无码一区二区日韩AV| 中文字幕乱码人妻一区二区三区 | 精品无码人妻一区二区三区| 视频一区二区三区人妻系列| 国产精品一区二区不卡| 国产精品熟女一区二区| 日韩一区二区在线观看| 中文字幕AV无码一区二区三区| 手机看片一区二区|