前端 html篇

web開發本質:css

html是一個標準,規定了你們怎麼寫網頁html

1.瀏覽器輸入網址回車發生了什麼事web

1. 瀏覽器 給服務端 發送了一個消息
2. 服務端拿到消息
3. 服務端返回消息
4. 瀏覽器展現頁面
sever服務端
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()

 

 

 

HTML

瀏覽器讀取有一個file協議chrome

<!DOCTYPE> 標籤django

聲明必須是 HTML 文檔的第一行,位於 標籤以前

</!doctype>後端

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

html是超文本標記型語言,屬於cs架構瀏覽器

<!DOCTYPE html>                #標準規範
<html lang="en">
<head>                         #html頭
  <meta charset="UTF-8">     #字符編碼
  <title>Title</title>       #頁面頭部顯示內容
</head>
<body>

</body>
</html>


Doctype標準
  Doctype告訴瀏覽器使用什麼樣的html或xhtml規範來解析html文檔
有和無的區別
  BackCompat:標準兼容模式未開啓(默認),瀏覽器按照本身的方式解析渲染界面
  CSS1Compat:標準兼容模式已經開啓,瀏覽器按照W3C的標準解析渲染界面

 

注意安全

通常瀏覽器默認是utf-8服務器

對於中文網頁須要使用* **<meta charset="utf-8">** *聲明編碼,不然會出現亂碼。有些瀏覽器會設置 GBK 爲默認編碼,則你須要設置爲* <meta charset="gbk">。

3.服務端,瀏覽器,html文件網絡

1.<!DOCTYPE html>聲明爲HTML5文檔。
2.<html>、</html>是文檔的開始標記和結束的標記。是HTML頁面的根元素,在它們之間是文檔的頭部(head)和主體(body)。
<html lang='zh-cn'>#中文顯示
3.<head>、</head>定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文檔窗口顯示。包含了文檔的元(meta)數據,配置信息等,是給瀏覽器看的,你看到的是在body標籤裏面寫的。
3.1<meta charset='utf-8'>#有中文須要制定編碼集
4.<title>、</title>定義了網頁標題,在瀏覽器標題欄顯示。
5.<body>、</body>之間的文本是可見的網頁主體內容。

html標籤

 幾個很重要的屬性:

 

  • id:定義標籤的惟一ID,HTML文檔樹中惟一,未來頁面上的標籤有不少,例如:來幾個a標籤,而後怎麼區分這些標籤呢,能夠銅鼓xxx,id不能重複,未來咱們想找這個標籤的時候,能夠經過這個id的值來找到這個標籤

  • class:爲html元素定義一個或多個類名(classname)(CSS樣式類名) #將css的是再說

  • style:規定元素的行內樣式(CSS樣式) #簡單來個示例:<h1 >xx</h1>你會發現變成紅色了,其餘的講css的時候再講

<h1><h1>標題1,2,3,4,5,6
<img src=路徑><!--放置圖片-->
<a href="路徑">放內容</a>
標籤分類
1.全閉(雙標籤)
2.自閉合標籤(單標籤)

經常使用標籤

head內經常使用標籤

任何標籤都有title屬性

標籤 意義
<title></title> 定義網頁標題
<style></style> 定義內部樣式表
<script></script> 定義JS代碼或引入外部JS文件
<link/> 引入外部樣式表文件
<meta/> 定義網頁原信息
<head>   <!-- 都寫在head頭裏 -->
<style>引用內部樣式表</style>
<title>定義網頁標題</title>
自閉合<link/>#引入外部樣式表
<meta charset='utf-8'>#定義網頁原信息 對於瀏覽器
</head>
----------------------------------
1.界面編碼
<meta charset="utf-8">
2.刷新和跳轉
<meta http-equiv="Refresh" content="3;Url=http://www.baidu.com">
3.關鍵詞
<meta name="keywords" content="汽車,汽車之家,汽車網,汽車報價"/>
4.描述
<meta name="description" content="汽車之家爲您提供最新汽車報價,汽車圖片,汽車價格大全"/>
5.link標籤
<!--css-->
<link rel="stylesheet" type="text/css" href="1.css">
<!--icon Title前小圖標>
<link rel="shortcut icon" href="1.ico">

 

meta標籤

 Meta標籤介紹:

  • <meta>元素可提供有關頁面的元信息(meta-information),針對搜索引擎和更新頻度的描述和關鍵詞。
  • <meta>標籤位於文檔的頭部,不包含任何內容。
  • <meta>提供的信息是用戶不可見的。
  1. http-equiv屬性:

