前端之html


1HTML介紹


1.1Web服務本質

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文件內容發給瀏覽器 --> 瀏覽器渲染頁面

1.2HTML是什么?


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

 

1.3HTML不是什么? 


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

HTML使用標簽來描述網頁。

1|4HTML文檔結構


最基本的HTML文檔:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>css樣式優先級</title>
</head>
<body>

</body>
</html>

 

 

  1. <!DOCTYPE html>聲明為HTML5文檔。
  2. <html></html>是文檔的開始標記和結束的標記。是HTML頁面的根元素,在它們之間是文檔的頭部(head)和主體(body)。
  3. <head></head>定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文檔窗口顯示。包含了文檔的元(meta)數據。
  4. <title></title>定義了網頁標題,在瀏覽器標題欄顯示。
  5. <body></body>之間的文本是可見的網頁主體內容。

 

注意:對於中文網頁需要使用 <meta charset="utf-8"> 聲明編碼,否則會出現亂碼。有些瀏覽器會設置 GBK 為默認編碼,則你需要設置為 <meta charset="gbk">。

1|5HTML標簽格式


  • 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樣式)

1|6HTML注釋


<!-- 注釋內容 -->
 

注釋是代碼之母。

1|7 標簽


<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標簽之前。

<!DOCTYPE> 聲明不是 HTML 標簽;它是指示 web 瀏覽器關於頁面使用哪個 HTML 版本進行編寫的指令。

2.0HTML常用標簽


2.1head內常用標簽


標簽 意義
<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.oldboyedu.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 ="老男孩教育Python學院" >
 

2.2body內常用標簽


基本標簽(塊級標簽和內聯標簽)

<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
各部分之間用“/”符號隔開。

 

< 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)。如果是上傳文件需要將enctype="multipart/form-data"
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標簽

定義:<label> 標簽為 input 元素定義標注(標記)。
說明:

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

 

標簽的總結:

塊級元素:塊級大多為結構性標記

  <h1>...</h1>  標題一級

  <h2>...</h2>  標題二級

  <h3>...</h3>  標題三級

  <h4>...</h4>  標題四級

  <h5>...</h5>  標題五級

  <h6>...</h6>  標題六級

  <hr>  水平分割線

  <p>...</p>  段落

  <ul>...</ul>  無序列表

  <ol>...</ol>  有序列表

  <dl>...</dl>  定義列表

  <table>...</table>  表格

  <form>...</form>  表單

  <div>...</div>

行內元素:行內大多為描述性標記

  <span>...</span>

  <a>...</a>  鏈接

  <br>  換行

  <b>...</b>  加粗

  <strong>...</strong>  加粗

  <img >  圖片

  <i>...</i>  斜體

  <em>...</em>  斜體

  <del>...</del>  刪除線

  <u>...</u>  下划線

  <input>...</input>  文本框

  <textarea>...</textarea>  多行文本

  <select>...</select>  下拉列表

·塊級元素

  1.總是從新的一行開始

  2.高度、寬度都是可控的

  3.寬度沒有設置時,默認為100%

  4.塊級元素中可以包含塊級元素和行內元素

·行內元素

  1.和其他元素都在一行

  2.高度、寬度以及內邊距都是不可控的

  3.寬高就是內容的高度,不可以改變

  4.行內元素只能行內元素,不能包含塊級元素


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM