第一篇:前端知識之HTML內容

来源:https://www.cnblogs.com/cnhyk/archive/2019/12/25/12098554.html
-Advertisement-
Play Games

HTTP協議介紹 什麼是HTTP協議 超文本傳輸協議,規定了瀏覽器與服務端之間數據傳輸的格式。 HTTP協議的四大特性 基於請求響應 一次請求對應一次響應 基於TCP/IP作用於應用層之上的協議 無狀態 不保留客戶端的狀態(如記錄用戶的登錄密碼和賬戶) 因此產生了cookie,session,tok ...


HTTP協議介紹

什麼是HTTP協議

超文本傳輸協議,規定了瀏覽器與服務端之間數據傳輸的格式。

HTTP協議的四大特性

  • 基於請求響應
    • 一次請求對應一次響應
  • 基於TCP/IP作用於應用層之上的協議
  • 無狀態
    • 不保留客戶端的狀態(如記錄用戶的登錄密碼和賬戶)
    • 因此產生了cookie,session,token
  • 無連接
    • 請求和響應結束後就斷開了連接(瞬間的連接)

長鏈接 websocket(類似於http協議的大補丁),應用場景:聊天室相關的。

數據格式

數據格式分為請求格式和響應格式

請求格式:

  • 請求首行(包含請求方式,協議版本等)
  • 請求頭(一大堆k, v鍵值對)
  • 請求體
    • 攜帶的數據 並不是一直都有 有時候可能是空的 取決於你的請求方式

響應格式:

  • 響應首行 (響應狀態碼等)
  • 響應頭(一大堆k, v鍵值對)
  • 響應體(瀏覽器展示給用戶看的數據)

響應狀態碼

用數字來表示一大堆提示信息
1XX:服務端已經成功接收到客戶端的數據正在處理 你可以繼續提交
2XX:200請求成功 服務端已經返回了你想要的數據
3XX:重定向(原本想訪問A但是內部自動給你轉到了B上面)
4XX:404請求資源不存在,403你當前不具備請求該資源的條件
5XX:500服務端內部錯誤 可能是伺服器宕機

公司內部可以自己定製自己的響應狀態碼

請求方式

1.get請求
朝服務端要資源(獲取數據)
類似於瀏覽器視窗輸入www.baidu.com獲取百度首頁
2.post請求
朝服務端提交數據(提交數據)
類似於登錄註冊功能

HTML介紹

Web服務本質

import socket


sk = 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是什麼?

  • 超文本標記語言(Hypertext Markup Language, HTML)是一種用於創建網頁的標記語言。
  • 本質上是瀏覽器可識別的規則,我們按照規則寫網頁,瀏覽器根據規則渲染我們的網頁。對於不同的瀏覽器,對同一個標簽可能會有不同的解釋。(相容性問題)
  • 網頁文件的擴展名:.html或.htm

HTML不是什麼?

HTML是一種標記語言(markup language),它不是一種編程語言。

HTML使用標簽來描述網頁。

HTML文檔結構

最基本的HTML文檔:

# 單行註釋:<!--單行-->
# 多行註釋:<!--
            多行註釋1
            多行註釋2
            -->

<!DOCTYPE html>
<html lang="zh-CN">
<!--head定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文檔視窗顯示。包含了文檔的元(meta)數據。-->
<head>
    <meta charset="utf-8">
<!-- title定義網頁的標題,在瀏覽標題欄顯示-->
    <title>我是網頁的標題</title>
</head>
<!--<body>、</body>之間的文本是可見的網頁主體內容。-->
<body>

</body>

</html>

1、<!DOCTYPE html>聲明為HTML5文檔。

2、、是文檔的開始標記和結束的標記。是HTML頁面的根元素,在它們之間是文檔的頭部(head)和主體(body)。

3、、定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文檔視窗顯示。包含了文檔的元(meta)數據

4、定義了網頁標題,在瀏覽器標題欄顯示。

5、、之間的文本是可見的網頁主體內容。

註意:對於中文網頁需要使用 聲明編碼,否則會出現亂碼。有些瀏覽器會設置 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 標簽;它是指示 web 瀏覽器關於頁面使用哪個 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中的內容其實就是各個參數的變數值。

<!--指定文檔的編碼類型(需要知道)-->
<meta http-equiv="content-Type" charset=UTF8"> 
<!--2秒後跳轉到對應的網址,註意引號(瞭解)-->
<meta http-equiv="refresh" content="2;URL=https://www.baidu.com">
<!--告訴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="百度網頁">

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>

特殊字元

內容 對應代碼
空格 &nbsp;
> &gt;
< &lt;
& &amp;
¥ &yen;
版權 &copy;
註冊 &reg;

