【Web前端HTML+CSS——表单知识点及相关案例】

表单元素

一系列元素,主要用于收集用户数据

input元素

输入框

  • type元素:输入框的类型

type:text,普通文本输入框
type:password,密码框
type:date,日期选择框,兼容性问题
type:search,搜索框,兼容性问题
type:number,数字输入框
type:checkbox,多选框
type:radio,单选框
type:file,选择文件

  • value属性:输入框的值;
  • placeholder属性:显示提示的文本,文本框没有内容时显示

input元素可以制作按钮

type取值为:submit button reset

select元素

下拉列表选择框

通常和option配合使用

textarea元素

文本域,多行文本框(例如:简介)

按钮元素

button

type属性:reset,submit,button,默认值:submit

表单状态(可替换元素不能完全控制)

readonly属性:布偶属性,是否只读,不会改变表单显示样式、
disabled属性:布偶属性,是否禁用,会改变表单样式

配合表单元素的其他元素

label

普通元素,通常配合单选和多选框使用

  • 显示关联
    可以通过for属性,让label元素关联某一个表单元素,for属性书写表单元素id的值
  • 隐式关联
    label套在最外层

datalist(存在兼容性问题,了解即可)

通常与普通文本框连用,例如搜索时弹出来的框框,默认情况不显示,其他情况都可以进行修改,注意与搜索框不同,不能混淆,这个属性很少用,他有局限性。

form元素

通常情况下,会将整个表单元素,放置form元素的内部,作用是当提交表单时,会将form元素内部的表单内容以合适的方式提交到服务器。

form元素对于开发静态页面,意义不大,后期学服务器配合

fieldset元素

表单分组

表单元素代码练习:

表单元素代码练习1——input元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 输入框 -->
    <p>
        <input type="text" placeholder="请输入账号">
    </p>
    <!-- 密码框 -->
    <p>
        <input type="password" placeholder="请输入密码">
    </p>
    <!-- 日期选择框 -->
    <p>
        <input type="date" name="" id="">
    </p>
    <!-- 搜索框 -->
    <p>
        <input type="search" name="" id="">
    </p>
    <!-- 滑块 -->
    <p>
        <input type="range" min="0" max="5">
    </p>
    <!-- 颜色选择框 -->
    <p>
        <input type="color">
    </p>
    <!-- 数字输入框 -->
    <p>
        <input type="number" min="0" max="10" step="2">
    </p>
    <!-- 多选框 -->
    <p>
        爱好:
        <input name="loves" type="checkbox">
        舞蹈
        <input name="loves" type="checkbox">
        音乐
        <input name="loves" type="checkbox">
        画画
        <input name="loves" type="checkbox">
        书法
    </p>
    <!-- 单选框 -->
    <p> 
        性别:
        <input name="gender" type="radio"><input name="gender" type="radio"></p>
    <!-- 选择文件 -->
    <p>
        <input type="file">
    </p>
    <!-- 按钮 -->
    <p>
        <input type="reset">
    </p>
    <p>
        <input type="button">
    </p>
    <p>
        <input type="submit">
    </p>
</body>
</html>

表单元素代码练习2——button datalist fieldset

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>
        <button type="button">
            这是一个按钮
        </button>
    </p>
</body>
</html>

表单元素代码练习3——datalist


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    请输入你想搜索的浏览器
    <p>
        <input list="userAgrent" type="text">
    </p>

    <datalist id="userAgrent">
        <option value="Chrome">谷歌浏览器</option>
        <option value="IE">IE浏览器</option>
        <option value="Operate">欧鹏浏览器</option>
        <option value="Apple">苹果浏览器</option>
        <option value="Fire">搜狐浏览器</option>
    </datalist>  
</body>
</html>

表单元素代码练习4——fieldset

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <h1>修改用户信息:</h1>
        <fieldset>
            <legend>账号密码</legend>
            <p>
                用户账号:
                <input type="text">
            </p>
            <p>
                用户密码:
                <input type="password">
            </p>
            <p>
                用户姓名:
                <input type="text">
            </p>
        </fieldset>
        <p>
            用户账号:
            <input type="text">
        </p>
        <p>
            用户密码:
            <input type="password">
        </p>
        <p>
            用户姓名:
            <input type="text">
        </p>
        <p>
            用户城市:
            <select name="" id="">
                <option value="">成都</option>
                <option value="">重庆</option>
                <option value="">江西</option>
                <option value="">厦门</option>
                <option value="">云南</option>
                <option value="">北京</option>
                <option value="">天津</option>
                <option value="">上海</option>
            </select>
        </p>
        <p>
            <button>
                提交修改
            </button>
        </p>


    </div>
