標籤:指令碼 hid post 程式設計語言 ble too 元素 介紹 elf
HTML介紹Web服務本質
import socketsk = socket.socket()sk.bind(("127.0.0.1", 8080))sk.listen(5)while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.send(b"<h1>Hello world!</h1>") conn.close()
瀏覽器發請求 --> HTTP協議 --> 服務端接收請求 --> 服務端返迴響應 --> 服務端把HTML檔案內容發給瀏覽器 --> 瀏覽器渲染頁面
HTML是什嗎?
- 超文字標記語言 (HTML)(Hypertext Markup Language, HTML)是一種用於建立網頁的標記語言。
- 本質上是瀏覽器可識別的規則,我們按照規則寫網頁,瀏覽器根據規則渲染我們的網頁。對於不同的瀏覽器,對同一個標籤可能會有不同的解釋。(相容性問題)
- 網頁檔案的副檔名:.html或.htm
HTML不是什嗎?
HTML是一種標記語言(markup language),它不是一種程式設計語言。
HTML使用標籤來描述網頁。
HTML文檔結構
最基本的HTML文檔:
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>css樣式優先順序</title></head><body></body></html>
- <!DOCTYPE html>聲明為HTML5文檔。
- <html>、</html>是文檔的開始標記和結束的標記。是HTML頁面的根項目,在它們之間是文檔的頭部(head)和主體(body)。
- <head>、</head>定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文件視窗顯示。包含了文檔的元(meta)資料。
- <title>、</title>定義了網頁標題,在瀏覽器標題列顯示。
- <body>、</body>之間的文本是可見的網頁主體內容。
注意:對於中文網頁需要使用 <meta charset="utf-8"> 聲明編碼,否則會出現亂碼。有些瀏覽器會設定 GBK 為預設編碼,則你需要設定為 <meta charset="gbk">。
HTML標籤格式
- HTML標籤是由角括弧包圍的關鍵字,如<html>, <div>等
- HTML標籤通常是成對出現的,比如:<div>和</div>,第一個標籤是開始,第二個標籤是結束。結束標籤會有斜線。
- 也有一部分標籤是單獨呈現的,比如:<br/>、<hr/>、<img src="1.jpg" />等。
- 標籤裡面可以有若干屬性,也可以不帶屬性。
標籤的文法:
- <標籤名 屬性1=“屬性值1” 屬性2=“屬性值2”……>內容部分</標籤名>
- <標籤名 屬性1=“屬性值1” 屬性2=“屬性值2”…… />
幾個很重要的屬性:
- id:定義標籤的唯一ID,HTML文檔樹中唯一
- class:為html元素定義一個或多個類名(classname)(CSS樣式類名)
- style:規定元素的行內樣式(CSS樣式)
HTML注釋
<!--注釋內容-->
注釋是代碼之母。--摘自哪吒語錄
<!DOCTYPE> 標籤
<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標籤之前。
<!DOCTYPE> 聲明不是 HTML 標籤;它是指示 網頁瀏覽器關於頁面使用哪個 HTML 版本進行編寫的指令。
HTML常用標籤head內常用標籤
標籤 |
意義 |
<title></title> |
定義網頁標題 |
<style></style> |
定義內部樣式表 |
<script></script> |
定義JS代碼或引入外部JS檔案 |
<link/> |
引入外部樣式表檔案 |
<meta/> |
定義網頁原資訊 |
Meta標籤
Meta標籤介紹:
- <meta>元素可提供有關頁面的原資訊(mata-information),針對搜尋引擎和更新頻度的描述和關鍵詞。
- <meta>標籤位於文檔的頭部,不包含任何內容。
- <meta>提供的資訊是使用者不可見的。
meta標籤的組成:meta標籤共有兩個屬性,它們分別是http-equiv屬性和name 屬性,不同的屬性又有不同的參數值,這些不同的參數值就實現了不同的網頁功能。
1.http-equiv屬性:相當於http的檔案頭作用,它可以向瀏覽器傳回一些有用的資訊,以協助正確地顯示網頁內容,與之對應的屬性值為content,content中的內容其實就是各個參數的變數值。
<!--2秒後跳轉到對應的網址,注意引號--><meta http-equiv="refresh" content="2;URL=https://www.oldboyedu.com"><!--指定文檔的編碼類別型--><meta http-equiv="content-Type" charset=UTF8"><!--告訴IE以最進階模式渲染文檔--><meta http-equiv="x-ua-compatible" content="IE=edge">
2.name屬性: 主要用於描述網頁,與之對應的屬性值為content,content中的內容主要是便於搜尋引擎機器人尋找資訊和分類資訊用的。
<meta name="keywords" content="meta總結,html meta,meta屬性,meta跳轉"><meta name="description" content="老男孩教育Python學院">
body內常用標籤基本標籤(塊級標籤和內聯標籤)
<b>加粗</b>
<i>斜體</i>
<u>底線</u>
<s>刪除</s>
<p>段落標籤</p>
<h1>標題1</h1>
<h2>標題2</h2>
<h3>標題3</h3>
<h4>標題4</h4>
<h5>標題5</h5>
<h6>標題6</h6>
<!--換行-->
<br>
<!--水平線--><hr>
特殊字元
內容 |
對應代碼 |
空格 |
|
> |
> |
< |
< |
& |
& |
¥ |
¥ |
著作權 |
© |
註冊 |
® |
div標籤和span標籤
div標籤用來定義一個區塊層級元素,並無實際的意義。主要通過CSS樣式為其賦予不同的表現。
span標籤用來定義內聯(行內)元素,並無實際的意義。主要通過CSS樣式為其賦予不同的表現。
區塊層級元素與行內元素的區別:
所謂塊元素,是以另起一行開始渲染的元素,行內元素則不需另起一行。如果單獨在網頁中插入這兩個元素,不會對頁面產生任何的影響。
這兩個元素是專門為定義CSS樣式而生的。
注意:
關於標籤嵌套:通常區塊層級元素可以包含內嵌元素或某些區塊層級元素,但內嵌元素不能包含區塊層級元素,它只能包含其它內嵌元素。
p標籤不能包含塊級標籤,p標籤也不能包含p標籤。
img標籤
<img src="圖片的路徑" alt="圖片未載入成功時的提示" title="滑鼠懸浮時提示資訊" width="寬" height="高(寬高兩個屬性只用一個會自動等比縮放)">
a標籤
超連結標籤
所謂的超連結是指從一個網頁指向一個目標的串連關係,這個目標可以是另一個網頁,也可以是相同網頁上的不同位置,還可以是一個圖片,一個電子郵件地址,一個檔案,甚至是一個應用程式。
URL
<a href="http://www.oldboyedu.com" target="_blank" >點我</a>
href屬性指定目標網頁地址。該地址可以有幾種類型:
- 絕對URL - 指向另一個網站(比如 href="http://www.jd.com)
- 相對URL - 指當前網站中確切的路徑(href="index.htm")
- 錨URL - 指向頁面中的錨(href="#top")
target:
- _blank表示在新標籤頁中開啟目標網頁
- _self表示在當前標籤頁中開啟目標網頁
列表
1.無序列表
<ul type="disc"> <li>第一項</li> <li>第二項</li></ul>
type屬性:
- disc(實心圓點,預設值)
- circle(空心圓圈)
- square(實心方塊)
- none(無樣式)
2.有序列表
<ol type="1" start="2"> <li>第一項</li> <li>第二項</li></ol>
type屬性:
- 1 數字列表,預設值
- A 大寫字母
- a 小寫字母
- Ⅰ大寫羅馬
- ⅰ小寫羅馬
3.標題列表
<dl> <dt>標題1</dt> <dd>內容1</dd> <dt>標題2</dt> <dd>內容1</dd> <dd>內容2</dd></dl>
表格
表格是一個二維資料空間,一個表格由若干行組成,一個行又有若干儲存格組成,儲存格裡可以包含文字、列表、圖案、表單、數字記號、預置文本和其它的表格等內容。
表格最重要的目的是顯示表格類資料。表格類資料是指最適合組織為表格格式(即按行和列組織)的資料。
表格的基本結構:
<table> <thead> <tr> <th>序號</th> <th>姓名</th> <th>愛好</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Egon</td> <td>杠娘</td> </tr> <tr> <td>2</td> <td>Yuan</td> <td>日天</td> </tr> </tbody></table>
屬性:
- border: 表格邊框.
- cellpadding: 內邊距
- cellspacing: 外邊距.
- width: 像素 百分比.(最好通過css來設定長寬)
- rowspan: 儲存格豎跨多少行
- colspan: 儲存格橫跨多少列(即合併儲存格)
form
功能:
表單用於向伺服器傳輸資料,從而實現使用者與Web伺服器的互動
表單能夠包含input系欄標籤,比如文字欄位、複選框、單選框、提交按鈕等等。
表單還可以包含textarea、select、fieldset和 label標籤。
表單屬性
屬性 |
描述 |
accept-charset |
規定在被提交表單中使用的字元集(預設:頁面字元集)。 |
action |
規定向何處提交表單的地址(URL)(提交頁面)。 |
autocomplete |
規定瀏覽器應該自動完成表單(預設:開啟)。 |
enctype |
規定被提交資料的編碼(預設:url-encoded)。 |
method |
規定在提交表單時所用的 HTTP 方法(預設:GET)。 |
name |
規定識別表單的名稱(對於 DOM 使用:document.forms.name)。 |
novalidate |
規定瀏覽器不驗證表單。 |
target |
規定 action 屬性中地址的目標(預設:_self)。 |
表單元素
基本概念:
HTML表單是HTML元素中較為複雜的部分,表單往往和指令碼、動態網頁面、資料處理等功能相結合,因此它是製作動態網站很重要的內容。
表單一般用來收集使用者的輸入資訊
表單工作原理:
訪問者在瀏覽有表單的網頁時,可填寫必需的資訊,然後按某個按鈕提交。這些資訊通過Internet傳送到伺服器上。
伺服器上專門的程式對這些資料進行處理,如果有錯誤會返回錯誤資訊,並要求糾正錯誤。當資料完整無誤後,伺服器反饋一個輸入完成的資訊。
from django.conf.urls import urlfrom django.shortcuts import HttpResponsedef upload(request): print("request.GET:", request.GET) print("request.POST:", request.POST) if request.FILES: filename = request.FILES["file"].name with open(filename, ‘wb‘) as f: for chunk in request.FILES[‘file‘].chunks(): f.write(chunk) return HttpResponse(‘上傳成功‘) return HttpResponse("收到了!")urlpatterns = [ url(r‘^upload/‘, upload),]
input
<input> 元素會根據不同的 type 屬性,變化為多種形態。
type屬性值 |
表現形式 |
對應代碼 |
text |
單行輸入文本 |
<input type=text" /> |
password |
密碼輸入框 |
<input type="password" /> |
date |
日期輸入框 |
<input type="date" /> |
checkbox |
複選框 |
<input type="checkbox" checked="checked" /> |
radio |
單選框 |
<input type="radio" /> |
submit |
提交按鈕 |
<input type="submit" value="提交" /> |
reset |
重設按鈕 |
<input type="reset" value="重設" /> |
button |
普通按鈕 |
<input type="button" value="普通按鈕" /> |
hidden |
隱藏輸入框 |
<input type="hidden" /> |
file |
文本選擇框 |
<input type="file" /> |
屬性說明:
- name:表單提交時的“鍵”,注意和id的區別
- value:表單提交時對應項的值
- type="button", "reset", "submit"時,為按鈕上顯示的文本年內容
- type="text","password","hidden"時,為輸入框的初始值
- type="checkbox", "radio", "file",為輸入相關聯的值
- checked:radio和checkbox預設被選中的項
- readonly:text和password設定唯讀
- disabled:所有input均適用
select標籤
<form action="" method="post"> <select name="city" id="city"> <option value="1">北京</option> <option selected="selected" value="2">上海</option> <option value="3">廣州</option> <option value="4">深圳</option> </select></form>
屬性說明:
- multiple:布爾屬性,設定後為多選,否則預設單選
- disabled:禁用
- selected:預設選中該項
- value:定義提交時的選項值
label標籤
定義:<label> 標籤為 input 元素定義圖說文字(標記)。
說明:
- label 元素不會向使用者呈現任何特殊效果。
- <label> 標籤的 for 屬性值應當與相關元素的 id 屬性值相同。
<form action=""> <label for="username">使用者名稱</label> <input type="text" id="username" name="username"></form>
textarea多行文本
<textarea name="memo" id="memo" cols="30" rows="10"> 預設內容</textarea>
屬性說明:
- name:名稱
- rows:行數
- cols:列數
- disabled:禁用
前端知識之HTML內容