1. 程式人生 > >HTML5(二)——特殊符號、新增屬性、表單重寫屬性、

HTML5(二)——特殊符號、新增屬性、表單重寫屬性、

枚舉值 mac a-z nova ride prevent edit wid inf

一、HTML5 特殊符號

  1. &nbsp :空格

  2. &gt:大於號 >

  3. &It :小於號 <

  4. &quot :引號”

  5. &copy:”版權符號 @

二、HTML 新增屬性

1、contentEditable

規定是否可編輯元素的內容
屬性值:
true -----可以編輯元素的內容
false -----無法編輯元素的內容
inherit -----繼承父元素的contenteditable屬性
當為空字符串時,效果和true一致。
當一個元素的contenteditable狀態為true(contenteditable屬性為空字符串,或為true,或為inherit且其父元素狀態為true)時,意味著該元素是可編輯的。否則,該元素不可編輯。

document.body.contentEditable=true; 可以修改已發布網站

技術分享圖片
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>contentEditable屬性</title>
    </head>
    <body>
        <h2>contentEditable屬性</h2>
        <div contenteditable
="true"> Hello contentEditable </div> </body> </html>
View Code

結果:

技術分享圖片

2、hidden

hidden屬性用於隱藏該元素。一旦使用了此屬性,則該元素就不會在瀏覽器中被顯示
2個布爾值
true 規定元素是可見。
false 規定元素是不可見。

技術分享圖片
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <
title>隱藏元素(hidden)</title> <style type="text/css"> #D{ width: 100px; height: 100px; background-color: red; } </style> </head> <body> <div id="D" style="visibility: collapse;"> </div> <!--隱藏元素--> <!--方法一:--> <!--隱藏:display:none--> <span style="display: none;">span1</span> <!--顯示:display: initial--> <span style="display: initial;">span2</span> <!--方法二--> <p> <!--隱藏:visibility: hidden--> <span style="visibility: hidden;">span3</span> <!--顯示:visibility: visible--> <span style="visibility: visible;">span4</span> </p> <!--方法三--> <p> <span hidden="hidden">span5</span> <span>span6</span> </p> </body> </html>
View Code

結果:

技術分享圖片

為了兼容一些不支持該屬性的瀏覽器(IE8),可以在CSS中加如下樣式:

*[hidden]{
display: none;
}

var div1=document.querySelector("body #div1");
div1.innerHTML+=" +++";

3、draggable

規定元素是否可拖拽
3個枚舉值
true 規定元素是可拖動的。
false 規定元素是不可拖動的。
auto 使用瀏覽器的默認特性。

技術分享圖片
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>拖拽元素(draggable)</title>
        
        <style>
            .box {
                width: 200px;
                height: 200px;
                display: inline-block;
                font-size: 0;
                margin: 0;
                padding: 0;
            }
            
            #div2 {
                width: 400px;
                height: 400px;
                background: lightseagreen;
                font-size: 0;
            }
        </style>
    </head>
    <body>
        <div class="box" draggable="true" style="background: lightcoral"></div>
        <div class="box" draggable="true" style="background: orangered;"></div>
        <div class="box" draggable="true" style="background: #4169E1;"></div>
        <div class="box" draggable="true" style="background: limegreen;"></div>
        
        <div id="div2"></div>
        
        <script src="../js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            var boxes = document.querySelectorAll(".box");
            var div2 = document.getElementById("div2");

            var temp;
            for(var i = 0; i < boxes.length; i++) {
                var box = boxes[i];
                box.ondragstart = function(e) {
                    temp = e.srcElement;
                    console.log("ondragstart開始拖動");
                }

                box.ondrag = function(e) {
                    console.log("ondrag拖動中");
                }

                box.ondragend = function(e) {
                    console.log("ondragend拖動結束");
                }
            }

            div2.ondragover = function(e) {
                e.preventDefault();
            }

            div2.ondrop = function(e) {
                div2.appendChild(temp.cloneNode(true));
            }
        </script>
    </body>
</html>
View Code

結果:

技術分享圖片

4、data-*

data-*屬性能讓用戶自定義屬性的方式來存儲數據
<span data-order-amount=100></span>
取值:
getAttribute(‘data-order-amount‘)
dataset.orderAmount
jQuery中的data()方法同樣可以訪問

