Go to comments

HTML+CSS宝典 HTML进阶 表单元素

表单元素涉及到一系列元素,主要用于收集用户数据


一、input元素

input元素主要做文本输入,可能是文本框,可能是日期选择框,也可能是一个滑动块,这些都统称为输入,input 单词本身也是输入的意思,输入的不一定是文本,准确的说是输入框


input 是一个空元素,没有结束标记

type 属性,表示这个输入框的类型

value 属性,表示输入框的值

placeholder 属性,显示提示的文本,文本框没有内容时显示

<input type="text" value="请输入账号">


 不写 value 属性,写 placeholder 属性

<input type="text" placeholder="请输入账号">


type 属性有很多的取值,下面是经常用到的取值


 type = "text" 

表示普通文本输入框,在不同的浏览器显示的样式可能有些不一样


 type="password" 

表示密码框,在密码框 value 属性通常不会写(不是不能写),和加密一点关系都没有,不能加密,作用是防止背后有人偷窥的


 type="date" 

表示日期选择框,有兼容性问题,新版本浏览器一般都支持,用的时候谨慎,日期选择的样式不能更改,这也是可替换元素的特点


 type="search" 

表示为搜索框,一般在手机上用的比较多一点,手机键盘右下角的键不在是换行,变成了搜索按钮,

也有兼容性问题,

在电脑上用没什么区别,文本框后面多一个 x


 type="range" 

滑块,滑动的值要靠js来读取,range表示范围(选中一个范围),

使用 range 类型,有些属性是可以设置的

min 设置最小值为 0

max 设置最大值为 5

<input type="range" min="0" max="5">

这个不太常见,而且要配合js使用


 type="color" 

颜色选择,也要配合js使用

<input type="color">


 type="number" 

表示数字输入框,现在用的越来越多了,它只能输入数字,

今后做商城输入购物的数量,就用这个东西,有一些兼容性问题,老浏览器不支持

<input type="number">


还有一些属性

min 表示输入的最小值

max 表示输入的最大值

<input type="number" min="0" max="10">


number类型里还有一个步进属性step,表示每次输入多少,默认是1可以改成2

<input type="number" min="0" max="10" step="2">


 type="checkbox"   表示多选框

1. checked 属性表示默认选中(checked是布尔属性)

2. 要有一个name属性,根据name分组

吃 <input name="aihao[]" type="checkbox" value="吃" checked>

喝 <input name="aihao[]" type="checkbox" value="喝">

玩 <input name="aihao[]" type="checkbox" value="玩" checked>

乐 <input name="aihao[]" type="checkbox" value="乐">


 type="radio"  单选框

<h1>性别:</h1>

<input name="gender" type="radio" value="female" checked="checked"> 女

<input name="gender" type="radio" value="male"> 男


ps:

dedecms系统中的栏目属性

<h1>栏目属性:</h1>

<input name="ispart" type="radio" id="radio" value="0" checked="checked"/> 最终列表栏目(允许在本栏目发布文档,并生成文档列表) 

<input name="ispart" type="radio" id="radio" value="1" /> 频道封面(栏目本身不允许发布文档)

<input name="ispart" type="radio" id="radio" value="2" /> 外部连接(在"文件保存目录"处填写网址)


 type="file"  选择文件要上传

<input type="file" name="upfile">


 type="hidden" 

不显示在页面上,但他的值会被提交到服务器


这些常见的type属性都属于input元素,value属性、placeholder属性都是有的,只是有些情况placeholder属性我们看不见,


比如在单选框里写placeholder属性,写了没什么用

<h1>性别:</h1>

<input name="gender" type="radio" value="female" checked="checked" placeholder="请输入账号" > 女

<input name="gender" type="radio" value="male"> 男


一般使用输入框的时候,placeholder属性能显示

<input type="number" placeholder="输入数字">


placeholder属性,显示提示的文本,在文本框没有内容时显示

<input type="text" placeholder="请输入账号">


百度搜索 input mdn 

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input


input元素除了做输入框之外,还可以做按钮,只不过这种方式有点过时了


 type="reset"  重置按钮

<input tyle="reset" value="重置">


 type="button"  普通按钮,需要配合js和后端语言,静态页面写样式,尽量用botton

<input tyle="button" value="普通按钮">


 type="submit"  提交按钮

<input tyle="submit" value="提交">


 type="image"  图片按钮

src属性定义图片来源

alt定义替代文本

height和width属性定义图片大小

<input type="image" name="imageField" src="images/button_ok.gif" border="0" />


二、select元素

select元素表示"下拉列表选择框"

1. 通常和 option 元素配合使用,option表示下拉列表里面的选项

2. selected="selected" 默认选中,selected是布尔属性,在HTML5里面可以简写

请选择城市:

<select name="city" id="">

  <option value ="成都">成都</option>
  <option value ="北京">北京</option>
  <option selected="selected" value ="哈尔滨">哈尔滨</option>

</select>


select元素里面还可以进行分组,

1. 分组用 optgroup 元素,

2. label属性给分组一个名字

<h1>请选择你最喜欢的主播:<h1>

  <select name="city" id="">

  <optgroup label="才艺表演">
    <option value ="冯提莫">冯提莫</option>
    <option value ="朴妮唛">朴妮唛</option>
    <option selected value ="尹素婉">尹素婉</option>
  </optgroup>

  <optgroup label="游戏主播">
    <option value ="WETed">WETed</option>
    <option value ="infi">infi</option>
    <option selected="selected" value ="th000">th000</option>
  </optgroup>

</select>


multiple属性表示多选,按住键盘的 ctrl键 可以选择几个

<h1>请选择你喜欢的主播:</h1>

<select multiple name="city" id="">

  <optgroup label="才艺表演">
    <option value ="冯提莫">冯提莫</option>
    <option value ="朴妮唛">朴妮唛</option>
    <option selected value ="尹素婉">尹素婉</option>
  </optgroup>

  <optgroup label="游戏主播">
    <option value ="WETed">WETed</option>
    <option value ="infi">infi</option>
    <option selected="selected" value ="th000">th000</option>
  </optgroup>

</select>


三、textarea元素

这个元素专业的说法叫做文本域,也叫做多行文本框,

有的时候要填写用户的简介,或是书籍的简介内容比较多,用单行的input元素不太合适,我们可能需要多行的文本框用 textarea 元素


rows属性表示有多少行,文字能排成多少行

cols属性表示横向上有多少个文字(按照英文个数计算)

<textarea rows="10" cols="30" name="" id=""></textarea>


不建议使用rows、cols来控制宽高,建议用CSS来控制

<textarea style="width:500px;height:300px;" name="" id="">
  默认显示一些内容,
  这里是一个换行
</textarea>

textarea是一个可替换元素,

是一个行块盒,

里面的默认文字是没有空白折叠的


通常不会在静态页面里面填写默认内容,通常用placeholder属性

<textarea style="width:500px;height:300px;" placeholder="请输入简介" name="" id=""></textarea>


四、button按钮元素

用input元素也可以做按钮,但更多的时候我们使用button元素,如果要获得最大的兼容性,肯定使用input的来做按钮


但是button是HTML4.01出来的,历史悠久了,现在绝大部分浏览器99.9%兼容,所以除非有特别要求,按钮尽量使用button元素


因为button元素就是专门来做按钮的,语义button就是来做按钮的


button元素有一个type属性,表示按钮的类型,

类型有三种

reset

submit 默认值是submit

button

<button style="submit">按钮</button>

按钮的文本不是value属性值,文本是元素的内容,

元素内容就很灵活了,按钮可以写文本,也可以写其他的元素,

比如p元素,img元素,甚至加一个视频都可以,可以做出更加丰富的效果。


建议type设置成button,方便后和其他技术进修结合

<button type="button">按钮</button>


如果用图片按钮


input元素

<input type="image" src="图片url">


用button元素

<button>
  <img src="图片url" alt="">
</button>


五、配合表单元素的其他元素

1、label元素

label是一个普通元素,它不是什么可替换元素,也不是表单元素(通常配合表单元素),通常配合单选和多选框来使用


label表示标签,可以认为表示的是表单元素的标签(标签文本),可以通过for属性,让label元素关联某一个表单元素,for属性书写表单元素的id值


第一种关联方式,显示关联

1.  id="raFemale"   表单的id值

2.  for="raFemale"  label元素关联表单的id值

请选择性别:

<input type="radio" name="gender" value="female" checked id="raFemale">
<label for="raFemale">女</label>

