html 10-HTML基礎回顧
10-HTML基礎回顧
#本文主要內容
-
html 的常見元素
-
html 元素的分類
-
html 元素的巢狀關係
-
html 元素的預設樣式和 CSS Reset
-
html 常見面試題
#html 的常見元素
html 的常見元素主要分為兩類:head 區域的元素、body 區域的元素。下面來分別介紹。
#1、head 區域的 html 元素
head 區域的 html 元素,不會在頁面上留下直接的內容。
-
meta
-
title
-
style
-
link
-
script
-
base
base元素的介紹:
<base href="/">
base 標籤用於指定基礎的路徑。指定之後,所有的 a 連結都是以這個路徑為基準。
#2、html 元素(body 區域)
body 區域的 html 元素,會直接出現在頁面上。
-
div、section、article、aside、header、footer
-
p
-
span、em、strong
-
表格元素:table、thead、tbody、tr、td
-
列表元素:ul、ol、dl、dt、dd
-
a
-
表單元素:form、input、select、textarea、button
div 是最常見的元素,大多數場景下,都可以用div(實在不行就多包幾層div)。可見,div 是比較通用的元素,這也決定了 div 的的語義並不是很明確。
常見標籤的重要屬性:
- a[href,target]
- img[src,alt]
- table td[colspan,rowspan]。設定當前單元格佔據幾行幾列。在合併單元格時,會用到。
- form[target,method,enctype]
- input[type,value]
- button[type]
- selection>option[value]
- label[for]
#html 文件的大綱
我們平時在寫論文或者其他文件的時候,一般會先列出大綱,然後再寫具體的內容。
同樣,html 網頁也可以看成是一種文件,也有屬於它的大綱。
一個常見的html文件,它的結構可以是:
<section>
<h1>一級標題</h1>
<section>
<h2>二級標題</h2>
<p>段落內容</p>
</section>
<section>
<h2>二級標題</h2>
<p>段落內容</p>
</section>
<aside>
<p>廣告內容</p>
</aside>
</section>
<footer>
<p>某某公司出品</p>
</footer>
#檢視網頁大綱的工具
我們可以通過http://h5o.github.io/這個工具檢視一個網頁的大綱。
使用方法:
(1)將網址http://h5o.github.io/儲存到書籤欄
(2)去目標網頁,點選書籤欄的網址,即可檢視該網頁的大綱。
這個工具非常好用,既可以檢視網頁的大綱,也可以檢視 markdown 線上文件的結構。
#html 元素的分類
按照樣式分類:
-
塊級元素
-
行內元素
-
inline-block:比如
form
表單元素。對外的表現是行內元素(不會獨佔一行),對內的表現是塊級元素(可以設定寬高)。
按照內容分類:
圖片來源:https://html.spec.whatwg.org/multipage/dom.html#kinds-of-content
#html 元素的巢狀關係
-
塊級元素可以包含行內元素。
-
塊級元素不一定能包含塊級元素。比如 div 中可以包含 div,但 p 標籤中不能包含 div。
-
行內元素一般不能包含塊級元素。比如 span 中不能包含 div。但有個特例:在 HTML5 中, a 標籤中可以包含 div。
注意:在 HTML5 中a > div
是合法的,div > a > div
是不合法的 ;但是在 html 4.0.1 中,a > div
仍然是不合法的。
#html 元素的預設樣式和 CSS Reset
比如下拉框這種比較複雜的元素,是自帶預設樣式的。如果沒有這個預設樣式,則該元素在頁面上不會有任何表現,則必然增加一些工作量。
同時,預設樣式也會帶來一些問題:比如,有些預設樣式我們是不需要的;有些預設樣式甚至無法去掉。
如果我們不需要預設的樣式,這裡就需要引入一個概念:CSS Reset。
#常見的 CSS Reset 方案
方案一:
CSS Tools: Reset CSS。連結:https://meyerweb.com/eric/tools/css/reset/
方案二:
雅虎的 CSS Reset。連結:https://yuilibrary.com/yui/docs/cssreset/
我們可以直接通過 CDN 的方式引入:
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css">
1方式三:(比較有爭議)
*{
margin: 0;
padding: 0;
}
上面何種寫法,比較簡潔,但也有爭議。有爭議的地方在於,可能會導致 css 選擇器的效能問題。
#Normalize.css
上面的幾種 css reset 的解決思路是:將所有的預設樣式清零。
但是,Normalize.css的思路是:既然瀏覽器提供了這些預設樣式,那它就是有意義的。既然不同瀏覽器的預設樣式不一致,那麼,Normalize.css
就將這些預設樣式設定為一致。
#html 常見面試題
#doctype 的意義是什麼
-
讓瀏覽器以標準模式渲染
-
讓瀏覽器知道元素的合法性
#HTML、XHTML、HTML5的區別
-
HTML 屬於 SGML
-
XHTML 屬於 XML,是 HTML 進行 XML 嚴格化的結果
-
HTML5 不屬於SGML,也不屬於 XML(HTML5有自己獨立的一套規範),比 XHTML 寬鬆。
#HTML5 有什麼新的變化
-
新的語義化元素
-
表單增強
-
新的API:離線、音視訊、圖形、實時通訊、本地儲存、裝置能力等。
#em 和 i 的區別
共同點:二者都是表示斜體。
區別:
-
em 是語義化的標籤,表示強調。
-
i 是純樣式的標籤,表示斜體。HTML5 中不推薦使用。
#語義化的意義是什麼
-
開發者容易理解,便於維護。
-
機器(搜尋引擎、讀屏軟體等)容易理解結構
-
有助於 SEO
#哪些元素可以自閉和
自閉和的元素中不能再嵌入別的元素。且 HTML5 中要求加斜槓。
-
表單元素 input
-
圖片 img
-
br、hr
-
meta、link
#form 表單的作用
-
直接提交表單
-
使用 submit / reset 按鈕
-
便於瀏覽器儲存表單
-
第三方庫(比如 jQuery)可以整體獲取值
-
第三方庫可以進行表單驗證
所以,如果我們是通過 Ajax 提交表單資料,也建議加上 form。