Closed zilongxuan001 closed 6 years ago
控件,是表格的重要组成单元。
比如单选框,复选框,下拉框,选择时间,选择颜色等等。
控件就是类似按钮、文本输入框或下拉菜单之类的工具,允许你输入数据。
来源:《Head First HTML 与 CSS》(中文第二版)P647
CHANGELOG: 20180626写问题 20180702补充
<form>
元素包含构成表单的所有元素,并告诉浏览器当你提交表单时要把表单数据发送到哪里(以及浏览器使用说明方法发送数据)
<form type="" url=""></form>
举例
<form action="http://wickedlysmart.com/hfhtmlcss/contest.php" method="POST">
action
属性包括Web服务器的URL,http://wickedlysmart.com
;脚本所在的文件夹,hfhtmlcss
;处理表单数据的服务器脚本的文件名,contest.php
。
method
属性确定表单数据如何发送到服务器,这里使用POST
方法。
来源:《Head First HTML 与 CSS》(中文第二版)P650
CHANGELOG: 20180626写问题 20180702补充
<input>
在表单里都有什么功能?形式如何?text
<input>
元素用于输入一行文本,可设置输入的最大字符个数和宽度。
<input type="text" name="fullname">
submit
<input>
元素会闯将一个按钮,允许你提交表单。点击按钮时,浏览器会把表单发到服务器脚本进行处理。
<input type="submit">
radio
<input>
元素会创建包含多个按钮的控件,但是一次只能选择其中一个按钮。关联的单选按钮必须有相同的type和name。
<input type="radio" name="hotornot" value="not" >
checkbox
<input>
会创建一个复选框控件,可以选中也可以不选中。 关联的复选框必须有相同的type和name。<input type="checkbox" name="spice" value="Salt" > <input type="checkbox" name="spice" value="Pepper" > <input type="checkbox" name="spice" value="Garlic" >
来源:《Head First HTML 与 CSS》(中文第二版)P652-653
CHANGELOG: 20180626写问题 20180703补充答案
<input>
元素后为什么要加<br>
?因为<input>
元素是内联元素,如果不加<br>
,<input>
会放置在一行内。
来源:《Head First HTML 与 CSS》(中文第二版)P664
CHANGELOG: 20180626
<textarea>
在表单里都有什么功能?形式如何?
<textarea>
在表单里可以实现多行文字输入
可以用CSS限定文本区的宽度和高度
rows属性告诉浏览器文本区高度为多少个字符
cols属性告诉浏览器文本区宽度为多少个字符
<textarea>
和</textarea>
之间可以填写文本,该本文本会成为浏览器文本区控件中的初始文本。
<textarea name="comments" rows="10" cols="48"></textarea>
来源:《Head First HTML 与 CSS》(中文第二版)P654
CHANGELOG: 20180626写问题 20180703写答案
<select>
在表单里都有什么功能?形式如何?
<select>
和<option>
合用,实现下拉框的菜单功能。
<select name="characters">
<option value="Buckaroo">Buckaroo Banzai</option>
<option value="Tommy">Perfect Tommy</option>
<option value="Penny">Penny Priddy</option>
</select>
来源:《Head First HTML 与 CSS》(中文第二版)P655 CHANGELOG: 20180626写问题 20180703写答案
<option>
在表单里都有什么功能?形式如何?<option>
和<select>
连用,实现下拉框功能。<option>
相当于菜单选项。
<option>
元素的内容用作为菜单项的描述。每个菜单选项还可以包含表示这个菜单项的值。
<select name="characters">
<option value="Buckaroo">Buckaroo Banzai</option>
<option value="Tommy">Perfect Tommy</option>
<option value="Penny">Penny Priddy</option>
</select>
来源:《Head First HTML 与 CSS》(中文第二版)P654 CHANGELOG: 20180626写问题 20180703写答案
<select>
的name和<option>
的value是如何传到服务器?举例说明
<select name="beans">
<option value="Guatemala">Organic Guatemala</option>
</select>
Organic Guatemala
会作为下拉标签显示在HTML页面中。
浏览器会将<select>
的name和<option>
的value打包,形成beans=Guatemala
,发送给服务器。
来源:《Head First HTML 与 CSS》(中文第二版)P666 CHANGELOG:20180626
如何实现数字输入?
number
<input>
元素会限制只能输入数字,可设置允许的最小数和最大数。
举例
<input type="number" min="0" max="20" step="5">
min
和max
控制输入的最小数和最大数
step
用来指定间隔数。
来源:《Head First HTML 与 CSS》(中文第二版)P656,HTML5新输入类型 CHANGELOG: 20180626写问题 20180703写答案
如何实现范围输入?
range
<input>
元素会显示一个滑动条。
<input type="range" min="0" max="20" step="5">
number
和range
都可以设置step,用来指定间隔数。
来源:《Head First HTML 与 CSS》(中文第二版)P656,HTML5新输入类型 CHANGELOG: 20180626写问题 20180703写答案
如何实现颜色输入?
使用color
<input>
可以指定一个颜色,单击该控件,会出现一个颜色选择器,允许你输入一个颜色。
<input type="color">
来源:《Head First HTML 与 CSS》(中文第二版)P656,,HTML5新输入类型 CHANGELOG: 20180626写问题 20180703写答案
如何实现日期输入?
使用date
<input>
元素时,可以利用一个日期选择控件指定日期。控件会创建一个合法的日期格式串,发送到服务器脚本。
<input type="date">
来源:《Head First HTML 与 CSS》(中文第二版)P657,,HTML5新输入类型 CHANGELOG: 20180626写问题 20180703写答案
如何实现email输入?
<input>
元素是一个文本输入元素,在一些移动浏览器上,输入email时会得到一个输入email的定制键盘。
<input type="email">
来源:《Head First HTML 与 CSS》(中文第二版)P657,,HTML5新输入类型 CHANGELOG: 20180626写问题 20180703写答案
如何实现url输入?
url
<input>
元素是一个文本输入元素,在一些移动浏览器上,输入url时会得到一个定制键盘。
<input type="url">
来源:《Head First HTML 与 CSS》(中文第二版)P657,,HTML5新输入类型 CHANGELOG: 20180626写问题 20180703写答案
如何实现tel输入?
tel
<input>
元素是一个文本输入元素,在一些移动浏览器上,输入tel时会得到一个定制键盘。<input type="tel">
来源:《Head First HTML 与 CSS》(中文第二版)P657,,HTML5新输入类型
CHANGELOG: 20180626写问题 20180703写答案
表单元素名name
是后台服务程序中的标签,后台服务程序会根据name的不同,进行分类。所以,name不是随便写的,是后台服务程序先编辑了标签名称(即‘name’值),HTML文档才有name的值。
表单中的每个输入控件都有一个name属性,指定唯一的名字。
提交表单时,浏览器会使用这些唯一的名字打包所有数据。
形式
name的值 = 输入的文本
来源:《Head First HTML 与 CSS》(中文第二版)P662
CHANGELOG: 20180627写问题 20180703写答案
每个表单元素都有一个name,每个元素都有一个相应的值。单击提价按钮时,浏览器会拿到所有的name和响应的值,把它们发送给服务器。
举例,name为
zip
的text<input>
元素中输入了邮政编码“90050”,表单提交时,浏览器会把zip=90050
发送到服务器。
来源:《Head First HTML 与 CSS》(中文第二版)P663
CHANGELOG: 20180627写问题 20180703写答案
<option>
元素没有name属性?其他表单元素都有name属性?因为
<option>
是菜单的一部分,而<select>
已经带上name属性。
来源:《Head First HTML 与 CSS》(中文第二版)P663
CHANGELOG: 20180627写问题 20180703写答案
因为需要让浏览器知道这些单选按钮或复选框属于同一组。
来源:《Head First HTML 与 CSS》(中文第二版)P663
CHANGELOG: 20180627写问题 20180703写答案
<input type="submit">
来源:《Head First HTML 与 CSS》(中文第二版)P652 CHANGELOG: 20180627写问题 20180703写答案
可以通过value值实现其他文本。
<input type="submit" value="order now">
来源:《Head First HTML 与 CSS》(中文第二版)P663 CHANGELOG: 20180627写问题 20180703写答案
可以限制<input>
和<textarea>
的文本输入吗,如何限制?
<input>
可以限制文本输入的行数。
<input maxlength="100">
会限制用户只能设置100个字符。
<textarea>
无法限制文本输入的行数。
来源:《Head First HTML 与 CSS》(中文第二版)P663
CHANGELOG: 20180627写问题 20180703写答案
tel、email、url和text没有什么区别,不过标签会不一样。
在一些移动端浏览器中,tel、email、url会有定制键盘,方便输入。
来源:《Head First HTML 与 CSS》(中文第二版)P663 CHANGELOG: 20180627写问题 20180703写答案 20180704补充
<input>
的type类型为radio,name要一样。
举例
<input type=“radio” name="beantype" value="whole">Whole bean <br>
<input type="radio" name="beantype" value="ground">Ground
来源:《Head First HTML 与 CSS》(中文第二版)P668
CHANGELOG: 20180628写问题
在<input>
中添加布尔属性checked
,即可默认选该值。
举例 默认选Gound
<input type=“radio” name="beantype" value="whole">Whole bean <br>
<input type="radio" name="beantype" value="ground" checked>Ground
来源:《Head First HTML 与 CSS》(中文第二版)P670
CHANGELOG: 20180628写问题
<input>
的type类型为checkbox,name要一样。
举例
<input type=“checkbox” name="extras[]" value="giftwrap">Gift wrap <br>
<input type="checkbox" name="extras[]" value="catalog">Include catalog with order
来源:《Head First HTML 与 CSS》(中文第二版)P673
CHANGELOG: 20180628写问题
在<input>
中添加布尔属性checked
,即可默认选该值。
举例 默认选Include catalog with order
<input type=“checkbox” name="extras[]" value="giftwrap">Gift wrap <br>
<input type="checkbox" name="extras[]" value="catalog" checked>Include catalog with order
来源:《Head First HTML 与 CSS》(中文第二版)P673
CHANGELOG: 20180628写问题
举例
在HTML中,将<form>
的method设置为POST
form action="http://starbuzzcoffee.com/processorder.php" method="POST">
在HTML页面的表格中填写如下数据,
点击“Order Now”后, 浏览器的URL地址为
http://starbuzzcoffee.com/processorder.php
来源:《Head First HTML 与 CSS》(中文第二版)P678
CHANGELOG: 20180628写问题
发送订单时。
不希望用户加书签
不希望用户看到书签,如信用卡等隐私信息。
使用<textarea>
时,要使用POST,因为<textarea>
有大量数据,POST对数据量比较宽松。
来源:《Head First HTML 与 CSS》(中文第二版)P679
CHANGELOG: 20180628写问题
举例
在HTML中,将<form>
的method设置为GET
<form action="http://starbuzzcoffee.com/processorder.php" method="GET">
在HTML页面的表格中填写如下数据,
点击“Order Now”后, 浏览器的URL地址为
http://starbuzzcoffee.com/processorder.php?beans=House+Blend&beantype=ground&bags=2&date=2018-06-28&extras%5B%5D=catalog&name=Bucaroo+Banzai&address=Banzai+Institute&city=Los+Angeles&state=CA&zip=90050&phone=3105551212&comments=GOOD
来源:《Head First HTML 与 CSS》(中文第二版)P678 CHANGELOG: 20180628写问题
希望用户加书签时
GET对数据发送,比POST严格。
来源:《Head First HTML 与 CSS》(中文第二版)P679
CHANGELOG: 20180628写问题
<label>
为控件加上标签,增加可访问性。
提供更多的页面结构信息。
方便使用CSS对标签使用样式。
方便视力有障碍的人。
举例
要使用
<label>
元素,首先为其增加id属性。在增加一个
<label>
,设置其for
属性和id要一致。
<input type="radio" name="horornot" value="hot" id ="hot">
<label for="hot">hot</label>
<input type="radio" name="horornot" value="not" id ="not">
<label for="not">not</label>
来源:《Head First HTML 与 CSS》(中文第二版)P688
CHANGELOG:
20180628 写问题; 20180702 写答案 20180703补充
任何表表单控件都可以使用label。
来源:《Head First HTML 与 CSS》(中文第二版)P688
CHANGELOG:
20180628 写问题; 20180702 写答案
label要保持一致,同一组内设置的id要唯一。
举例
<input type="radio" id="whole_beantype" name="beantype" value="whole">
<label for="whole_beantype">Whole bean</label><br>
<input type="radio" id="ground_beantype" name="beantype" value="ground">
<label for="ground_beantype">Ground</label>
来源:《Head First HTML 与 CSS》(中文第二版)P688
CHANGELOG:
20180628写问题; 20180702写答案。 20180703补充答案
<fieldset>
和<legend>
使用
<fieldset>
和<legend>
,可以对元素进行分组,把公共元素组织在一起。
举例
<fieldset>
<legend>Condiments</legend>
<input type="checkbox" name="spice" value="salt">
Salt</br>
<input type="checkbox" name="spice" value="pepper">
Pepper</br>
<input type="checkbox" name="spice" value="garlic">
Garlic
</fieldset>
浏览器显示
来源:《Head First HTML 与 CSS》(中文第二版)P689
CHANGELOG: 20180628写问题。 20180703写答案
<passwords>
输入密码,如果使用<passwords>
,输入的字数或数字会用黑点实圆遮盖。
<input type="password" name="secret">
来源:《Head First HTML 与 CSS》(中文第二版)P689
CHANGELOG: 20180628写问题 20180703写答案
可以往浏览器传文件,type设置成file,且
<form>
的method必须是POST
<input type="file" name="doc">
来源:《Head First HTML 与 CSS》(中文第二版)P690
CHANGELOG: 20180628 写问题 20180703写答案
为
<select>
增加布尔属性multiple,则下拉菜单可以变成多选裁断,使用Ctrl,可以选择多个选项。
<select name="characters" multiple>
<option value="Buckaroo">Buckaroo Banzai</option>
<option value="Tommy">Perfect Tommy</option>
<option value="Penny Priddy">Penny</option>
</select>
来源:《Head First HTML 与 CSS》(中文第二版)P690
CHANGELOG: 20180628写问题
提示符,会提示该输入什么文字。
<input>
元素可以使用placeholder属性。
<input type="text" placeholder="Buckaroo Banzai">
来源:《Head First HTML 与 CSS》(中文第二版)P691
CHANGELOG: 20180628写问题; 20180702写答案 20180703补充答案
required
required
是要求必填,适用于任何一个表单控件。
<input type="text" placeholder="Buckaroo Banzai" required>
来源:《Head First HTML 与 CSS》(中文第二版)P691
CHANGELOG: 20180628写问题 20180702写答案 20180703补充答案
表单
表单定义
表单,是用户填写页面表单后,信息会提交到服务器保存。
来源:《Head First HTML 与 CSS》(中文第二版)P646
CHANGELOG: 20180626写问题 20180702补充
表单浏览器中如何工作
来源:《Head First HTML 与 CSS》(中文第二版)P647
CHANGELOG: 20180626写问题 20180702补充
表单内容都由哪些组成?
表单内容组成
来源:《Head First HTML 与 CSS》(中文第二版)P649
CHANGELOG: 20180626写问题 20180702补充
表单里可以放什么元素?
表单里几乎可以放任何元素。
来源:《Head First HTML 与 CSS》(中文第二版)P652
CHANGELOG: 20180626写问题 20180702补充
表单使用什么布局?
表单使用表格布局,每个单元格对应一个块元素。
在HTML文档中
在CSS文档中
来源:《Head First HTML 与 CSS》(中文第二版)P682
CHANGELOG: 20180628写问题 20180702补充