<!--refersh更新,定時刷新-->
<!-- 刷新網頁兩秒鐘自動跳轉 -->
1.<meta http-equiv="refresh" content="刷新時間;url=http://www.baidu.com">
<!-- 告訴IE以最高級模式渲染文檔只針對ie -->
2.<meta http-equiv='content-Type' charset='utf-8'>

 

 

2.name屬性:

  1. 用於描述網頁,與之對應的屬性是content,content的內容主要是便於搜索引擎

    <!--關鍵字-->
    1.<meta name="keyword" content="裏面放置內容">

瀏覽器內核:

瀏覽器    --    內核
    IE           --    trident
       chrome  ---   blink
  火狐       ---   gecko
    Safari     ---   webkit

  PS:「瀏覽器內核」也就是瀏覽器所採用的「渲染引擎」,渲染引擎決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。渲染引擎是兼容性問題出現的根本緣由。


body標籤

img標籤

<h1></h1>標題 (1-6)
-----------------------------------------
px像素
<img id='22'#默認惟一  src="路徑" alt="顯示錯誤是顯示描述信息" title='鼠標放置顯示的信息' width='寬度px' height='高度px' >
-------------------------------

基本標籤

不加標籤的純文字也是能夠在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標籤(單獨一行)

塊級標籤(元素)能夠包含某些塊級標籤和內聯標籤

div標籤用來定義一個塊級元素,並沒有實際的意義。主要經過CSS樣式爲其賦予不一樣的表現。

span標籤(在一行)

內聯標籤(元素)

不能包含塊級,只能包含內聯

span標籤用來定義內聯(行內)元素,並沒有實際的意義。主要經過CSS樣式爲其賦予不一樣的表現。

錯誤演示 p標籤嵌套##注意 p標籤不能嵌套
<p>
    <p></p>
</p>

 


瀏覽器會誤認爲標籤,有個錯誤捕獲
瀏覽器端
<
p></p> <p></p> <p></p

 

 

a標籤

內聯標籤

沒有寫href屬性,百度  顯示普通文本
有屬性,可是沒有值:百度  #href="" ,寫了href屬性,可是裏面沒有值,

效果:有特殊效果,文字有顏色,有下劃線,點擊會刷新當前頁面
有屬性有值的:

<a href="http://www.baidu.com">百度</a>

,跳轉到href屬性指定的網址

a超連接標籤 ,文字有顏色,有下劃線沒有寫href屬性 能夠刷新當前頁面

例如   百度

<a name='top'>xxx</a>
`````````````````````````
<a href="#a2">al</a>
<a href="" id="a2"></a>#id用於 css比較多
<a href='' name='a2'></a>
    '#a2'跳轉頁面
``````````````````````````````````````
_blank表示在新標籤頁中打開目標網頁
_self表示在當前標籤頁中打開目標網頁
``````````````````````````````````````

 

 

錨點

錨URL - 指向頁面中的錨(href="#top"),博客的目錄常常用到,還能夠跳轉到 name屬性爲p1的a標籤上,
<a name='top'>xxx</a>
`````````````````````````
<a href="#a2">al</a>
<a href="" id="a2"></a>#id用於 css比較多
<a href='' name='a2'></a>
    '#a2'跳轉頁面
``````````````````````````````````````
_blank表示在新標籤頁中打開目標網頁
_self表示在當前標籤頁中打開目標網頁
``````````````````````````````````````

 

 


body界面主體
標籤通常分爲兩種:

內聯標籤和塊級標籤

內聯標籤:a,span,select,img等(包含內聯標籤,不能塊級標籤)
塊級標籤:div,h1,p,form(包含某些塊級和內聯)
p標籤不能嵌套塊級標籤 p標籤不能包含p標籤

列表

ul無序號

<ul type="disc">
 <li>第一項</li>
 <li>第二項</li>
</ul>

 type屬性:

  • disc(實心圓點,默認值)

  • circle(空心圓圈)

  • square(實心方塊)

  • none(無樣式)

ol有序號

<ol type="1" start="2">#start='xx' 從xx開始
 <li>第一項</li>
 <li>第二項</li>
</ol>

    type屬性: start是從數字幾開始

  • 1 數字列表,默認值

  • A 大寫字母

  • a 小寫字母

  • Ⅰ大寫羅馬

  • ⅰ小寫羅馬

標題列表(菜單)

