HTML标签之表单域,input表单,label标签,下拉表单,textarea文本域标签

表单域

在HTML中,表单域用于收集用户输入的数据。以下是一些常见的HTML表单域元素:

<input>:用于接收用户输入的各种类型的数据,如文本、密码、数字等。
<textarea>:用于多行文本输入。
<select>:用于创建下拉菜单,用户可以从预定义的选项中选择一个。
<button>:用于创建按钮,用户可以点击执行特定的操作。
<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>表单域(了解)</title>
</head>
<body>
    <!-- 
        <form action="url地址" method="提交方式" name="表单域名称"
     -->
     <form action="demo.php" method="post" name="name1">

     </form>
     <!-- 
         1.在我们写表单元素之前,应该有个表单域把他们进行包含
         2.表单域时form标签
      -->
</body>
</html>

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>input表单元素</title>
</head>
<body>
    <form action="xxx.php" method="get">
        <!--
             text  文本框  用户可以在里面输入任何文字
             password  密码框  用户看不见输入的密码
             maxlength  正整数  规定输入字段中的字符的最大长度
         -->
        用户名:<input type="text" name="username" value="请输入用户名" maxlength="6"> <br>
        密码:<input type="password" name="psw"> <br>

        <!-- 
            radio 单选按钮  可以实现多选一
            name  是表单元素的名字  这里性别单选按钮必须有相同的名字name 才可以实现多选一
            checkbox  复选框  可以实现多选
            单选框和复选框可以设置 checked 属性,当页面打开的时候就可以默认选中这个按钮
         -->
         性别:男 <input type="radio" name="sex" value=""><input type="radio" name="sex" value="" checked="checked"> <br>
         爱好:吃饭 <input type="checkbox" name="hobby" value="吃饭" checked="checked"> 睡觉 <input type="checkbox" name="hobby" value="睡觉"> 打豆豆<input type="checkbox" name="hobby" value="打豆豆"><br>

        <!-- 
            1.name和value是每个表单元素都要有的属性值,主要给后台人员使用
            2.name表单元素的名字,要求单选按钮和复选按钮要有相同的name值
         -->

<!-- 
    点击了提交按钮,可以把表单域 form 里面的表单元素里面的值提交给后台服务器
 -->
         <input type="submit" value="免费注册">
<!-- 
    重置按钮可以还原表单元素初始的默认状态
 -->
         <input type="reset"  value="重置"> <br>

         <!-- 普通按钮 button   后期结合 js 搭配使用-->
         <input type="button" value="获取短信验证码"> <br>

         <!-- 文件域  使用场景  上传文件使用的 -->
         上传头像:<input type="file"> <br>
    </form>
</body>
</html>

在这里插入图片描述

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>label标签</title>
</head>
<body>
    <label for="text"> 用户名:</label><input type="text" id="text"><br>
    <input type="radio" id="nan" name="sex"><label for="nan"></label>
    <input type="radio" id="nv" name="sex"><label for="nv"></label>
</body>
</html>

在这里插入图片描述

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>select下拉表单元素</title>
</head>
<body>
    籍贯:
    <select>
        <option>山东</option>
        <option>北京</option>
        <option>长沙</option>
        <option selected=“selected”>重庆</option>
        <option>浙江</option>
    </select>
    <!-- 
        1.<select> 中至少包含一对 <option> 
        2.在 <option> 中定义 selected=“selected” 时,当前项即为默认选中项
     -->
</body>
</html>

在这里插入图片描述

textarea文本域标签

<!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>textarea文本域标签</title>
</head>
<body>
    <form>
        今日反馈:
        <textarea cols="50" rows="7">请写出你的留言反馈</textarea>
    </form>
</body>
</html>

在这里插入图片描述