使用jQuery與javascript添加與獲取data屬性示例:

技術分享圖片
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>data-*</title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </head>

    <body>
        <div id="div1" data-stu-age="100"  data-student=‘{"name":"tome","age":19}‘>學生:Tom</div>

        <button onclick="addData()">添加數據</button>
        <button onclick="getData()">獲取數據</button>

        <script type="text/javascript">
            
            var div1=document.getElementById("div1");
            function addData() {
                div1.setAttribute("data-stu-age",101);  //方法1
                div1.dataset.stuAge=102;                //方法2
                $("#div1").data("stuAge",103);          //方法3
            }

            function getData() {
                console.log(div1.getAttribute("data-stu-age"));     //方法1
                console.log(div1.dataset);                          //方法2
                console.log(JSON.parse(div1.dataset.student).age);
                console.log(div1.dataset.stuAge); 
                console.log($("#div1").data("stuAge"));             //方法3
            }
        </script>
    </body>

</html>
View Code

結果:

技術分享圖片

5、placeholder占位屬性

這是一個很實用的屬性,免去了用JS去實現點擊清除表單初始值.瀏覽器支持也還不錯,除了Firefox,其他標準瀏覽器都能很好的支持

這是一個很實用的屬性,免去了用JS去實現點擊清除表單初始值.瀏覽器支持也還不錯,除了Firefox,其他標準瀏覽器都能很好的支持
<input placeholder="請輸入用戶名">

            <p>
                <label>郵箱:</label>
                <input type="email" name="mail" id="mail" value="" placeholder="請輸入郵箱"/>
            </p>

技術分享圖片

6、required必填屬性

約束表單元在提交前必須輸入值。

            <p>
                <label>博客:</label>
                <input type="url" name="blog" id="blog" value="" required="required"/>
            </p>

技術分享圖片

7、pattern正則屬性

約束用戶輸入的值必須與正則表達式匹配。

            <p>
                <label>帳號:</label>
                <input type="text" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />請輸入a-zA-Z0-9且長度6-16位的字符
            </p>

技術分享圖片

8、autofocus自動聚焦屬性

            <p>
                <label>博客:</label>
                <input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/>
            </p>

讓指定的表單元素獲得焦點。

技術分享圖片

9、autocomplete自動補全屬性

當表單元素設置了自動完成功能後,會記錄用戶輸入過的內容,雙擊表單元素會顯示歷史輸入。

<input type="text" name="username" autocomplete="on/off" />

技術分享圖片

該屬性默認是打開的。

10、novalidate不驗證屬性

novalidate 屬性規定在提交表單時不應該驗證 form 或 input 域。
<form action="demo_form.asp" method="get" novalidate="true">

<button formnovalidate="formnovalidate" >提交</button>

11、multiple多選屬性

multiple 屬性規定輸入域中可選擇多個內容,如:email 和 file

<input type="file" multiple="multiple” />

            <p>
                <label>相片:</label>
                <input type="file" multiple="multiple"/>
            </p>

技術分享圖片

12、禁用屬性:disabled

13、只讀屬性:readonly(只讀文本框): true false

14、長度屬性:size="初始長度"

15、選中屬性:selected(默認選中項) 【列表】

16、選中屬性:checked (單選按鈕選中狀態)【單選、復選】

17、輸入的最大字符數 :maxlength:type為text或password時,

18、指定按鈕是否被選中:checked:type為radio或checkbox時,

19、光標定位:autofocus

三、表單重寫屬性

表單重寫屬性(form override attributes)允許您重寫 form 元素的某些屬性設定。
表單重寫屬性有:
formaction - 重寫表單的 action 屬性
formenctype - 重寫表單的 enctype 屬性
formmethod - 重寫表單的 method 屬性
formnovalidate - 重寫表單的 novalidate 屬性
formtarget - 重寫表單的 target 屬性

技術分享圖片
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        姓名:<input type="text" name="realname" form="form1"/>
        <form id="form1" method="get">
            <button formmethod="get"  formaction="d01.html">get提交給d01.html</button>
            <button formmethod="post" formaction="d02.html">post提交d02.html</button>
        </form>
    </body>
</html>
View Code

運行結果:

技術分享圖片

HTML5(二)——特殊符號、新增屬性、表單重寫屬性、