<dl>
 <dt>標題1</dt>
 <dd>內容1</dd>
 <dt>標題2</dt>
 <dd>內容1</dd>
 <dd>內容2</dd>
</dl>

table表格

表格是一個二維數據空間,一個表格由若干行組成,一個行又有若干單元格組成,單元格里能夠包含文字、列表、圖案、表單、數字符號、預置文本和其它的表格等內容。
表格最重要的目的是顯示錶格類數據。表格類數據是指最適合組織爲表格格式(即按行和列組織)的數據。
表格的基本結構:

 

<table border='1' cellspacing='表格線的間距',cellpading='字體與表格的間距'>#表格內部格式
  <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: 單元格橫跨多少列(即合併單元格)

效果

    

上面這幾個屬性基本上用不到。

  其實標籤又能夠分爲兩類:一、展現給用戶看的  二、獲取用戶輸入內容的標籤,剛纔前面的這些標籤都是展現內容用的,下面要學的標籤是捕獲用戶輸入的標籤。基本上HTML中經常使用的就這些標籤

form表單、

提交要放在form表單裏面,不寫進去沒有失去提交功能

注意:

form表單提交數據的時候,必須有

1.submit按鈕       

2.<button></button>

 

<form action='127.0.0.1' method='post'><!--默認get,寫post不是明文傳輸-->
    裏面書寫的內容
    <input type=submit>
</form>

 

功能:

表單用於向服務器傳輸數據,從而實現用戶與Web服務器的交互

表單可以包含input系列標籤,好比文本字段、複選框、單選框、提交按鈕等等。

表單還能夠包含textarea、select、fieldset和 label標籤。

get用於獲取關鍵字

表單屬性

屬性 描述
accept-charset 規定在被提交表單中使用的字符集(默認:頁面字符集)。
action 規定向何處提交表單的地址(URL)(提交頁面)。
autocomplete 規定瀏覽器應該自動完成表單(默認:開啓)。
enctype 規定被提交數據的編碼(默認:url-encoded)。
method 規定在提交表單時所用的 HTTP 方法(默認:GET)。
name 規定識別表單的名稱(對於 DOM 使用:document.forms.name)。
novalidate 規定瀏覽器不驗證表單。
target 規定 action 屬性中地址的目標(默認:_self)。

補充

multipart/form-data是用來制定傳輸數據的特殊類型的,主要就是咱們上傳的非文本的內容,好比圖片或是是mp3等等。
text/plain是純文本傳輸的意思,在發郵件的時候要設置這種編碼類型,不然會出現接收時編碼混亂的問題。網絡上常常拿text/plain和 text/html作比較,其實這兩個很好區分,前者用來傳輸純文本文件,後者則是傳遞html代碼的編碼類型,在發送頭文件時才用得上。①和③都不能用於上傳文件,只有multipart/form-data才能完整的傳遞文件數據
View Code

轉載https://www.cnblogs.com/YOUCAN/archive/2012/12/02/2798227.html

  表單元素

    基本概念:
    HTML表單是HTML元素中較爲複雜的部分,表單每每和腳本、動態頁面、數據處理等功能相結合,所以它是製做動態網站很重要的內容。
    表單通常用來收集用戶的輸入信息
    表單工做原理:
    訪問者在瀏覽有表單的網頁時,可填寫必需的信息,而後按某個按鈕提交。這些信息經過Internet傳送到服務器上。
    服務器上專門的程序對這些數據進行處理,若是有錯誤會返回錯誤信息,並要求糾正錯誤。當數據完整無誤後,服務器反饋一個輸入完成的信息。

    

 

    

    點擊提交按鈕,input中type=submit的那個按鈕,而後就會將form表單中全部用戶輸入的內容或者選擇的內容({name屬性:值,})都發給服務端(以咱們本身寫的那個socket舉例,打印一下接收的內容),可是全部的輸入標籤必須有一個叫作name的屬性。

    

    發現跳到這個頁面了:看url的內容,有了咱們輸入的內容,而且是給你組合起來的,name屬性值和你輸入的值組合到一塊兒了,經過&符號分隔,而且在路徑那裏加了個問號

    

    打印一下socket接收的消息,你就發現已經接受到這些數據了

    

    

      