div標簽和span標簽

div標簽用來定義一個塊級元素,並無實際的意義。主要通過CSS樣式為其賦予不同的表現。
span標簽用來定義內聯(行內)元素,並無實際的意義。主要通過CSS樣式為其賦予不同的表現。

塊級元素與行內元素的區別:
所謂塊元素,是以另起一行開始渲染的元素,行內元素則不需另起一行。如果單獨在網頁中插入這兩個元素,不會對頁面產生任何的影響。
這兩個元素是專門為定義CSS樣式而生的。

註意:

關於標簽嵌套:通常塊級元素可以包含內聯元素或某些塊級元素,但內聯元素不能包含塊級元素,它只能包含其它內聯元素。

p標簽不能包含塊級標簽,p標簽也不能包含p標簽。

img標簽

<img src="圖片的路徑" alt="圖片未載入成功時的提示" title="滑鼠懸浮時提示信息" width="寬" height="高(寬高兩個屬性只用一個會自動等比縮放)">

a標簽

超鏈接標簽

所謂的超鏈接是指從一個網頁指向一個目標的連接關係,這個目標可以是另一個網頁,也可以是相同網頁上的不同位置,還可以是一個圖片,一個電子郵件地址,一個文件,甚至是一個應用程式。

什麼是URL?
URL是統一資源定位器(Uniform Resource Locator)的縮寫,也被稱為網頁地址,是網際網路上標準的資源的地址。
URL舉例
http://www.sohu.com/stu/intro.html
http://222.172.123.33/stu/intro.html

URL地址由4部分組成
第1部分:為協議:http://、ftp://等 
第2部分:為站點地址:可以是功能變數名稱或IP地址
第3部分:為頁面在站點中的目錄:stu
第4部分:為頁面名稱,例如 index.html
各部分之間用“/”符號隔開。

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 url
from django.shortcuts import HttpResponse


def 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),
]

Django接收上傳文件代碼

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標簽

定義:

  1. label 元素不會向用戶呈現任何特殊效果。
<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:禁用

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 介紹 AntColony(Github)是findit磁力搜索引擎的核心。用來在DHT網路中,收集活躍資源的infohash,下載並解析資源的種子文件,存入資料庫等。AntColony是若幹功能的合集,也可以單獨運行其中的部分功能,所以起“蟻群”這個名字也是很貼切的(沒錯,我就是愛動物世界)。主要分 ...
  • 初始前端 一、奪命三問 理論知識 二、HTTP協議 四大特性 數據格式 響應狀態碼 三、HTML 超文本標記語言 html註釋 第一個HTML代碼 四、head內常用的標簽 常用標簽 五、body內常用標簽 常用標簽 body類常用標簽 常用標簽1 常用標簽2 六、列表標簽 列表標簽 列表標簽 七、 ...
  • 第一步: 第二步: 第三步: 打開vue.json文件後,如果是初次設置,應該如下圖所示,綠色註釋部分不用管,註意那兩個白色大括弧 第四步:在大括弧內全部粘貼如下代碼,保存即可完成vue模板的設置 "Print to vue": { "prefix": "vue", "body": [ "<temp ...
  • 本文主要介紹:使用 JS 根據獎品權重計算中獎概率實現抽獎的方法。 一、示例場景 1.1、設置抽獎活動的獎項名稱 獎項名稱:["一等獎", "二等獎", "三等獎", "未中獎"]。假設抽獎活動設置了這四個獎項,當然開發者可以擴展更多。 var prizes = ["一等獎","二等獎","三等獎" ...
  • 案例:大量字元串拼接效果實現 按鈕點擊,字元串拼接,最後效果字元串,str input有很多,type來分就有button和text,需要找出inputs[i].value是text的 所以用!="button",滿足條件就push進str,所以是str.push(inputs[i].value) ...
  • 介紹 bootstrap-fileinput是一款非常優秀的HTML5文件上傳插件,支持文件預覽、多文件上傳等一系列特性。 一款非常優秀的HTML5文件上傳插件,支持bootstrap 3.x 和4.x版本,具有非常多的特性:多文件類型上傳。這個插件能最簡單的幫你完成文件上傳功能,且使用bootst ...
  • 案例:tab切換效果 獲取所有的li標簽 第一件事:把這個a所在的所以兄弟元素的類樣式全部移除 (removeAttributes) 第二件事:當前點擊的a父級元素li (點擊這個a所在的所在元素li),設置背景顏色 (this.parentNode.className) <!DOCTYPE htm ...
  • 案例:表格隔行變色(滑鼠划過背景色恢復) <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { padding: 0; margin: 0; } .wrap { width ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...