最后提供一个手电筒查看图片页面

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动态手电筒</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        body {
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            background: url(https://pic2.zhimg.com/v2-4d0f3e43e75bb67646215e259fc2e9ad_r.jpg) no-repeat;
            background-size: cover;
            background-position: center;
        }

        canvas {
            position: fixed;
            left: 0;
            top: 0;
            z-index: 999;
            pointer-events: none;
        }
    </style>
</head>

<body>
    <canvas></canvas>
    <script>
        const canvas = document.querySelector('canvas');
        const ctx = canvas.getContext('2d');

        const position = {
            x: 0,
            y: 0,
            r: 50
        }

        function render() {
            canvas.width = document.documentElement.clientWidth;
            canvas.height = document.documentElement.clientHeight;
            ctx.beginPath();
            ctx.clearRect(0, 0, canvas.width, canvas.height)
            var radial = ctx.createRadialGradient(position.x, position.y, position.r, position.x, position.y, position.r * 3)
            radial.addColorStop(0, 'rgba(255,255,255,0)');
            radial.addColorStop(1, 'rgba(0,0,0,0.9)');
            ctx.fillStyle = radial;
            ctx.fillRect(0, 0, canvas.width, canvas.height);
        }

        function init() {
            canvas.width = document.documentElement.clientWidth;
            canvas.height = document.documentElement.clientHeight;
            ctx.beginPath();
            ctx.clearRect(0, 0, canvas.width, canvas.height)
            var radial = ctx.createRadialGradient(position.x, position.y, position.r, position.x, position.y, position.r * 3)
            radial.addColorStop(1, 'rgba(0,0,0,0.9)');
            ctx.fillStyle = radial;
            ctx.fillRect(0, 0, canvas.width, canvas.height);
        }

        document.onmousemove = e => {
            position.x = e.clientX;
            position.y = e.clientY;
            render();
        }
        window.onload = function () {
            init()
        }

    </script>
</body>

</html>

在这里插入图片描述

云下文字雨

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Text Rain Animation</title>

  <link rel="stylesheet" href="./css/stylecloud.css">
</head>
<body>
  <div class="container">
    <div class="cloud">
<!--      <div class="text">暴富</div>
      <div class="text">¥¥</div> -->
      <!-- <div class="text">c</div> -->
      <!-- 雨滴将会在这里出现 -->
    </div>
  </div>

<script src="./js/cloudmain.js"></script>
</body>
</html>

js代码

// 生成字母和数字数组
function generateText() {
  const letters = [];
  const numbers = [];

  const a = "a".charCodeAt(0);

  for (let i = 0; i < 26; i++) {
    // letters.push(String.fromCharCode(a + i));
	letters.push("我想要");
    
    if (i < 9) {
    //   numbers.push(i + 1);
	numbers.push("暴富!!!");
    }
	
  };

  return [...letters, ...numbers];
};

// 从生成的数组中随机取出一个字符
function randomText() {
  const texts = generateText();
  const text = texts[Math.floor(Math.random() * texts.length)];
  
  return text;
};

function rainEffect() {
  const cloudEle = document.querySelector(".cloud");
  const textEle = document.createElement("div");

  textEle.innerText = randomText();
  textEle.classList.add("text");

  const left = Math.floor(Math.random() * 310);
  const size = Math.random() * 1.5;
  const duration = Math.random();
  const styleSheets = {
    left: `${left}px`,
    fontSize: `${0.5 + size}em`,
    animationDuration: `${1 + duration}s`,
  };
  Object.assign(textEle.style, styleSheets);

  cloudEle.appendChild(textEle);
  setTimeout(() => {
    cloudEle.removeChild(textEle);
  }, 2000);
};

// 每隔20ms创建一个雨滴元素 在这更改创建文字的产生数
setInterval(() => rainEffect(), 100);

css代码

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

:root {
 --body-color: #181c1f;
/* --body-color:gold */;
  --primary-color: #ffffff;
/*  --primary-color:#58f2ff */;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background-color: var(--body-color);
}

.container {
  width: 100%;
  height: 400px;
  display: flex;
  justify-content: center;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  /* 添加一个从下往上线性渐变的镜像效果,增加视觉层次感 */
  -webkit-box-reflect: below 1px linear-gradient(transparent, transparent, transparent, transparent, #0005);
}

.cloud {
  position: relative;
  top: 50px;
  z-index: 100;

  /* 横向云朵 */
  width: 320px;
  height: 100px;
  background-color: var(--primary-color);
  border-radius: 100px;

  /* drop-shadow函数将阴影效果应用于投影图像 */
  filter: drop-shadow(0 0 30px var(--primary-color));
}
.cloud::before {
  content: "";
  /* 左侧小云朵 */
  width: 110px;
  height: 110px;
  background-color: var(--primary-color);
  border-radius: 50%;
  position: absolute;
  top: -50px;
  left: 40px;

  /* 右侧大云朵 */
  box-shadow: 90px 0 0 30px var(--primary-color);
}

.cloud .text {
  position: absolute;
  top: 40px;
  height: 20px;
  line-height: 20px;

  text-transform: uppercase;
  color: var(--primary-color);
  /* 为文字添加阴影,看上去发光,增加视觉效果 */
/*  text-shadow: 0 0 5px var(--primary-color), 0 0 15px var(--primary-color), 0 0 30px var(--primary-color) ;*/
text-shadow: 0 0 5px var(--primary-color), 0 0 10px var(--primary-color), 0 0 15px var(--primary-color)
  transform-origin: bottom;
  animation: animate 2s linear forwards;
}

@keyframes animate {
  0% {
    transform: translateX(0);
  }

  70% {
    transform: translateY(290px);
  }

  100% {
    transform: translateY(290px);
  }
}

在这里插入图片描述

注意上述的两个案例是建立在Css和js都学了的基础上构建的。