讓用戶選擇的,必須指定一個value值,要否則後端接收不到內容,用戶本身填寫的標籤,不須要指定value值

      而後再點擊提交,後端打印一下接收的數據:

      

      可是這樣並很差,由於url中顯示了你的信息,而且若是內容不少的話,你的地址欄不可以輸入那麼長的內容,爲何會默認拼接到url裏面呢,由於form表單默認是get請求提交內容,咱們能夠改成post,來看看:post會把全部你提交的信息封裝到一個消息體裏面,在瀏覽器上就看不到了,對於小白來講,看着安全一些。

      

      

      點擊提交就跳到這個網址了:

      

      在看後端打印的內容:

      

      你會發現一個post請求:

      把內容日後拉,就能看到我們提交的數據了

      

那麼你看,你的瀏覽器再你點擊提交的時候,獲取了你所輸入的內容,而後經過網絡提交給你的服務端代碼程序了。

而後咱們後端經過提交過來的數據,來作某些事情,該驗證的驗證,該保存的保存

因此記住form表單裏面有兩個屬性:action控制往哪裏提交數據、method控制用什麼方式提交。

還有一個文件input:由於咱們剛纔說,數據是經過組成一個字典發給後端的,可是文件怎麼作鍵值對啊,作不了,因此須要經過二進制流的形式一點一點的傳送給後端,就是這個multipart搞的事情,有個瞭解就好了,別糾結,到了django咱們在細說。

      

  下面這個django的示例:

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(都試一下)

文本輸入框必需要寫name屬性

文本選擇框要寫name和value屬性

<input type='裏面放置屬性'> 元素會根據不一樣的 type 屬性,變化爲多種形態。

type屬性值 表現形式 對應代碼
text 單行輸入文本 <input type=text" />
password 密碼輸入框(不顯示明文) <input type="password"  />
date 日期輸入框 <input type="date" />
checkbox 複選框 <input type="checkbox" checked="checked" name='x' />
radio 單選框 <input type="radio" name='x' values='裏面放置提交的值'/>
submit 提交按鈕 <input type="submit" value="提交" /> #發送瀏覽器上輸入標籤中的內容,配合form表單使用,頁面會刷新
reset 重置按鈕 <input type="reset" value="重置"  />  #頁面不會刷新,將全部輸入的內容清空
button 普通按鈕 <input type="button" value="普通按鈕"  />
hidden 隱藏輸入框 <input type="hidden"  />
file 上傳文件 <input type="file"  /> (等學了form表單以後再學這個)

屬性說明:

  • name:表單提交時的「鍵」(文本框的名字),注意和id的區別

  • value:表單提交時對應項的值

    • type="button", "reset", "submit"時,爲按鈕上顯示的文本的內容

    • type="text","password","hidden"時,爲輸入框的初始值

    • type="checkbox", "radio", "file",爲輸入相關聯的值

  • checked:radio和checkbox默認被選中的項

  • readonly:text和password設置只讀

  • disabled把選項報廢:全部input均適用

  • selected='selected'設置select標籤下面的option標籤默認選中,<option>selected>

select標籤

<form action="" method="post">
  <select name="city" id="city">
      <optgroup label='北京'>
          <option value="">桑河</option>
    <option value="1">北京</option>
    <option selected="selected" value="2">上海</option> #默認選中,當屬性和值相同時,能夠簡寫一個selected就好了
    <option value="3">廣州</option>
    <option value="4">深圳</option>
  </select>
</form>

 

  屬性說明:

  • multiple:布爾屬性,設置後爲多選下拉框,不然默認單選

  • disabled:禁用

  • selected:默認選中該項

  • value:定義提交時的選項值,提交數據的值

  • id:惟一值方便css查找

  • <optgroup label='北京'>進行分組

label標籤

   定義:<label> 標籤爲 input 元素定義標註(標記)。若是不用這個label給input標籤一個標記,input會變黃,不影響使用,只是提示你,別忘了給用戶一些提示,也就是這個label標籤。
    說明:

  1. label 元素不會向用戶呈現任何特殊效果。可是點擊label標籤裏面的文本,那麼和他關聯的input標籤就得到了光標,讓你輸入內容

2.<label> 標籤的 for 屬性值應當與相關元素的 id 屬性值相同。

<form action="">
  <label for="username">用戶名</label>  #for和input的id屬性同樣,就關聯在一塊兒了
  <input type="text" id="username" name="username">
</form>

 

    

textarea多行文本

<textarea name="memo" id="memo" cols="30" rows="10">
默認內容
</textarea>

屬性說明:

  • name:名稱

  • rows:行數  #至關於文本框高度設置

  • cols:列數   #至關於文本框長度設置

  • disabled:禁用

相關文章
相關標籤/搜索