HTML5学习总结-05 HTML5表单

一 HTML5 新的类型

  HTML5 拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证。

  •     email
  •     url
  •     number
  •     range
  •     Date pickers (date, month, week, time, datetime, datetime-local)
  •     search
  •     color

1 Input 类型 - email

  email 类型用于应该包含 e-mail 地址的输入域。在提交表单时,会自动验证 email 域的值。

  例子:

E-mail: <input type="email" name="user_email" />

提示:iPhone 中的 Safari 浏览器支持 email 输入类型,并通过改变触摸屏键盘来配合它(添加 @ 和 .com 选项),Android也同样适用。

2 Input 类型 - url

  url 类型用于应该包含 URL 地址的输入域。在提交表单时,会自动验证 url 域的值。

  例子:

Homepage: <input type="url" name="user_url" />

提示:iPhone 中的 Safari 浏览器支持 url 输入类型,并通过改变触摸屏键盘来配合它(添加 .com 选项)。

3 Input 类型 - number

  number 类型用于应该包含数值的输入域。您还能够设定对所接受的数字的限定:

  例子:

Points: <input type="number" name="points" min="1" max="10" />

  number类型的属性列表:

属性 描述
max number 规定允许的最大值
min number 规定允许的最小值
step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value number 规定默认值

4 Input 类型 - range

  range 类型用于应该包含一定范围内数字值的输入域。range 类型显示为滑动条。还能够设定对所接受的数字的限定。

  例子:

<input type="range" name="points" min="1" max="10" />

  下面的属性来规定对数字类型的限定:

 属性描述
max number 规定允许的最大值
min number 规定允许的最小值
step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value number 规定默认值

5 Input 类型 - Date Pickers(日期选择器)

  HTML5 拥有多个可供选取日期和时间的新输入类型:

  •     date - 选取日、月、年
  •     month - 选取月、年
  •     week - 选取周和年
  •     time - 选取时间(小时和分钟)
  •     datetime - 选取时间、日、月、年(UTC 时间)
  •     datetime-local - 选取时间、日、月、年(本地时间)

  例子:

Date: <input type="date" name="user_date" />
Month: <input type="month" name="user_date" />
Week: <input type="week" name="user_date" />
Time: <input type="time" name="user_date" />
Date and time: <input type="datetime" name="user_date" />
Date and time: <input type="datetime-local" name="user_date" />

6 Input 类型 - search

  search 类型用于搜索域,比如站点搜索或 Google 搜索。search 域显示为常规的文本域。
  例子:

<input type=“search” name=“inputSearch” results=“n”  />

二 HTML5 表单元素

1 datalist 元素  

  datalist 元素规定输入域的选项列表。列表是通过 datalist 内的 option 元素创建的。如需把 datalist 绑定到输入域,请用输入域的 list 属性引用 datalist 的 id:

  例子:

<!DOCTYPE HTML>
<html>
<body>

<form action="/example/html5/demo_form.asp" method="get">
Webpage: <input type="url" list="url_list" name="link" />
<datalist id="url_list">
    <option label="W3School" value="http://www.w3school.com.cn" />
    <option label="Google" value="http://www.google.com" />
    <option label="Microsoft" value="http://www.microsoft.com" />
</datalist>
<input type="submit" />
</form>

</body>
</html>

提示:option 元素永远都要设置 value 属性。

2 output 元素

  output 元素用于不同类型的输出,比如计算或脚本输出;

  例子:

<!DOCTYPE HTML>
<html>

    <head>
        <meta charset="utf-8" />
        <script type="text/javascript">
            function resCalc() {
                numA = document.getElementById("num_a").value;
                numB = document.getElementById("num_b").value;
                document.getElementById("result").value = Number(numA) + Number(numB);
            }
        </script>
    </head>

    <body>
        <p>使用 output 元素的简易计算器:</p>
        <form onsubmit="return false">
            <input id="num_a" /> +
            <input id="num_b" /> =
            <output id="result"  ></output>
            <br />
            <button onclick="resCalc()"  >计算结果</button>
        </form>
    </body>
</html>

三 HTML5 表单属性

  HTML5 的新的表单属性,主要是 <form> 和 <input> 元素的新属性。

1 新的 form 属性

1)autocomplete 属性
  autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。autocomplete 适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, password, datepickers, range 以及 color。当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项:
  实例:

<!DOCTYPE HTML>
<html>
    <header>
        <meta charset="utf-8" />
    </header>

    <body>

        <form action="#" method="get">
            姓氏:<input type="text" name="LastName" value="" autocomplete="on" /><br />
            名字:<input type="text" name="FirstName" value="" autocomplete="off" /><br /> 
            <input type="submit" />
        </form>
    </body>

</html>

2) autofocus 属性
  autofocus 属性规定在页面加载时,域自动地获得焦点。autofocus 属性适用于所有 <input> 标签的类型。

  例子:

<!DOCTYPE HTML>
<html>
    <body>
        <form action="/example/html5/demo_form.asp" method="get">
             First Name: <input type="text" name="first_name"   />     <br />
             Last name: <input type="text" name="last_name" autofocus="autofocus" /><br />
             
            <input type="submit" />
        </form>

    </body>

</html>

3) form 属性
  form 属性规定输入域所属的一个或多个表单。form 属性适用于所有 <input> 标签的类型。form 属性必须引用所属表单的 id.

  例子:

<!DOCTYPE HTML>
<html>
<body>
<form action="/example/html5/demo_form.asp" method="get" id="user_form">
First name:<input type="text" name="fname" />
<input type="submit" />
</form>

<p>下面的输入域在 form 元素之外,但仍然是表单的一部分。</p>
Last name: <input type="text" name="lname" form="user_form" />

</body>
</html>

4)表单重写属性
  表单重写属性(form override attributes)允许您重写 form 元素的某些属性设定。
  表单重写属性有:

  •     formaction - 重写表单的 action 属性
  •     formmethod - 重写表单的 method 属性

  注释:表单重写属性适用于以下类型的 <input> 标签:submit

  例子:  

<!DOCTYPE HTML>
<html>
<body>
<form action="/example/html5/demo_form.asp" method="get" id="user_form">
E-mail: <input type="email" name="userid" /><br />
<input type="submit" value="Submit" /><br />
<input type="submit" formaction="/example/html5/demo_admin.asp" value="Submit as admin" /><br />
</form>
</body>
</html>

5) list 属性

  list 属性规定输入域的 datalist。datalist 是输入域的选项列表。
  注释:list 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, date pickers, number, range 以及 color。
  例子:

Webpage: <input type="url" list="url_list" name="link" />
<datalist id="url_list">
<option label="W3Schools" value="http://www.w3school.com.cn" />
<option label="Google" value="http://www.google.com" />
<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

6)min、max 和 step 属性
  min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。
  max 属性规定输入域所允许的最大值。
  min 属性规定输入域所允许的最小值。
  step 属性为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。
  注释:min、max 和 step 属性适用于以下类型的 <input> 标签:date pickers、number 以及 range。
  下面的例子显示一个数字域,该域接受介于 0 到 10 之间的值,且步进为 3(即合法的值为 0、3、6 和 9):
  例子:

Points: <input type="number" name="points" min="0" max="10" step="3" />

7)pattern 属性

  pattern 属性规定用于验证 input 域的模式(pattern)。
  模式(pattern) 是正则表达式。您可以在我们的 JavaScript 教程中学习到有关正则表达式的内容。
  注释:pattern 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。
  下面的例子显示了一个只能包含三个字母的文本域(不含数字及特殊字符):

Country code: <input type="text" name="country_code"
pattern="[A-z]{3}" title="Three letter country code" />

8)placeholder 属性
  placeholder 属性提供一种提示(hint),描述输入域所期待的值。
  注释:placeholder 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。
  提示(hint)会在输入域为空时显示出现,会在输入域获得焦点时消失:

<input type="search" name="user_search"  placeholder="Search W3School" />

9)required 属性
  required 属性规定必须在提交之前填写输入域(不能为空)。
  注释:required 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。

Name: <input type="text" name="usr_name" required="required" />

10) enctype 属性

  enctype 属性规定在将表单数据发送到服务器之前如何对其进行编码。
  默认是对表单数据以 "application/x-www-form-urlencoded" 进行编码。这意味着在发送前对所有字符进行编码(把 "+" 转换为空格,把特殊字符转换为 ASCII 十六进制值)。

 

 综合例子

<!DOCTYPE html >

<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <meta charset="utf-8" />
        <style>
            * {
                margin: 0px;
                padding: 0px;
            }
            
            header,
            nav,
            article,
            aside,
            footer {
                border: 1px solid greenyellow;
                padding: 10px;
                //margin: 0px;
                
            }
            
            header{
                 1070px;
            }
            
            nav{
                float: left;
                 200px;
                height: 500px;
            }
            
            article{
                float: left;
                  500px;
                 height: 500px;
            }
            
            aside{
                float: left;
                 326px;
                 height: 500px;
            }
            
            footer{
                clear: both;    
                 1070px;
            }
            
        </style>

    </head>

    <body>
        <header>
            导航
        </header>
        <nav>菜单
        </nav>
        <article>
            内容</article>
        <aside>
            侧边栏</aside>
        <footer>
            尾部</footer>

    </body>

</html>

计算数据:

1092

-222
-522

内边框+ 内边距 22


外边框  12 * 4 = 48

1092 - 222 - 522 = 348

参考资料:

http://www.w3school.com.cn/html5/html_5_form_attributes.asp

http://www.w3school.com.cn/html5/att_form_enctype.asp 

原文地址:https://www.cnblogs.com/wangshuo1/p/5858724.html