HTML篇(form表單、input標簽、select標簽等)、CSS篇(CSS語法、CSS引入方式、CSS選擇器) 第四十五天 2018.12.08


上節復習

web開發

客戶端    服務端

瀏覽器    自己寫的小demo

HTML標簽

1. 單標簽和雙標簽

2. 內聯標簽和塊兒級標簽(是否獨占一行)

  內聯:   span   img   a   b   i 

  塊兒級:  div   h1~h6   p   hr   ul li ol

  嵌套的規則:

    1. 內聯的不能套塊兒級

    2. p不能套塊兒級標簽

3. 展示用的和交互用的

4. table標簽

5. 列表

  1. ul

  2. ol

  3. dl

6. 特殊符號

  1.  

  2. ©

  3. ®

  4. <

  5. >

HTML(body內常用標簽)

form表單

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

表單能夠包含input系列標簽,比如文本字段、復選框、單選框、提交按鈕等等。

表單還可以包含textarea、select、fieldset和 label標簽。

表單屬性

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>form表單示例</title>
</head>
<body>
<!--注冊示例-->     # action為form表單提交給的路徑  # 提交時提交為字典格式name為鍵,type(控制輸入類型)為值
<form action="http://127.0.0.1:8000/upload/" method="post" enctype="multipart/form-data" autocomplete="off" novalidate>
     # method 請求 (HTTP協議)get---->展示信息的內容(默認get)  post---->信息交互(傳文件)
     # enctype form表單數據的格式(默認application/x-www-form-urlencoded) 傳文件要改成(multipart/form-data)
     # autocomplete 自動補全        novalidate 不做校驗(郵箱例子)
        
    <p>用戶名:
        <input name="name" type="text"  value="小強">  # value默認值為"",是一個值
        <input name="name" type="text"  placeholder="小強" disabled>  # disabled不可用
    </p>                                # placeholder默認放一個東西,不是值
    <p>
        <label for="i1">用戶名:</label>  # 規范(加不加無區別)
        <input id="i1" name="name" type="text"  value="小強">
        <input name="name" type="text"  placeholder="小強" disabled>
    </p>
    <p>密碼:
        <input name="password" type="password">    # password(類)會使輸入信息變成●
    </p>

    <p>郵箱:
        <input type="email" name="email">          # email為郵箱
    </p>

    <p>
        <input type="hidden" value="hidden">       # 隱藏按鈕與數據庫主鍵id配合使用
    </p>

    <p>性別:
        <input name="gender" type="radio" value="1"> 男          # name類似於鍵值對的鍵   # value為值
        <input name="gender" type="radio" value="0"> 女          # radio為單選勾選框(圓形)  
        <input checked name="gender" type="radio" value="2"> 保密  # 一組內name值相同
    </p>       # checked默認選中

    <p>性別2:
        <label for="r1">男</label>
        <input id="r1" name="gender" type="radio" value="1">

        <label>男
            <input name="gender" type="radio" value="1">
        </label>

        <label for="r2"> 女</label>
        <input id="r2" name="gender" type="radio" value="0">

        <label for="r3">保密</label>
        <input id="r3" checked name="gender" type="radio" value="2">
    </p>

    <p>愛好:
    <input checked name="hobby" type="checkbox" value="basketball">籃球   # checkbox(正方形)勾選
    <input name="hobby" type="checkbox" value="football">足球
    <input checked name="hobby" type="checkbox" value="doublecolorball">雙色球
    </p>

    <p>生日:<input name="birthday" type="date"></p>   # date年月日 datetime年月日時分秒

    <select name="from1" id="s1">      # 下拉菜單
        <option value="bj">北京</option>
        <option value="sh" selected>上海</option>   # selected默認選中
        <option value="sc">四川</option>
    </select>


    <select name="from1" id="s11" multiple>    # multiple下拉菜單多選(按ctrl)
        <option value="bj">北京</option>
        <option value="sh">上海</option>
        <option value="sc">四川</option>
    </select>

    <select name="from1" id="s11" multiple>
        <option value="bj">北京</option>
        <option value="sh">上海</option>
        <option value="sc">四川</option>
    </select>


    <select name="from2" id="s2">         # 下拉菜單(一共在一個菜單內)
        <optgroup label="北京">           # 下拉菜單分組子菜單
            <option value="cp">昌平</option>
            <option value="cy">朝陽</option>
            <option value="hd">海淀</option>
            <option value="ft">豐台</option>
        </optgroup>
        <optgroup label="上海">
            <option value="pdxq">浦東新區</option>
            <option value="mhq">閔行區</option>
            <option value="hpq">黃浦區</option>
        </optgroup>
        <optgroup label="四川">
            <option value="pzh">攀枝花</option>
            <option value="zg">自貢</option>
            <option value="my">綿陽</option>
        </optgroup>
    </select>

    <p><textarea name="info" id="t1" cols="30" rows="10">
          # 個人簡介,一個大文本
    </textarea></p>
    
    <p>頭像:
        <input name="lp" type="file">    # 上傳圖片
    </p>
    <p><input type="submit" value="提交s9"></p>    # submit為提交按鈕,value為顯示按鈕上的內容

    <p><input type="button" value="button"></p>    # 普通按鈕

    <p><input type="reset" value="reset"></p>      # 重置按鈕 清空內容

