博客列表 >第三课:在编写简单的表单的过程上体验emmet

第三课:在编写简单的表单的过程上体验emmet

屈世明
屈世明原创
2023年03月13日 23:38:02510浏览

今天主要学习的是emmet的使用和简单表单的制作,下课后主要思考点是,如何用emmet快速来写出一个表单代码来,成品效果如下:

表单成品

基本代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>用户注册</title>
  8. </head>
  9. <body>
  10. <!-- action属性:处理脚本 method:提交方式, -->
  11. <form action="register.php" method="post">
  12. <!-- 表单控件分组 -->
  13. <fieldset style="display: grid; grid-gap: 1em">
  14. <legend>用户注册</legend>
  15. <br />
  16. <div class="uname">
  17. <label for="uname">用户名:</label>
  18. <input
  19. id="uname"
  20. type="text"
  21. name="uname"
  22. placeholder="用户名不得含有特殊字符,总长度不少于6位"
  23. autofocus
  24. required
  25. />
  26. </div>
  27. <div class="psw">
  28. <label for="psw">密码:</label>
  29. <input
  30. id="psw"
  31. type="password"
  32. name="psw"
  33. placeholder="密码不少于6位,不得包括特殊字符"
  34. required
  35. />
  36. </div>
  37. <div class="email">
  38. <label for="myEmail">邮箱:</label>
  39. <input
  40. type="email"
  41. name="myEmail"
  42. id="myEmail"
  43. placeholder="请输入正确的邮箱"
  44. />
  45. </div>
  46. <div class="birthday">
  47. <label for="birthday">生日:</label>
  48. <input
  49. id="birthday"
  50. value="2022-01-01"
  51. min="2020-01-01"
  52. type="date"
  53. />
  54. </div>
  55. <div class="sex">
  56. <label for="male3">性别</label>
  57. <input type="radio" name="sex" id="male" value="male" /><label for="male"></label>
  58. <input type="radio" name="sex" id="famale" value="famale" /><label for="famale"></label>
  59. <input type="radio" name="sex" id="secret" value="secret" checked /><label for="secret">保密</label>
  60. </div>
  61. <div class="hobby">
  62. <label for="">爱好:</label>
  63. <input type="checkbox" name="hobby[]" value="yuwen" id="yuwen" /><label for="yuwen">语文</label>
  64. <input type="checkbox" name="hobby[]" value="shuxue" id="shuxue" /><label for="shuxue">数学</label>
  65. <input type="checkbox" name="hobby[]" value="yingyu" id="yingyu" /><label for="yingyu">英语</label>
  66. </div>
  67. <div class="edu">
  68. <label for="">学历:</label>
  69. <!-- 下拉列表,从一组预置的值选择一个或多个值 -->
  70. <!-- 变量的名与值不在同个元素上,name设置以select上,value设置在option上 -->
  71. <select name="edu" id="">
  72. <option value="" selected disabled>请选择</option>
  73. <option value="1">中学</option>
  74. <option value="2">高中</option>
  75. <option value="3">大学</option>
  76. </select>
  77. </div>
  78. <button style="width:100px">提交</button>
  79. </fieldset>
  80. </form>
  81. </body>
  82. </html>

除了这些基本代码,我关注的是如何才能写的更快,更对,比如在对sex这一功能的代码上,最终代码要求如下:

  1. <div class="sex">
  2. <label for="male3">性别</label>
  3. <input type="radio" name="sex" id="male" value="male" /><label for="male"></label>
  4. <input type="radio" name="sex" id="famale" value="famale" /><label for="famale"></label>
  5. <input type="radio" name="sex" id="secret" value="secret" checked /><label for="secret">保密</label>
  6. </div>

三种Emmet写法比较:

1.一步到位:直接输入下面的代码

  1. .sex>label+(inp[type="radio"][name="sex"][value=""][id=""]+label{item})*3

生成的代码没有问题,但我生成的代码是一长长的行,导致后面的编辑特别困难,所以,放弃.

2.分成两批,第一队先生成div和label,第二步用input:radio+label生成单独的radio项,之后通过复制行或多重选择操作,相应代码和快捷键如下:

  1. .sex>label
  2. input:radio+label{item}

快速复制行:shift+alt+上/下
多重选择,用alt+单击
整体感觉比上一个好很多,但还是觉得乱.

3.分成三批,第一层,先div,其次再label,最后再单独两次分别生成input和label,相应代码如下:

  1. .sex
  2. label
  3. inp
  4. radio{男}

最后相比较,还是最后一个看上去步骤多,但写出来的代码既清楚,手写的代码量也最少.

有些时候也许最简单的反而更快.

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议