HTML、XML、XHTML 的區別
HTML(hype text markup language):超文本標記語言,是最早寫網頁的語言,語法較為松散的、大小寫混寫編碼不規范不嚴格HTML設計宗旨是用來顯示數據,旨在數據的外觀,顯示信息。
XML(extensible markup language),可擴展標記語言,設計宗旨是傳輸數據、描述數據,而非顯示數據;實為存儲數據格式的文件,標簽需要自定義。
XHTML(extensible hypertext markup language),可擴展超文本標記語言,結合XML和HTML的優點。xhtml文檔具有良好完整的排版,元素必須要有結束標簽;元素必須嵌套;嚴格區分大小寫。
怎樣理解HTML語義化
定義:語義化HTML是一種編寫HTML的方式,意為寫頁面時選擇合適的代碼結構和標簽。
優點:便于開發者閱讀,維護。同時讓瀏覽器的爬蟲和機器很好地解析。使頁面整體的結構清晰有條理。在沒有CSS的情況下也能呈現較好的內容結構、代碼結構。
如何做到:
? <div>和<span>在HTML中沒有語義,盡量少用<div>、<span>。
? 熟悉所有規范的HTML標簽使用場景,熟悉各標簽規范的屬性,給HTML標簽設置的兩個必要屬性是alt屬性和title屬性,這兩個屬性可以提高HTML的語義。
? 在img標簽中,alt是必須要設置的屬性,因為img是自閉合標簽,并沒有包含可以解釋說明圖片的額外信息。alt屬性可以在無法顯示圖像時候瀏覽器將顯示代替文本,可以顯示圖像是alt為圖像添加描述性文本。
例如<img src="/e/1/hehe.jpg" alt="滑稽表情">。
在HTML里,title屬性是可選屬性,當標簽包含的內容不足以說明語義時,可以通過title添加額外的信息, 在瀏覽器中當鼠標移到元素上時會顯示提示文本。
例如<abbr title="hahaha">hhh</abbr>?
在lable標簽中的for屬性。標簽是元素定義的標注。標簽的for屬性值指代一個表單元素,屬性值為此表單元素的id值。for屬性的作用不僅把標簽上的觸發事件指向了for屬性指代的表單元素,也從語義上綁定了和此表單元素。
例如<lable for="male">Male</lable>
怎樣理解內容與樣式分離原則
HTML代表頁面上的內容,CSS代表頁面的樣子,JS代表頁面上的交互和功能就是行為。寫HTML時只需注重結構和語義,寫好再去考慮樣式。寫JS時,勿用JS操作樣式;例如網頁換膚色:通過HTML里的ID或class標記,在CSS中找到相應的ID或class,js無需改動,節省了大量時間。在寫HTML時不出現屬性樣式,行內樣式。
如何做到:內容與樣式分離的原則的實現,一個是要依靠意識,另一個是依靠經驗。
例:面對一個分塊明顯的網頁設計圖時:
初級的開發人員思路及制作方法:div 層層嵌套;
中級的開發人員思路及制造方法:去掉多余的 div ,進行簡化;
高級的開發人員思路及制造方法:最大化的簡化 html 的結構,然后用 css 進行設置,減少 html 與 css 的契合度。
有哪些常見的meta標簽
<meta charset="utf-8">編輯器里保存的代碼所存為的一種編碼格式,瀏覽器需要解析字符串顯示內容,頁面保存什么格式就在<meta charset="">寫什么格式。
<meta http-equiv="X-UA-Compatoble" content="IE=edge,chrome=1">強制瀏覽器按照特定的版本標準進行渲染。但不支持IE7及以下版本。如果是ie瀏覽器就用最新的ie渲染,如果是雙核瀏覽器就用chrome內核。
<metahttp-equiv=”Refresh”content=”5;URL”>:告訴瀏覽器在“5”秒后跳轉到“一個網址”
<meta name="viewport" content="width=device-width, initial-scale=1.0">使頁面在移動端展示合理,禁用縮放(zooming)功能,用戶只能滾動屏幕。
<metaname="keywords"content="class">該網頁的關鍵字是“class”。
<metaname="description"content="repositories">該網頁的主要內容是“repositories”。
文檔聲明的作用?嚴格模式和混雜模式指什么?<!doctype html>的作用?
1.doctype聲明的作用:在Web設計中用來說明你用的XHTML或者HTML是什么版本。、
2.嚴格模式(標準模式):瀏覽器根據瀏覽器支持的坐高標準呈現頁面。
? 混雜模式(兼容模式):頁面以寬松的向后兼容的方式顯示,模擬老式瀏覽器的行為以防止老站點無法工作。
3.<!doctype html>!的作用:是html5的文檔聲明。文件的合法性驗證。 如果文件代碼不合法,那么瀏覽器解析時便會出一些差錯。HTML編輯器通常也會在語法高亮的同時提供合法性驗證。
瀏覽器亂碼的原因是什么?如何解決
? 編碼器編寫的HTML在保存時會按照自己默認的格式保存,使用瀏覽器打開HTML時,在沒有<meta charset="xxx">時,瀏覽器會自動選擇一種方式解析字符集,如果編碼器儲存的是gbk格式,瀏覽器卻選擇utf-8解析,此時網頁亂碼。
? 還有一種情況是在編碼器中指定<meta charset="gbk">格式在保存HTML時卻用utf-8保存,瀏覽器打開HTML時看到<meta charset="gbk">就會按照gbk的字符集解析。
解決方法:
? 編輯器保存文檔使用的字符集一定要跟 HTML 文檔指定的字符集匹配。文件保存時清楚用哪種字符集保存的,也可以全用“utf-8”,“utf-8”包括世界上所有的文字。
常見的瀏覽器有哪些,什么內核
IE瀏覽器內核:Trident
Trident內核程序在1997年的IE4中首次被采用,簡稱IE內核。它是微軟在Mosaic代碼的基礎之上修改而來的,并沿用到目前的IE8。Trident實際上是一款開放的內核,其接口內核設計的相當成熟,有許多采用IE內核而非IE的瀏覽器涌現。
Netscape6瀏覽器內核:Gecko
Gecko的特點是代碼完全公開,因此,其可開發程度很高,全世界的程序員都可以為其編寫代碼,增加功能。基于開源內核的特性,備受青睞,出現很多以Gecko為內核的瀏覽器,因此有挺大的市場占有量。
Opera瀏覽器內核:Presto
Presto內核在2003年的Opera7中首次被使用,該款引擎的特點就是渲染速度的優化達到了極致,也是目前公認網頁瀏覽速度最快的瀏覽器內核,但對網頁的兼容性差。
蘋果Safari瀏覽器內核:Webkit
Webkit是蘋果公司自己的內核,也是使用的內核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來。且Webkit開放源代碼。
傲游瀏覽器3、QQ瀏覽器和搜狗高速瀏覽器都是使用Webkit與Trident雙核心
Webkit核心讓網頁打開速度更快,Trident核心則帶來更好的兼容性支持。使用高速(webkit)和兼容(Trident)雙瀏覽模式,保證良好兼容性的同時極大提升網頁瀏覽速度。當采用高速模式訪問網頁出現問題時,可直接切換內核,使用兼容性更佳的兼容模式正常瀏覽網頁。
列出常見的標簽,并簡單介紹這些標簽用在什么場景
h1,h2,h3,h4,h5,h6:標題
p:段落,大段文字
a:HTML鏈接
例:<a >This is a link</a>,在 href 屬性中指定鏈接的地址。
img:圖像
例:<img src="hehe.jpg" alt="avatar">,只閉合不加“/”。
div:塊,頁面分區
例:<divid="header">...</div>
? ? ? ? <divid="content">...</div>
? ? ? ? <divid="footer">...</div>
ul li:無序列表,表示并列內容,ul必須后面跟著li,可嵌套
ol li:有序列表,可以表示步驟、編號的并列內容,ol后面必須跟著li。
dl:列表,dt:列表下的標題,dd:列表下的標題的描述。
例:
button:按鈕
strong、span、em、:都指強調,強調的程度依次減弱。可用于單獨修改某一段字的背景色或者行為。
iframe:嵌入一個界面
例:<iframesrc="http://jirengu.com"name="myPage"></iframe>
table:展示表格,thead、tbody、tfoot在不做布局時候可以省略,tr:列,td:行