</form>
</body>
</html>

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接收上傳文件代碼
Django上傳接收文件代碼

1. form表單相關內容 form 與 from

    前后端有數據交互的時候用form表單

form表單提交數據的幾個注意事項:

  1.所有獲取用戶輸入的標簽都必須放在form表單里面

  2. action控制着往哪兒提交

  3. input\select\textarea 都需要有name屬性

  4. 提交按鈕 <input type="submit">

input標簽

<input> 元素會根據不同的 type 屬性,變化為多種形態。

屬性說明:

  • name:表單提交時的“鍵”,注意和id的區別
  • value:表單提交時對應項的值
    • type="button", "reset", "submit"時,為按鈕上顯示的文本年內容
    • type="text","password","hidden"時,為輸入框的初始值
    • type="checkbox", "radio", "file",為輸入相關聯的值
  • checked:radio和checkbox默認被選中的項
  • readonly:text和password設置只讀
  • disabled:所有input均適用

select標簽

屬性說明:

  • 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:禁用

小總結

  input系列:

    text         文本

      value              設置默認值

      placeholder    設置占位內容

    password         密碼

    radio        單選框

    checkbox      多選框

    date           日期 年月日

    datetime       時間 年月日時分秒

    file              文件

    button        普通按鈕,多用JS給它綁定事件

    reset          重置按鈕

    submit       提交按鈕

    textarea       大段文本(文本區域)

    select        下拉菜單

    option        具體的下拉選項

    optgroup         分組的下拉框

      -label="上海"

CSS篇

CSS介紹

CSS---->HTML骨架

CSS(Cascading Style Sheet,層疊樣式表)定義如何顯示HTML元素。

1. 重復的樣式

2. 文檔內容和樣式的解耦

CSS基本語法

每個CSS樣式由兩個組成部分:選擇器和聲明。聲明又包括屬性和屬性值。每個聲明之后用分號結束。 

CSS注釋       /*注釋內容*/---->單行注釋       多行注釋直接用換行即可

CSS引入方式

行內樣式

 直接寫在標簽里面 style="樣式1;樣式2;"

<p style="color: red">Hello world.</p>

內部樣式

在head中通過style標簽定義 

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: #2b99ff;
        }
    </style>
</head>

外部樣式(一般常用)

把樣式單獨寫在css文件中,然后在html文件中通過link標簽導入

<link href="mystyle.css" rel="stylesheet" type="text/css"/>

CSS選擇器  

基本選擇器

元素選擇器(標簽名)

p {color: "red";}

ID選擇器(#id名)

#i1 {
  background-color: red;
}

類選擇器(.類名)  

.c1 {
  font-size: 14px;
}
p.c1 {
  color: red;
}

注意:

樣式類名不要用數字開頭(有的瀏覽器不認)。

標簽中的class屬性如果有多個,要用空格分隔。

通用選擇器(*)

* {
  color: white;
}

組合選擇器 

后代選擇器

/*li內部的a標簽設置字體顏色*/
li a {
  color: green;
}

兒子選擇器 

/*選擇所有父級是 <div> 元素的 <p> 元素*/
div>p {
  font-family: "Arial Black", arial-black, cursive;
}

毗鄰選擇器

/*選擇所有緊接着<div>元素之后的<p>元素*/
div+p {
  margin: 5px;
}

弟弟選擇器

/*i1后面所有的兄弟p標簽*/
#i1~p {
  border: 2px solid royalblue;
}

屬性選擇器  

/*用於選取帶有指定屬性的元素。*/
p[title] {
  color: red;
}
/*用於選取帶有指定屬性和值的元素。*/
p[title="213"] {
  color: green;
}

 

/*找到所有title屬性以hello開頭的元素*/
[title^="hello"] {
  color: red;
}

/*找到所有title屬性以hello結尾的元素*/
[title$="hello"] {
  color: yellow;
}

/*找到所有title屬性中包含(字符串包含)hello的元素*/
[title*="hello"] {
  color: red;
}

/*找到所有title屬性(有多個值或值以空格分割)中有一個值為hello的元素:*/
[title~="hello"] {
  color: green;
}

不怎么常用的屬性選擇器
不怎么常用的屬性選擇器

分組和嵌套

分組

當多個元素的樣式相同的時候,我們沒有必要重復地為每個元素都設置樣式,我們可以通過在多個選擇器之間使用逗號分隔的分組選擇器來統一設置元素樣式。 

div, p {
  color: red;
}

上面的代碼為div標簽和p標簽統一設置字體為紅色。

通常,我們會分兩行來寫,更清晰:(注意少逗號問題)
div,
p {
  color: red;
}

嵌套

種選擇器可以混合起來使用,比如:.c1類內部所有p標簽設置字體顏色為紅色。

.c1 p {
  color: red;
}

選擇器的優先級  

樣式文件優先級

1. 內聯樣式(直接在標簽里面寫style) 優先級最高

2. 選擇器都一樣的情況下,誰靠近標簽誰就生效

3. 選擇器不同時 計算權重來判斷

 


免責聲明!

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



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