<input type="radio" name="gender" value="male" id="raMale">
<label for="raMale">男</label>


第二种方式,隐式关联

用label标签把表单和标签文本包起来

请选择性别:

<label>
  <input type="radio" name="gender" value="female" checked> 女
</label>

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


2、datalist 数据列表

该元素本身不会显示到页面,通常用于和普通文本框配合使用


datalist 的默认样式表是 display: none,是不显示到页面上的,显示需要把datalist和普通文本框关联起来


怎么关联呢?

1. 通过datalist元素的id来关联

2. input元素文本框,通过list属性来关联id,

这样在文本框输入的时候,就会提示我们

请输入常用的浏览器:

<input type="text" list="userAgent">

<datalist id="userAgent">
  <option value="chrome">谷歌浏览器</option>
  <option value="IE">IE浏览器</option>
  <option value="Oprea">欧朋浏览器</option>
  <option value="Safarf">苹果浏览器</option>
  <option value="FireFox">火狐浏览器</option>
</datalist>

请输入常用的浏览器:


3、form元素

from元素非常非常重要,

作用是,通常情况下会将整个表单元素(什么文本框、下拉列表、包括按钮),整个表单元素放置到form元素内部,from元素其实就是用来,包含其他表单元素的


整个表单元素放置到form元素内部的作用?

当提交表单时(怎么提交表单?提交表单有很多很多种办法,js里面还有一些办法来提交表单,这里只说from的办法)


当点击提交按钮的时候,会将from元素内部的表单内容,以合适的方式,提交到服务器,from元素对开发静态页面,没有什么意义


from元素里面属性配置

1. action="" 表示提交给谁来处理,如果不写就是提交给当前页面

2. method="get" 表示提交方法(通常有两种get、post)

3. 然后里面的表单元素,要求必须写上name属性,要跟服务器联动,需要把name属性写上

<form action="https://www.baidu.com" method="get">

  <p><input type="text" name="loginId"></p>

  <p><input type="password" name="loginPwd"></p>

  <p>
    <select name="city">
      <option value="1">成都</option>
      <option value="2">重庆</option>
      <option value="3">北京</option>
      <option value="4">哈尔滨</option>
    </select>
  </p>

  <p><button>提交</button></p>

</form>


3、fieldset元素

fieldset 相当于表单分组,把一些表单分成一个组,从逻辑上来分组,

field表示的是字段的意思,可以认为一个表单项就是一个字段,就是一个文本框就是一个字段,

set表示集合,就是有很多个的意思,多个字段的集合就可以认为分成一个组,

fieldset还有一个子元素legend,可以认为是分组的标题


比如,一个div就是整个表单(不用form元素)

<div>
  <h1>修改用户信息</h1>

  <fieldset>
    <legend>账号信息</legend>
    <p>用户账号:<input type="text" name="loginID"></p>
    <p>用户密码:<input type="text" name="loginPWD"></p>
  </fieldset>

  <fieldset>
    <legend>基本信息</legend>
    <p>用户姓名:<input type="text" name="loginNAME"></p>
    <p>所在城市:
      <select name="city">
        <option value="1">成都</option>
        <option value="2">重庆</option>
        <option value="3">北京</option>
        <option value="4">哈尔滨</option>
      </select>
    </p>
  </fieldset>

  <p>
    <button>提交</button>
  </p>
</div>

可以用其他元素分组,但是fieldset可以从语义上的意思就是分组


4、表单状态

每一个表单项,不管是文本框、下拉列表、多行文本框、还是按钮,都有一些状态


状态有两种:

1. readonly 

2. disabled


 readonly  

这种表单的状态叫只读状态表示是否只读,这是一个布尔属性,这个表单只能读不能改动

<input type="text" value="只读状态,不能改动" readonly>


它的显示效果和正常的表单没有什么区别的,不会改变表单样式,

通常文本框里面会有这样一个状态叫readonly,文本框可以填写用readonly属性,按钮那些就不管了


 disabled 

另外一种状态是 disabled 表示是否禁用,也是一个布尔属性,表示是否禁用,会改变表单显示样式

<p>
	<input type="text" value="禁用" disabled>
</p>

disabled属性是通用的,所有的表单都可以用


firsetTime 20220129



Leave a comment 0 Comments.

Leave a Reply

换一张