HTML系列:
CSS系列:
表单是比较重要的HTML元素,块元素,主要作用是向服务端提交数据。结合表单元素input使用,通过内部的button按钮提交(type="submit")表单数据。
input
button
[url]?uname=1&age=2
<style> #form fieldset { border: 1px solid skyblue; padding: 20px 10px; border-radius: 5px; text-align: center; margin: 10px 0px; } #form fieldset legend { font-size: 1em; border: 1px solid rgb(236, 175, 43); border-radius: 1em; padding: 3px 15px; }style><form id="form" action="#" target="_self" method="post"> <fieldset> <legend>登录legend> <input type="text" name="uname" placeholder="请输入用户名" required maxlength="36"> <input type="password" name="upwd" required maxlength="12" placeholder="输入密码"> <input type="submit" value="submit-登录"> fieldset>form>
📢注意:提交数据时参数名为表单元素的name,因此表单控件须设置name属性。
?
url?key=value&key=...
📢因此: 数据有安全性要求的时候,建议用POST并且加密(HTTPS)。 获取数据(如查询)的的时候,一般用GET;提交数据(添加、修改、删除)时一般用POST。
📢因此:
表单元素单标签、行内元素,主要用于输入各种类型数据。包含多个表单类型type:文本框、复选框、单选框、按钮等。
type
step
value
submit
src
alt
image/png, video/*
.jpg,.png,.doc
list
text
value="2018-05"
📢注意: 一般浏览器对不支持的type,都默认降级为text。 文件选择框如通过表单提交,表单需设置属性enctype="multipart/form-data"设置表单数据编码为多种数据组合,同时设置提交方式为post,才可以上传文件(二进制)。
📢注意:
enctype="multipart/form-data"
true
<style> .iform { text-align: right; display: grid; grid-template-columns: 80px 200px 80px 200px; gap: 10px 5px; } /* 重写radio的样式 */ .iform input[type="radio"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; border-radius: 50%; width: 20px; height: 20px; border: 3px solid #999; transition: 0.2s all linear; outline: none; position: relative; } .iform input[type="radio"]:checked { border: 6px solid #4A80FF; } .iform input:invalid { border-color: red; } .iform input,.iform label { height: 26px; padding: 0 3px; display: inline-block; vertical-align: middle; }style><form class="iform"> text:<input type="text" autocomplete="on" required placeholder="username" autofocus> password:<input type="password" required maxlength="12" minlength="6"> number:<input type="number" step="12" min="1" value="33" > radio:<div style="text-align:left;"> <label><input type="radio" name="sex" checked>男label> <label><input type="radio" name="sex">女label>div> checkbox:<div style="text-align:left;"> <label><input type="checkbox" name="cbgroup">做饭label> <label><input type="checkbox" name="cbgroup">打球label>div> <input type="hidden" value="key123"> file:<input type="file" accept="image/*"> email:<input type="email" inputmode="email" pattern=".+@163.com" placeholder="***@163.com"> range:<input type="range" min="0" max="100" value="10" step="5"> search:<input type="search" list="slist"> tel:<input type="tel" pattern="[0-9]*" maxlength="14"> url:<input type="url" placeholder="http://example.com"> color:<input type="color" value="#ff0000" > datetime-local<input type="datetime-local"> month:<input type="month" step="1"> time:<input type="time" value="12:12"> week:<input type="week" value="12:12" required> <input type="reset" value="reset重置"> <input type="button" value="普通按钮"> <input type="image" src="../res/btnb.png" width="60px"> <input type="submit" value="submit提交">form>
数据集合元素,包含了一组元素,提供给文本类(list属性)使用,作为可选值的数据集。
range
<datalist id="optfruit"> <option value="香蕉">香蕉option> <option value="火龙果">火龙果option> <option value="绿色蔬菜">冬瓜option> <option value="男瓜"> <option value="其他">datalist><input type="search" list="optfruit">
可以输入多行文本,支持换行、空格,行内元素。
还可以使用 中的一些常见属性,如autocomplete、autofocus、disabled、placeholder、readonly,和 required、maxlength等。可使用css样式属性resize设置输入框的大小调整方式。
resize
<p> <label for="txtsumary">个人简介:label> <textarea name="txtsumary" rows="3" cols="50" style="resize: vertical;" required>多行文本内容, 支持空格、换行textarea>p>
是一个文本标签,最主要的使命是辅助表单元素聚焦,点击会让其for关联的元素得到焦点,for属性值所指的元素id就是她的服务客户。因此是表单控件的最佳搭档,点击label=等于点击对应元素。是一个双标签,里可以嵌套其他行内元素,如文字、图片、表单元素。
for
id
label
<p> <label for="uname"> <span>Name:span> <input id="uname" type="text" name="uname"> <span title="required">*span> label>p><div> <label for="username">Name: <span title="required">*span>label> <input id="username" type="text" name="username">div><label> <input type="checkbox" />阅读并同意条款<img src="../res/head-48.gif" width="24px">label>
⭐还有一种简写的方式:用 label 元素把 input 元素包裹起来,以减少for- id 的使用。
<button> 是HTML5的新元素,行内元素,作用和input-button的功能基本相同。不同的是他是双标签,内部可以自由定义内容,也可以使用伪元素,实现更丰富的按钮效果,所以按钮用他就对了。
input-button
双标签
<button type="button">普通按钮button><button type="submit">提交submitbutton><button type="reset" style="width:80px;"><img src="../res/sk (13).png"><br/>重置button>
和的区别?
选择列表元素,行内元素,有弹出下拉框、选项列表两种模式,是他的选项子元素。启用multiple或size>1时,显示为列表,否则显示为下拉框模式。
multiple
size>1
<form action=""> 多选multiple: <select id="selfruit" name="selfruit" multiple size="4" list="optfruit"> <optgroup label="热带水果"> <option value="1">香蕉option> <option value="2">火龙果option> optgroup> <optgroup label="蔬菜"> <option value="3">绿色蔬菜option> <option value="4">冬瓜option> <option value="4" disabled>男瓜option> optgroup> <option value="5">其他option> select> 单选: <select name="selsex" size="0" required> <option value="" selected>选择性别option> <option value="1">男option> <option value="2">女option> <option value="5">其他option> select> <input type="submit">form>
两者都可以实现进度的效果,为进度条元素。更为丰富,表示某种计量,适用于温度、重量、金额等量化的可视化展示。
<fieldset style="display:inline-block;"> <legend>Progresslegend> progress:<progress value="0.3">progress><br> progress(无value): <progress>progress><br> value溢出: <progress max="100" value="120">progress>fieldset><fieldset style="display:inline-block;"> <legend>Meterlegend> 普通进度:<meter value="0.2">meter><br> value小于low:<meter value="10" max="60" min="0" optimum="26" low="20" high="30">meter><br> value大于high:<meter value="55" max="60" min="0" optimum="15" low="20" high="30">meter><br> value居中<meter value="25" max="60" min="0" optimum="26" low="20" high="30">meter>fieldset>
表单是前端常用的组件,布局必不可少,一个美观、简介的布局尤为重要。一个最小单位的表单输入部件,除了表单元素,还必须考虑标题、错误提示等。对于整个表单还要考虑多个表单输入项的行列排列、对齐。
最基本的HTML表单布局思路:
或包装一个最小的部件,里面包含表单项标题、、提示信息。 <div> <label for="uname">姓名:label> <input type="text" name="uname" required maxlength="20"> <span title="必填">*span> div> 表单分区,对于复杂的表单,用、标题、分段等来分区组织不同类型的内容。 表单布局:借助CSS表格布局、Grid、Flex等工具进行布局。 第三方表单组件:实际项目中都会引入第三方UI组件库,组件库里都会提供更丰富的布局支持。 ©️版权申明:版权所有@安木夕,本文内容仅供学习,欢迎指正、交流,转载请注明出处!原文编辑地址
<div> <label for="uname">姓名:label> <input type="text" name="uname" required maxlength="20"> <span title="必填">*span> div>
©️版权申明:版权所有@安木夕,本文内容仅供学习,欢迎指正、交流,转载请注明出处!原文编辑地址
京公网安备 11010502049817号