第一篇:web之前端之html
前端之html
前端之html
本節內容
1.前端概述
一個web服務的組成分為前端和后端部分,前端部分負責和用戶實現交互等操作,用戶能看到的東西都是前端實現的效果,前端具體包括html,css和javascript,其中html形成一個web展示的骨架,css是為了給這個骨架填充血肉,使其更加豐滿。javascript主要是讓網站能夠動起來,和人進行各種交互,都需要js來完成。
這篇博客就是用來踏入前端的第一個部分,html的介紹。
下面這段代碼其實已經實現了一個很簡單的web應用。其中<h1>Hello,World</h1>就屬于html里面的一部分。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import?socket def?main(): ????sock?=?socket.socket(socket.AF_INET, socket.SOCK_STREAM) ????sock.bind(('localhost',8089)) ????sock.listen(5) ????while?True: ????????connection, address?=?sock.accept() ????????buf?=?connection.recv(1024) ????????connection.sendall(bytes("HTTP/1.1 201 OK\r\n\r\n","utf8")) ????????connection.sendall(bytes("<h1>Hello,World</h1>","utf8")) ????????connection.close() if?__name__?==?'__main__': ????main() |
2.html結構
htyper text markup language 即超文本標記語言
超文本: 就是指頁面內可以包含圖片、鏈接,甚至音樂、程序等非文字元素。
標記語言: 標記(標簽)構成的語言.
網頁==HTML文檔,由瀏覽器解析,用來展示的
靜態網頁:靜態的資源,如xxx.html
動態網頁:html代碼是由某種開發語言根據用戶請求動態生成的
html文檔樹形結構圖:
3.標簽探秘
標簽定義
- 是由一對尖括號包裹的單詞構成 例如: <html> *所有標簽中的單詞不可能以數字開頭.
- 標簽不區分大小寫.<html> 和 <HTML>. 推薦使用小寫.
- 標簽分為兩部分: 開始標簽<a> 和 結束標簽</a>. 兩個標簽之間的部分 我們叫做標簽體.
- 有些標簽功能比較簡單.使用一個標簽即可.這種標簽叫做自閉和標簽.例如: <br/> <hr/> <input /> <img />
- 標簽可以嵌套.但是不能交叉嵌套. <a><b></a></b>
標簽的屬性
- 通常是以鍵值對形式出現的. 例如 name="alex"
- 屬性只能出現在開始標簽 或 自閉和標簽中.
- 屬性名字全部小寫. *屬性值必須使用雙引號或單引號包裹 例如 name="alex"
- 如果屬性值和屬性名完全一樣.直接寫屬性名即可. 例如 readonly
4.<!DOCTYPE html>標簽
由于歷史的原因,各個瀏覽器在對頁面的渲染上存在差異,甚至同一瀏覽器在不同版本中,對頁面的渲染也不同。在W3C標準出臺以前,瀏覽器在對頁面的渲染上沒有統一規范,產生了差異(Quirks mode或者稱為Compatibility Mode);由于W3C標準的推出,瀏覽器渲染頁面有了統一的標準(CSScompat或稱為Strict mode也有叫做Standarsmode),這就是二者最簡單的區別。
W3C標準推出以后,瀏覽器都開始采納新標準,但存在一個問題就是如何保證舊的網頁還能繼續瀏覽,在標準出來以前,很多頁面都是根據舊的渲染方法編寫的,如果用的標準來渲染,將導致頁面顯示異常。為保持瀏覽器渲染的兼容性,使以前的頁面能夠正常瀏覽,瀏覽器都保留了舊的渲染方法(如:微軟的IE)。這樣瀏覽器渲染上就產生了Quircks mode和Standars mode,兩種渲染方法共存在一個瀏覽器上。
| 1 2 3 | window.top.document.compatMode: //BackCompat:怪異模式,瀏覽器使用自己的怪異模式解析渲染頁面。 //CSS1Compat:標準模式,瀏覽器使用W3C的標準解析渲染頁面。 |
這個屬性會被瀏覽器識別并使用,但是如果你的頁面沒有DOCTYPE的聲明,那么compatMode默認就是BackCompat,
這也就是惡魔的開始 -- 瀏覽器按照自己的方式解析渲染頁面,那么,在不同的瀏覽器就會顯示不同的樣式。
如果你的頁面添加了<!DOCTYPE html>那么,那么就等同于開啟了標準模式,那么瀏覽器就得老老實實的按照W3C的
標準解析渲染頁面,這樣一來,你的頁面在所有的瀏覽器里顯示的就都是一個樣子了。
這就是<!DOCTYPE html>的作用。
5.head標簽
標簽
meta標簽的組成:meta標簽共有兩個屬性,它們分別是http-equiv屬性和name 屬性,不同的屬性又有不同的參數值,這些不同的參數值就實現了不同的網頁功能。
1: name屬性主要用于描述網頁,與之對應的屬性值為content,content中的內容主要是便于搜索引擎機器人查找信息和分類信息用的。
| 1 2 3 | <meta name="keywords"?content="meta總結,html meta,meta屬性,meta跳轉"> <meta name="description"?content="這是一個網站說明"> |
2: http-equiv顧名思義,相當于http的文件頭作用,它可以向瀏覽器傳回一些有用的信息,以幫助正確和精確地顯示網頁內容,與之對應的屬性值為content, content中的內容其實就是各個參數的變量值。
| 1 2 3 4 5 | <meta http-equiv="Refresh"?content="2;URL=https://www.baidu.com">?//(注意后面的引號,分別在秒數的前面和網址的后面) <meta http-equiv="content-Type"?charset=UTF8"> <meta http-equiv?=?"X-UA-Compatible"?content?=?"IE=EmulateIE7"?/> |
注意:X-UA-Compatible
每個主要版本IE新增的功能都是為了讓瀏覽器更容易使用、增加安全性及更支持業界標準。以這些作為IE的特色,其中 一個風險就是舊版本網站無法正確的顯示。
為了將這個風險降到最低,IE6允許網頁開發人員選擇IE編譯和顯示他們網頁的方式。"Quirks mode"為預設,這會 使頁面以舊版本瀏覽器的視點顯示,"Standards mode"(也稱為"strict mode")特點是支持業界標準最為完善。 然而要利用這個增強的支持功能,網頁必須包含恰當的<!DOCTYPE>指令。
若一個網頁沒有包含<!DOCTYPE>指令,IE6會將它以quirks mode顯示。若網頁包含有效的<!DOCTYPE>指令但瀏 覽器無法辨識,IE6會將它以IE6 standards mode顯示。因為少數網站已經包含<!DOCTYPE>指令,兼容性模式的 切換相當成功。這使網頁開發人員能選擇將他們的網頁轉移為standards mode的最佳時機。
隨著時間經過,更多網站開始使用standards mode。它們也開始使用IE6的特性和功能來檢測IE。舉例來說,IE6 不支持universal selector(即css之全局選擇器 * {}),一些網站便使用它來針對IE做特定的對應。
當 IE7增加了對全域選擇器的支持,那些依賴IE6特點的網站便無法偵測出這個新版本的瀏覽器。因此那些針對IE的 特定對應無法應用于IE7,造成這些網站便無法如他們預期的顯示。由于<!DOCTYPE>只支持兩種兼容性模式,受到影 響的網站擁有者被迫更新他們的網站使其能支持IE7。
IE8 比之前的任何版本瀏覽器都更支持業界標準,因此針對舊版本瀏覽器設計的網頁可能無法如預期般呈現。為了幫 助減輕所有問題,IE8引入文件兼容性的概念,使你能選擇你的網頁設計要對應的特定IE版本。文件兼容性在IE8增加 了一些新的模式,這些模式能告訴瀏覽器如何解析和編譯一個網頁。若你的網頁無法在 ie8正確的顯示,你可以更新 你的網站使它支持最新的網頁標準(優先選項)或在你的頁面上新增一個meta元素用于告訴IE8如何依照舊版本瀏覽器 編譯你的頁面。
這能讓你選擇將你的網站更新支持IE8新特點的時機。
當 Internet Explorer 8 遇到未包含 X-UA-Compatible 標頭的網頁時,它將使用 <!DOCTYPE> 指令來確 定如何顯示該網頁。 如果該指令丟失或未指定基于標準的文檔類型,則 Internet Explorer 8 將以 IE5 模式 (Quirks 模式)顯示該網頁。
非meta標簽
| 1 2 3 4 | <title>title</title>??# title標簽標明網站的title <link rel="icon"?href="http://www.jd.com/favicon.ico">??# icon標明title前面的圖標 <link rel="stylesheet"?href="css.css">??# 指定css文件的路徑,導入css文件 <script src="hello.js"></script> ??# 導入js文件 |
body標簽
1.基本標簽(塊級標簽和內聯標簽)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <hn>: n的取值范圍是1~6; 從大到小. 用來表示標題.???# 塊級標簽 <p>: 段落標簽. 包裹的內容被換行.并且也上下內容之間有一行空白.??# 塊級標簽 <b> <strong>: 加粗標簽.??# 內聯標簽 <strike>: 為文字加上一條中線.??# 內聯標簽 <em>: 文字變成斜體.??# 內聯標簽 <sup>和<sub>: 上角標 和 下角標.??# 內聯標簽(用來表示指數或者其他數學特殊符號) <br>:換行. <hr>:水平線??# 塊級標簽 <div>??# 塊級標簽,沒有任何屬性,使用最多 <span>??# 內聯標簽,沒有任何屬性 塊級標簽:<p><h1><table><ol><ul><li><form><div> 內聯標簽:<a><input><img><sub><sup><textarea><span> |
block(塊)元素的特點
inline元素的特點
對行內元素,需要注意如下
- 設置寬度width 無效。
- 設置高度height 無效,可以通過line-height來設置。
- 設置margin 只有左右margin有效,上下無效。
- 設置padding 只有左右padding有效,上下則無效。注意元素范圍是增大了,但是對元素周圍的內容是沒影響的。
特殊字符
< >;";©®2.圖形標簽:?
- src: 要顯示圖片的路徑.
- alt: 圖片沒有加載成功時的提示.
- title: 鼠標懸浮時的提示信息.
- width: 圖片的寬
- height:圖片的高 (寬高兩個屬性只用一個會自動等比縮放.)
3.超鏈接標簽(錨標簽)<a>
- href:要連接的資源路徑 格式如下: href="http://www.baidu.com"
- target: _blank : 在新的窗口打開超鏈接. 框架名稱: 在指定框架中打開連接內容.
- name: 定義一個頁面的書簽.
- 用于跳轉 href : #id.(錨)
4.列表標簽
| 1 2 3 4 5 6 | <ul>: 無序列表 <ol>: 有序列表 ?????????<li>:列表中的每一項. <dl>? 定義列表 ?????????<dt> 列表標題 ?????????<dd> 列表項 |
5.表格標簽: <table>
| 1 2 3 4 5 6 7 8 9 10 | border: 表格邊框. cellpadding: 內邊距 cellspacing: 外邊距. width: 像素 百分比.(最好通過css來設置長寬) <tr>: table row ?????????<th>: table head cell ?????????<td>: table data cell rowspan:? 單元格豎跨多少行 colspan:? 單元格橫跨多少列(即合并單元格) <th>: table header <tbody>(不常用): 為表格進行分區. |
6.表單標簽<form>
表單用于向服務器傳輸數據。
表單能夠包含 input 元素,比如文本字段、復選框、單選框、提交按鈕等等。
表單還可以包含textarea、select、fieldset和 label 元素。
1. 表單屬性
HTML 表單用于接收不同類型的用戶輸入,用戶提交表單時向服務器傳輸數據,從而實現用戶與Web服務器的交互。表單標簽, 要提交的所有內容都應該在該標簽中.
action: 表單提交到哪. 一般指向服務器端一個程序,程序接收到表單提交過來的數據(即表單元素值)作相應處理,比如https://www.sogou.com/web
method: 表單的提交方式 post/get 默認取值 就是 get(信封)
| 1 2 3 | get:?1.提交的鍵值對.放在地址欄中url后面.?2.安全性相對較差.?3.對提交內容的長度有限制. post:1.提交的鍵值對 不在地址欄.?2.安全性相對較高.?3.對提交內容的長度理論上無限制. |
get/post是常見的兩種請求方式.
2. 表單元素
<input>標簽的屬性和對應值
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | type:??????? text 文本輸入框 ?????????????password 密碼輸入框 ?????????????radio 單選框 ?????????????checkbox 多選框? ?????????????submit 提交按鈕??????????? ?????????????button 按鈕(需要配合js使用.) button和submit的區別? ?????????????file?提交文件:form表單需要加上屬性enctype="multipart/form-data"?? ?name:表單提交項的鍵.注意和id屬性的區別:name屬性是和服務器通信時使用的名稱;而id屬性是瀏覽器端使用的名稱,該屬性主要是為了方便客戶端編程,而在css和javascript中使用的 ?value:表單提交項的值.對于不同的輸入類型,value 屬性的用法也不同: ????type="button",?"reset",?"submit"?-?定義按鈕上的顯示的文本 ????type="text",?"password",?"hidden"?-?定義輸入字段的初始值 ????type="checkbox",?"radio",?"image"?-?定義與輸入相關聯的值 ?checked:? radio 和 checkbox 默認被選中 ?readonly: 只讀. text 和 password ?disabled: 對所用input都好使. |
<select> 下拉選標簽屬性
| 1 2 3 4 5 6 | name:表單提交項的鍵. size:選項個數 multiple:multiple ????<option> 下拉選中的每一項 屬性: ????????value:表單提交項的值.?? selected: selected下拉選默認被選中 ????????<optgroup>為每一項加上分組 |
<textarea> 文本域
| 1 2 3 | name:??? 表單提交項的鍵. cols:??? 文本域默認有多少列 rows:??? 文本域默認有多少行 |
<label>綁定input框和前面的提示文字
label標簽中的for和input標簽中的id的值要一致以實現綁定效果
| 1 2 | <label?for="www">姓名</label> <input?id="www"?type="text"> |
<fieldset>標簽
將一些input輸入框放到一起當做一個組。
| 1 2 3 4 5 | <fieldset> ????<legend>健康信息</legend> ????身高:<input?type="text"?/> ????體重:<input?type="text"?/> </fieldset> |
分類:?web
轉載于:https://www.cnblogs.com/weiman3389/p/6224942.html
總結
以上是生活随笔為你收集整理的第一篇:web之前端之html的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx模块之———— RTMP 模块
- 下一篇: SDN/NFV运营商商业化部署