</body>
</html>

表单元素代码练习5——select元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>
        <select name="" id="">
            <option>成都</option>
            <option>北京</option>
            <option>云南</option>
            <option>重庆</option>
            <option>长沙</option>
            <option>三亚</option>
            <option>广西</option>
        </select>
    </p>

    <p>
        请选择你最想下载的软件
        <select name="" id="">
            <optgroup label="游戏">
                <option>英雄联盟</option>
                <option>魔兽世界</option>
                <option>和平精英</option>
                <option>王者荣耀</option>

            </optgroup>
            <optgroup label="娱乐">
                <option>QQ</option>
                <option>微信</option>
                <option>小红书</option>
                <option>Facebook</option>
                <option>抖音</option>

            </optgroup>
        </select>
    </p>

    <p>
        请选择你想要下载的软件:
        <select multiple>
            <optgroup label="游戏">
                <option>英雄联盟</option>
                <option>魔兽世界</option>
                <option>和平精英</option>
                <option>王者荣耀</option>

            </optgroup>
            <optgroup label="娱乐">
                <option>QQ</option>
                <option>微信</option>
                <option>小红书</option>
                <option>Facebook</option>
                <option>抖音</option>

            </optgroup>
        </select>
    </p>
</body>
</html>

表单元素代码练习6——label元素


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>
        请选择性别
        <input id="radMale" name="gender" type="radio">
        <label for="radMale"></label>
        <input id="radWomale" name="gender" type="radio">
        <label for="radWomale"></label>

    </p>
</body>
</html>

美化表单元素

新的伪类

  1. focus

元素聚焦时的样式

tabindex 和 z-index 都可以应用数字来表示顺序

需要统一样式,就应该覆盖浏览器的默认样式

  1. checked

单选和多选框都是可替换元素,一些样式不可以控制

单选和多选被选中的样式

text-align不是文本居中,而是行盒和行块盒居中

常见用法

  1. 重置表单元素的样式

  2. 设置多行文本框textarea是否允许调整尺寸

resize属性:

  • both:默认值,两个方向都可以调整尺寸
  • none:不能调整尺寸
  • horizoncal:水平方向可以调整尺寸
  • vertical:垂直方向可以调整尺寸
  1. 文本框边缘到内容的距离

两种方式:
用padding左右都可以设置;用text-indent只可以设置首行缩进

  1. 控制单选和多选的样式

美化表单练习代码1:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
</head>
<body>
    <a tabindex="3" href="">Lorem.</a>
    <p>
        <input tabindex="2" type="text">
    </p>
    <button tabindex="1" type="button">
        提交
    </button>
</html>

美化表单练习代码2:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        input:checked+label{
            background-color:darksalmon;
        }
    </style>
</head>
<body>
    <p>
        <input id="radMale" name="gender" type="radio">
        <label for="radMale"></label>
        <input id="radWomale" name="gender" type="radio">
        <label for="radWomale"></label>
    </p>
</body>
</html>

美化表单练习代码3:(CSS代码没包含)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/reset.css">
    <link rel="stylesheet" href="./css/myform.css">
</head>
<body>
    <select name="" id="">
        <option value="">lorem</option>
        <option value="">ipsum.</option>
        <option value="">lorem</option>
        <option value="">hjav</option>
        <option value="">dnwkd</option>
        <option value="">lekwd</option>
        <option value="">ljwd</option>
        <option value="">lodwdm</option>
        <option value="">hjhdda</option>
    </select>
    <p>
        <input type="text">
    </p>
    <p>
        <button type="button">提交</button>
    </p>
    <p>
        <textarea name="" id="" cols="30" rows="10"></textarea>
    </p>
</body>
</html>

美化表单练习代码4:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        input,textarea{
            text-indent: 1em;
        }
    </style>
</head>
<body>
    <input type="text">
    <textarea name="" id="" cols="30" rows="10"></textarea>
</body>
</html>

美化表单练习代码5:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>漂亮的单选框</title>
    <style>
        .radio{
            position: relative;
            /* background-color: #fff; */
            outline: 2px solid #000;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            cursor: pointer;
        }
        .radio.checked{
            background: #fff;
        }
        .radio.checked::after{
            display: block;
            background: #008c8c;
            position: absolute;
            content:"" ;
            width: 8px;
            height: 8px;
            outline: solid 1px #000;
            margin-top: 6px;
            margin-left: 6px;
            border-radius: 50%;
        }

    </style>
</head>
<body>
    <div class="radio checked">


    </div>
</body>
</html>

美化表单练习代码6:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=p, initial-scale=1.0">
    <title>Document</title>
    <style>
        .radio-item .radio{
           display: inline-block;
            background-color: #fff;
            border: solid 1px;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            cursor: pointer;
        }

        .radio-item input:checked+.radio::after{
            display: inline-block;
            background: #008c8c;
            position: absolute;
            content:"" ;
            width: 8px;
            height: 8px;
            outline: solid 1px #000;
            margin-top: 6px;
            margin-left: 6px;
            border-radius: 50%;

        }

    </style>
</head>
<body>
    <p>
        请选择性别:
        <label class="radio-item">
            <input name="gender" type="radio">
            <span class="radio"></span>
            <span></span>
        </label>
        <label class="radio-item">
            <input name="gender" type="radio">
            <span class="radio"></span>
            <span></span>
        </label>
    </p>
</body>
</html>

进阶表单——完整案例(登录页面)

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./index.css">
</head>
<body>
    <form  class="contain">
        <h1>用户注册</h1>
        <div class="form-item">
            <input class="txt" type="text" placeholder="请输入账号" maxlength="11">
        </div>
        <div class="clearfix form-item">
            <input class="txt left captcha" type="text" placeholder="请输入验证码">
            <button class="right specific" type="button">发送验证码</button>
        </div>
        <div class="form-item">
            <input class="txt" type="password" placeholder="请输入密码">
        </div>
        <div class="form-item">
            <input class="txt" type="password" placeholder="请再次输入密码">
        </div>

        <div class="form-item">
            <select class="txt" multiple>
                <option value="">爱好1</option>
                <option value="">爱好2</option>
                <option value="">爱好3</option>
                <option value="">爱好4</option>
                <option value="">爱好5</option>
                <option value="">爱好6</option>
                <option value="">爱好7</option>
                <option value="">爱好8</option>
                <option value="">爱好9</option>
                <option value="">爱好10</option>
            </select>
        </div>
        
        <div class="clearfix form-item">
            <div class="title left">性别</div>
            <div class="left">
                <label>
                    <input type="radio" name="gender">
                    <span></span>
                </label>
                <label>
                    <input type="radio" name="gender">
                    <span></span>
                </label>
            </div>
            
        </div>
        <div class="form-item">
            <textarea class="txt" cols="30" rows="10" placeholder="请输入个人简历"></textarea>
        </div>
        <div class="form-item">
            <label>
                <input type="checkbox" checked>
                <span class="policy">同意本平台的一切相关策略</span>
            </label>   
        </div>
        <div class="form-item">
            <button disabled type="submit"><a href="../新空间/pageMaking.html">立即注册</a></button>
            <button type="reset">重置表单</button>
        </div>
    </form>
</body>
</html>

*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

html{
    background: #081620;
}

.contain{
    background: #fff;
    width: 400px;
    margin: 0 auto;
    margin-top: 30px;
    padding: 20px;
    border-radius: 15px;
}

.contain h1{
    /* outline: 1px solid #000; */
    text-align: center;
    margin-bottom: 20px;
}

.form-item{
    margin-bottom: 10px;
}

.txt{
    outline: none;
    border: 1px solid #ccc;
    width: 100%;
    font-size: 14px;
    padding: 0 10px;
    border-radius: 10px;
    height: 40px;
}

.txt:focus{
    border-color: #5f8be8;
}

/* 单独处理文本框的样式 */
select.txt{
    height: 100px;
    padding: 10px;

}

textarea.txt{
    resize: none;
    height: 100px;
    padding: 10px;
}

/* 按钮的统一样式 */
button{
    width: 100px;
    height: 40px;
    background: #5f8be8;
    font-size: 14px;
    border: none;
    outline: none;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
}

/* 按钮点击的样式 */
button:hover{
    background: #2864e6;
}

/* 禁止按钮的样式 */
/* button:disabled{
    background: #a8bdeb;
    cursor: not-allowed;
} */

.left{
    float:left;
}

.right{
    float: right;
}
/* 清除浮动 */
.clearfix::after{
    content: ;
    display: block;
    clear: both;
}
/* 特殊情况的处理 */
.captcha{
    width: 210px;
}

.specific{
    margin-right: 20px;
}

.title{
    margin-right: 8px;
}

.policy{
    font-size: 12px;
}

.policy span{
    vertical-align: 2px;
}

/* 单选框和多选框的选中状态 */
label{
    color: rgb(82, 80, 80);
}

label span{
    cursor: pointer;
}

label input:checked~span{
    color: rgb(20, 19, 19);
}
.txt::placeholder{
    color: rgb(92, 88, 88);
}

.txt:focus::placeholder{
    color:#333

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值