HTML是英文Hyper Text Mark-up Language(超文本標記語言)的縮寫,他是一種製做萬維網頁面標準語言(標記)。至關於定義統一的一套規則,你們都來遵照他,這樣就可讓瀏覽器根據標記語言的規則去解釋它。javascript
瀏覽器負責將標籤翻譯成用戶「看得懂」的格式,呈現給用戶!css
超級文本標記語言是標準通用標記語言下的一個應用,也是一種規範,一種標準,它經過標記符號來標記要顯示的網頁中的各個部分。網頁文件自己是一種文本文件,經過在文本文件中添加標記符,能夠告訴瀏覽器如何顯示其中的內容(如:文字如何處理,畫面如何安排,圖片如何顯示等)。
基本組成:html
<!DOCTYPE html> #標準規範 <html lang="en"> <head> #html頭 <meta charset="UTF-8"> #字符編碼 <title>Title</title> #頁面頭部顯示內容 </head> <body> <p>主體內容</p> #頁面內容主體 </body> </html> <head>和</head>之間的內容,是元信息和網站的標題 元信息通常是不顯示出來的,可是記錄了你這個HTML文件的不少有用的信息 <body>和</body>之間的內容,是瀏覽器呈現出來的,用戶看到的頁面效果。也就是說這裏是網頁的主體。也就是body的身體之意 <html></html>是說明這個是一個網頁。告訴瀏覽器這個網頁的開始和結束。他包含了以後的兩個元素。<head>和</head>|<body>和</body>
一、DOCTYPE 前端
Doctype告訴瀏覽器使用什麼樣的html或xhtml規範來解析html文檔java
HTML語言須要一個標準,當咱們在第一行指定了<!DOCTYPE html>的時候,當瀏覽器去訪問咱們的代碼的時候就就按照HTML代碼裏指定的標準去讀取和渲染給咱們展示的頁面。python
爲何要使用<!DOCTYPE html>這個去告訴瀏覽器呢????????:web
DOCTYPE模式:瀏覽器
咱們先了解一下DOCTYPE的模式安全
問題產生:post
當Netscape4(譯註:網景公司早期的瀏覽器)和IE4(微軟公司早期的瀏覽器)實現CSS機制時,並無遵循W3C提出的標準。Netscape4 提供了糟糕的支持,而IE4 雖然接近標準,但依舊未能徹底正確的支持標準。儘管IE 5 修復了IE4 許多的問題(bugs),可是依然延續CSS實現中的其它故障(主要是盒模型(box model)問題)。
爲了保證本身的網站在不一樣的瀏覽器中都能正確展示,網頁開發者不得不依據各個瀏覽器的自身的規範來使用CSS。所以大部分網站的CSS實現並未符合W3C的標準。
然而隨着標準一致性變得愈來愈重要,瀏覽器開發商不得不面臨一個艱難的抉擇:逐漸遵循W3C的標準是前進的方向。可是改變現有CSS的實現,完整去遵循標準,會使許多網站或多或少受到破壞。若是瀏覽器忽然以正確的方式解析現存的CSS,陳舊的網站顯示必然受到影響。
所以當即遵循標準會產生問題,然而忽略標準則又會維持瀏覽器大戰時(譯註:微軟和網景之間的一段競爭)所產生的混亂。
解決方案:
換句話說,全部的瀏覽器須要提供兩種模式:怪異模式(即兼容模式)服務於舊式規則,嚴格模式服務於標準規則。Mac平臺的IE瀏覽器最早實現這兩種模式,Mozilla, Safari、Opera和Windows平臺的IE6也相繼實現了這兩種模式。WIndows平臺的IE5和Netscape4則只提供了怪異模式。
選擇使用哪一種模式須要一個觸發器,而 「DOCTYP切換」 則用於此目的。依照標準:任何一個(X)HTML文檔必須擁有一個DOCTYPE(譯註:DTD(文檔類型定義)是一組機器可讀的規則,它們指示 (X)HTML文檔中容許有什麼,不容許有什麼,DOCTYPE正是用來告訴瀏覽器使用哪一種DTD,通常放在(X)HTML文檔開頭聲明)用以告訴其餘人 這個文檔的類型風格
一、Meta(metadata information)
提供有關頁面的元信息,例:頁面編碼、刷新、跳轉、針對搜索引擎和更新頻度的描述和關鍵詞
一、頁面編碼
<meta charset="UTF-8"> #指定編碼類型爲UTF-8
二、刷新和跳轉
<meta http-equiv="refresh" content="5"> #指定每5秒刷新一次 <meta http-equiv="refresh" Content="1;Url=http://www.cnblogs.com/luotianshuai/" /> #指定1秒以後跳轉頁面至另外一個網頁
三、關鍵字
關鍵字的做用:通常是讓爬蟲之類的收錄程序,當他們在爬你的網站的時候,若是你有關鍵字,那麼他們會優先把關鍵字收錄到他們的記錄中,好比百度:若是他們收錄以後,他們搜索你的關鍵字的時候,就能找到我們的網站。
<meta name="keywords" content="博客,Mr、心絃,帥哥,羅天帥">
四、描述
例如cnblog裏的就是一個描述:
<meta name="description" content="博客園是一個面向開發者的知識分享社區。自建立以來,博客園一直致力並專一於爲開發者打造一個純淨的技術交流社區,推進並幫助開發者經過互聯網分享知識,從而讓更多開發者從中受益。博客園的使命是幫助開發者用代碼改變世界。">
五、X-UA-Compatible
X-UA-Compatible 這個是IE8特有的,知道便可,由於作前端的同窗都很懼怕IE由於他們問題比較多各個版本問題很詭異,當IE8的時候微軟想把各個版本的統一,那麼這個參數就出現了,他爲了向下兼容,以下的代碼若是使用IE8的時候他會以IE7的模式運行。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
二、title
網頁頭部信息,以下圖所示:
三、Link
網頁頭部的圖標
<link rel="shortcut icon" href="favicon.ico">
效果圖以下:
導入CSS相似python中導入模塊相似
<link rel="stylesheet" href="css/css_model.css">
四、Style
一、在當前文件中寫Css樣式
二、在其餘文件中寫Css樣式相似python的模塊導入的方式把Css樣式導入到當前文件中使用
< style type="text/css" > .bb{ background-color: red; } </style>
五、Script
一、在當前文件中寫JS
二、在其餘文件中寫JS相似python的模塊導入的方式把JS導入到當前文件中使用
引進文件 < script type="text/javascript" src="http://www.googletagservices.com/tag/js/gpt.js"> </script > 寫js代碼 < script type="text/javascript" > ... </script >
基礎知識
一、body裏面分爲兩類標籤:塊級標籤和內聯標籤,塊級標籤佔用的是整行,內聯標籤佔用的他所使用的實際大小以下圖:
塊級別標籤&內聯標籤:
二、特殊符號特殊處理
舉例來講<h1>是標題標籤,若是我想輸出<h1>這個字符串,而不是想獲取<h1>的樣式怎麼辦呢?
正常狀況下若是直接在html文件裏輸入<h1>當有瀏覽器在讀取的時候就會講<h1>解釋,頁面將沒法顯示,因此特殊的標籤須要特殊處理
因此特殊符號有本身的定義更多請看鏈接:更多
經常使用標籤:
一、<p></p>標籤和<br/>標籤
<p></p>標籤:段落標籤,每一對p標籤爲一段,代碼以下
<p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p>
顯示效果以下:
<br/>標籤:換行標籤;有一個<br/>爲一個換行,看下面的代碼
<p>帥哥帥帥哥帥帥哥帥<br/>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p> <p>帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥帥哥帥</p>
顯示效果以下,我加了一個<br/>標籤以後段落就被換行了:
二、<a></a>標籤
<a></a>標籤用來跳轉和錨
<a>標籤之:跳轉
默認若是在<a><a/>標籤中不設置那麼他僅僅在瀏覽器中顯示文本,以下面代碼
<a>帥哥博客</a>
顯示效果:(這裏僅僅顯示的文字沒有任何功能)
指定跳轉後,代碼以下
<a href="https://home.cnblogs.com/u/fengdao/">帥哥博客</a>
效果以下:
點擊後將跳轉到指定的鏈接地址~,在自身的頁面打開的!
若是讓他用一個新的標籤中打開鏈接地址代碼以下:
<a target="_blank" href="https://home.cnblogs.com/u/fengdao/">帥哥博客</a>
target 屬性
使用 Target 屬性,你能夠定義被連接的文檔在何處顯示。
下面的這行會在新窗口打開文檔:
<a href="http://www.baidu.com/" target="_blank">百度</a>
顯示以下:
<a>標籤之:錨
錨的做用是相似於讀書時候的書籤,當你你點擊這個「錨」=「書籤」,的時候就跳轉到指定的位置
<a href="#a2"> 書籤 </a> <!--在標籤裏,ID是這個標籤的惟一的值,咱們在作錨的時候指定他的ID便可--> <!--<a href="#a2"> 上面的代碼href="#要跳轉的標籤"--> <div id="a1" style="height:700px;"> mark_1 </div> <div id="a2" style="height:700px;"> mark_2 </div>
上面的代碼中,若是點擊了書籤以後,那麼就會跳轉到id=a2的書籤的位置!
三、H標籤
即標題標籤,代碼以下
<h1>H1</h1> <h2>H2</h2> <h3>H3</h3> <h4>H4</h4> <h5>H5</h5> <h6>H6</h6>
顯示效果以下:
四、Select標籤
第一種select標籤
<select> <option value="1">上海</option> <option value="2">北京</option> <option value="3" selected="selected">廣州</option> <!--這裏默認是廣州由於selected="selected" 這裏設置了默認的!--> </select>
顯示效果以下圖:
第二種select標籤
<select size="2"> <option>上海</option> <option>北京</option> <option>廣州</option> <option>山東</option> </select>
顯示效果以下圖:
第三種select標籤,能夠進行多選
<select multiple="multiple" size="2"> <option>上海</option> <option>北京</option> <option>廣州</option> <option>山東</option> </select>
第4中select標籤,能夠進行分組
<select> <optgroup label="河北省"> <option>石家莊</option> <option>邯鄲</option> </optgroup> <optgroup label="山西省"> <option>太原</option> <option>平遙</option> </optgroup> </select>
效果圖以下:
五、input系列標籤
input:checkbox標籤-複選框
<input type="checkbox"/> <input type="checkbox"/> <input type="checkbox" checked="checked"/> <!--這裏加一個標識checked="checked,爲默認選擇"-->
效果以下圖:
input:radio標籤-單選框
<!--第一中狀況不互斥 --> <input type="radio"/> <input type="radio"/> <input type="radio"/> <hr/> <!--對於input標籤來講只要,radio的name值相同,那麼他們就會互斥--> <input type="radio" name="gender"/> <input type="radio" name="gender"/> <input type="radio" name="gender"/>
效果圖以下:
input:text & password 輸入框
<!--標準的輸入框--> <input type="text"/> <!--密碼的輸入框(輸入的內容是保密的)--> <input type="password"/>
效果圖以下:
input:button & submit 提交按鈕
<input type="button" value="提交"/> <input type="submit" value="提交"/>
效果圖以下:
file標籤-用來提交文件時使用
<input type="file"/>
效果圖以下:
六、多行文本框
<textarea style="height: 100px;width: 100px;"></textarea>
效果圖以下:
七、form表單
<form> <p>用戶名:<input type="text"/></p> <p>密碼:<input type="password"/></p> <input type="submit" value="提交"/> <input type="button" value="按鈕"/> <!--這裏按提交纔有反映,submit是用來提交當前的表單的,固然能夠有多個表單--> <!--可是,這個submit須要寫入表單內,那麼提交的時候是提交的當前表單--> </form>
效果圖以下:
<form action="www.baidu.com" method="get"> <!--這裏action是告訴html提交到那裏--> <!--method是經過什麼方法去action指定的地址--> <p> 用戶名:<input type="text" name="username"/> <!--這裏的name="username" 這裏當我們指定的action接收到的數據以後縣會找到是否有這個name標籤--> <!--而後把這裏的用戶的輸入複製給name爲一個字典key:value模式--> </p> <p> 密碼:<input type="password" name="password"/> <!--這裏的name="username" 這裏當我們指定的action接收到的數據以後縣會找到是否有這個name標籤--> <!--而後把這裏的用戶的輸入複製給name爲一個字典key:value模式--> </p> <p> 部門:<select name="department"> <option value="1">CTO</option> <option value="2">DBA</option> <!--這裏在選擇以後,會把選擇的value值賦予給name,當用戶點擊提交後就會提交到後臺--> </select> </p> <input type="submit" value="提交"/> </form>
action表示提交動做,把數據提交到指定的路徑,methon指定提交類型,默認爲get
post與get的區別:
method默認爲get類型,數據會包含在html的頭部進行提交,表現形式是點擊提交後會在外部url路徑上查看提交到的數據表單內容,效果以下
1
|
http:
/
/
localhost:
8888
/
index?user
=
lianzhilei&email
=
James
%
40123.com
&pwd
=
123123
|
method若是指定爲post類型的話,數據會包含在html的body內進行提交,從外部看不出來裏面的信息
二者 沒有誰安全之說,由於抓包都能抓到
八、label標籤
有一種狀況,看下圖,在不使用label標籤的時候,咱們只能點進框體裏去,不然就不能輸入或選擇,這樣用戶體驗不是很好:
代碼以下:
<div> <h1>Label標籤</h1> 姓名:<input type="text"/> 婚否:<input type="checkbox"/> </div>
使用label標籤,代碼以下:
<div> <label for="name_1"> 姓名: <input id="name_1" type="text"/> </label> <label for="name_2"> 婚否:<input id="name_2" type="checkbox"/> </label> </div>
顯示效果,這裏我選擇文字的時候也會進入到相應的框體,他相似一個跳轉:
九、列表 ul/ol/dl
ul列表在前面自動加「點」,代碼以下:
<ul> <li>line1</li> <li>line2</li> <li>line3</li> </ul>
效果以下:
ol列表在前面自動加「數字」,代碼以下:
<ol> <li>line1</li> <li>line2</li> <li>line3</li> </ol>
效果以下:
dl列表自動分組,代碼以下:
<dl> <dt>河北省</dt> <!--dt是標籤,dd是標籤裏的內容--> <dd>石家莊</dd> <dd>衡水市</dd> <dt>山東省</dt> <!--dt是標籤,dd是標籤裏的內容--> <dd>濟南市</dd> <dd>煙臺市</dd> </dl>
效果以下圖:
十、表格
<table border="1"> <!--border這裏是加上邊框--> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <!--一個tr是1行,一個td是一列,一行裏可能有不少列。--> <!--若是想加多個行就加多個tr便可--> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>
效果以下:
合併單元格
<table border="1"> <!--border這裏是加上邊框--> <tr> <td colspan="3">1</td> <!--這裏colspan,就告訴html解析的時候佔3個格--> </tr> <!--一個tr是1行,一個td是一列,一行裏可能有不少列。--> <!--若是想加多個行就加多個tr便可--> <tr> <td rowspan="2">1</td> <td>2</td> <td>3</td> </tr> <tr> <td>2</td> <td>3</td> </tr> </table>
效果以下圖:
以上的表格標籤其實還不是很標準,正常標準的標籤以下:
<table border="1"> <thead> <!--表頭--> <tr> <th>表1</th> <th>表2</th> <th>表3</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </tbody> </table>
效果以下圖:
十一、fieldset標籤
代碼以下:
<fieldset> <legend>協議</legend> 請仔細閱讀協議內容: </fieldset>
效果以下: