任务7——HTMl表单、列表等使用

1.有序列表、无序列表、自定义列表如何使用?写个简单的例子。三者在语义上有什么区别?在哪些情况下使用哪种(重要)? 如何嵌套?

列表,顾名思义,是HTML中表示一组项目的列表,包括:有序列表、无序列表、定义列表等。
eg

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>task-7</title>
</head>

<body>
    <div class="order-list">
        前端基础知识:
    </div>
    <ol>
        <li>html</li>
        <li>css</li>
        <li>Javascript</li>
    </ol>
    <div class="unorder-list">
        我的爱好:
    </div>
    <ul>
        <li>
            编程:
            <ul>
                <li>前端</li>
                <li>后端</li>
                <li>运维</li>
            </ul>
        </li>
        <li>绘画</li>
        <li>篮球</li>
    </ul>
    <div class="definity-list">
        我爱吃的食物:
    </div>
    <dl class="mydl">
        <dt>鱼</dt>
        <dd>各种鱼类,除了刺多的鲤鱼</dd>
        <dt>虾</dt>
        <dd>基围虾,龙虾之类的海虾</dd>
        <dt>蟹</dt>
        <dd>当然是阳澄湖大闸蟹好吃啦</dd>
    </dl>
</body>

</html>

效果图:

列表效果图

简单来说语义区别

  • 有序列表定义一组有顺序要求的列表项目;
  • 无序列表定义一组对顺序没要求的一系列列表项目;
  • 定义列表定义一系列项目,同时定义项目的描述
  • 正是定义列表有了项目描述,所以和无序列表区别就在此。

使用情况

  • 有序列表在列表项目对顺序有要求的时候使用。
  • 无序列表在列表项目对顺序没要求时使用,可以是任何一系列项目。
  • 定义列表在对项目有描述要求时使用。
    列表嵌套
    在需要嵌套列表的列表项目里,即<li>中,再写一个列表即可。
    eg
    <ul>
        <li>
            编程:
            <ul>
                <li>前端</li>
                <li>后端</li>
                <li>运维</li>
            </ul>
        </li>
        <li>绘画</li>
        <li>篮球</li>
    </ul>

效果图

嵌套效果图

2.如何去除列表前面的点或者数字?

在样式里,写上list-style: none或者list-style-type: none即可。
eg

    <style type="text/css" media="screen">
      ol,ul{
        list-style-type: none;
      }
    </style>

效果图

有序列表和无序列表默认样式全无

3.class 和 id 有什么区别?什么时候用 class 什么时候用 id?

选择器名称 描述
class 类选择器,在html中可以多次使用
id ID选择器,一个id只能在html中使用一次
区别 使用区别:每个id仅能使用一次,class可以多次使用;
语义区别:id唯一标识元素,多用于重要元素,权重更大,而class主要是应用常见样式用的比较多
使用 id多使用于主要块级元素,有些独一无二元素也可用id;
class用于要重复使用样式的除id其他块级或行内元素

4.块级元素、行内元素是什么?有什么区别?分别对应哪些常用标签?

名称 描述
块级元素 html中,以新行来开始和结束,即独占一行
行内元素 html中,不占用一行,不以新行开始
区别 1. 块级元素占用一行,行内元素不占用一行;
2. 块级元素margin,padding,width,height都可以设置,而行内元素无法设置width,height,margin只能水平改变,padding都可以改变,但上下方向只对背景起作用,不占用空间

块级元素:

块级元素.png

行内元素:

b, big, i, small, tt
abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var
a, bdo, br, img, map, object, q, script, span, sub, sup
button, label, select, input, textarea

eg

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>task-7</title>
    <style type="text/css" media="screen">
        div,h1,p,ul,ol,table,dl,blockquote,form {
            border: 1px solid red;
        }

        .div2,q,a,span,input,img {
            border: 1px solid green;
        }
    </style>
</head>

<body>
    <h1>h是块级元素</h1>
    <p>
        P是块级元素
    </p>
    <ul>
        <li>无序列表</li>
    </ul>
    <ol>
        <li>有序列表</li>
    </ol>
    <table>
        <tr>
            <th> 表头1</th>
            <th>表头2</th>
        </tr>
        <tr>
            <td>cell1 </td>
            <td>cell2</td>
        </tr>
    </table>
    <a href="#">行内元素</a>
    <br>
    <div class="div1">
        这里是div.
    </div>
    <dl class="dl1">
        <dt>项目</dt>
        <dd>描述</dd>
    </dl>
    <form class="" action="index.html" method="post">
        性别:
        <input type="radio" name="sex" value="male" />男
        <input type="radio" name="sex" value="male" />女
    </form>
    <blockquote>
        引用。
    </blockquote><a href="#">行内元素</a>
    <div class="div2">
        <a href="#">行内元素</a>
        <span>行内元素</span>
        ![女神惠利](http://upload-images.jianshu.io/upload_images/2404178-76f456081933ddf6.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        <q>引用</q>
        <input type="text" name="name" value="2" />
    </div>
</body>

</html>

效果图

效果图

发现的问题

1. 有两个标签有问题

  1. input
  2. img
    当我给行内元素设置width,height时,两者发生了改变;也就是说,input和img不是纯行内元素,经网上资料查询,发现这两者是inline-block元素,有着block和inline共同的特点,如下所示:
            q,a,span,input,img {
            border: 1px solid green;
            width: 70px;
            height: 70px;

inline-block效果图

同理,又进行了相应的margin和padding的设置,发现两者有着block的特性。


2. table表格占用问题
效果图中显示table表格边框未扩及整行,故我在其后方填写了一个行内元素a标签,而行内元素从下行开始,所以可以确定table元素是块级元素。


3. 行内元素padding设置校验

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>a</title>
    <style type="text/css" media="screen">
      a,input {
        border: 1px solid red;
        padding: 40px;
      }
    </style>
  </head>
  <body>
<h1>2222</h1>
    <a href="http://www.baidu.com">a</a>
    <a href="http://www.baidu.com">b</a><br>
    <br>
    <form class="" action="index.html" method="post">
      选择:<input type="radio" name="name" value="1" />男
    </form>
  </body>
</html>

效果图

padding效果图

可以发现:只对背景起作用,而不占用空间。


5. display: block、display: inline、display: inline-block分别有什么作用?

三者都是CSS样式,块级元素和行内元素嵌套关系没有限制。display 属性规定元素应该生成的框的类型。

属性 描述
display: block 使元素显示为块级元素
display: inline 使元素显示为行内元素
display: inline-block 使元素显示为行内块级元素

eg

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>a</title>
    <style type="text/css" media="screen">
      .a1 {
        border: 1px solid red;
        display:block;
      }
      .a2 {
        border: 1px solid red;
        display:inline-block;
        margin: 20px;
        padding: 20px;
      }
      form {
        display:inline;
      }
    </style>
  </head>
  <body>
<h1>2222</h1>
    <a class="a1" href="http://www.baidu.com">a</a>
    <a class="a2" href="http://www.baidu.com">b</a>
    <form class="" action="index.html" method="post">
      选择:<input type="radio" name="name" value="1" />男
    </form>
  </body>
</html>

效果图

display效果图

6. 下面代码是做什么的?抄写一遍下面的代码,注意class和id的使用及命名方式

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style>
    .wrap{
      width: 900px;
      margin: 0 auto;
    }
  
  </style>
</head>
<body>
  <div id="header">
    <div class="wrap">
      <a id="logo" href="#"><img src=""></a>
      <ul class="nav">
        <li><a href="#">导航1</a></li>
        <li><a href="#">导航2</a></li>
        <li><a href="#">导航3</a></li>
      </ul>
    </div>
 </div>
  <div id="content">
    <div class="wrap">
      <div class="aside">侧边栏</div>
      <div class="main">中心区块</div>
    </div>
  </div>
<div id="footer">
  <div class="wrap">这里是 footer</div>
</div>
</body>
</html>

这段html用div将页面分成了若干块区,为了区分主次,在主要块区(头部,内容区,脚部)用id唯一标示,使人一目了然。同时,用class=wrap对内部结构进行统一的样式设置,margin外边距根据浏览器窗口自动调整,上下外边距为0,内部区块宽度统一为900px。


7. 如何理解 HTML CSS 语义化? 在平时写代码的过程中要注意哪些细节

  1. 语义化指对代码结构要严谨规范,标签命名要有有意义;
    eg
    内容——content
    导航——nav
    侧边栏——sidebar
    这些命名就会使人很容易读懂代码。
  2. 命名尽量统一风格,命名中包含2个以上单词用“-”链接,并且大小写要统一风格。
    eg
    order-list不要写成:orderlist、order_list123、OrderList等。

8. form表单有什么作用?有哪些常用的input 标签,分别有什么作用?

<form> 标签用于为用户输入创建 HTML 表单,并向服务器传输数据。

属性 描述
action URL 规定当提交表单时向何处发送表单数据
method get
post
规定用于发送 form-data 的 HTTP 方法
name form_name 规定表单的名称
target _blank
_parent
_top
_self
framename
规定在何处打开 action URL

常见input标签:

  • 文本域:
    <form name="textbox" action="http://baidu.com" method="get" >
      名:<input type="text" name="first-name" placeholder="名称" maxlength="20"><br>
      姓:<input type="text" name="last-name" placeholder="姓" maxlength="20">
    </form>
文本域
  • 密码域:
    <form name="textbox" action="http://baidu.com" method="get" >
      账号:<input type="text" name="count" placeholder="名称" maxlength="20"><br>
      密码:<input type="password" name="password" placeholder="密码" maxlength="20">
    </form>
type: password
  • 单选按钮:
    <form name="textbox" action="http://baidu.com" method="get" >
      男:<input type="radio" name="sex" value="male" checked/ >
      女:<input type="radio" name="sex" value="female">
    </form>

name一样,方便分组,单选。


type: radio
  • 复选框:
    <form name="textbox" action="http://baidu.com" method="get" >
      爱好:<input type="checkbox" name="hobby" value="coding" checked/ >编程
      女:<input type="checkbox" name="hobby" value="draw">绘画
      女:<input type="checkbox" name="hobby" value="baskerball">篮球
    </form>

name一样,方便分组,语义化。


type: checkbox
  • 多行文本域:
    <textarea name="comment" rows="10" cols="30" maxlength="500">
this  is   textarea.
    </textarea>

不用在form元素里,比较特殊。


textarea
  • 提交按钮:
    <form name="dase" action="index.html" method="post">
      <input type="submit" name="submit-button" value="提交">
    </form>
type="submit"

无论提交按钮放在哪里,都可以把form所有数据打包发送给后端服务器。

  • 隐藏域:
  <form name="dase" action="index.html" method="post">
      <input type="hidden" name="hidden-part" value="123456">
    </form>
type="hidden"

隐藏域,用户无法看到效果,但是表单存在,能够向后台发送hidden的数据,可用于安全校验,防止伪造表单数据。

  • 下拉列表:
      <select class="select1" name="pets">
        <option value:"cat">猫</option>
        <option value="dog" selected="selected">狗</option>
        <option value="fish">金鱼</option>
      </select>
      <!--selected="selected"可以换成selected,一样效果-->
select下拉列表
  • 上传文件按钮:
<form name="dase" action="index.html" method="post">
        <input type="file" name="file">
    </form>
type="file"
  • 重置按钮:
    <form name="dase" action="index.html" method="post">
        <input type="reset" name="reset-button">
    </form>
type="reset"
  • 创建自定义按钮:
    <form name="dase" action="index.html" method="post">
        <input type="button" name="mybut" value="amazing" onclick="msg()">
    </form>
type="button"
  • 图片按钮:
    <form name="dase" action="index.html" method="post">
        <input type="image" src="http://v1.freep.cn/3tb_1607121237568yod512293.jpg" alt="我的图片" />
    </form>

type="image"

可见type="image"的标签对图片大小格式有一定要求,在提交的时候,浏览器将以像素为单位,将鼠标相对于图像边界的偏移量发送到服务器,其中包括从图像左边界开始的水平偏移量,以及从图像上边界开始的垂直偏移量。

总结:大体上就是这些表单功能,需要注意的就是name和value的使用情况。

参考HTML <input> 标签的 type 属性


9. post 和 get 方式的区别?

get和post是两种不同的http方法,向后端发送form-data。
** 区别**:

  1. 使用:由于URL长度限制,get用于简短数据的获取,而当数据传输量较大时,用post方法。
  2. 安全性:get方法的URL和后台数据会显示所有信息,而其中涉及隐私安全部分也可见;post所有操作用户都是不可见的。
  3. 编码方式不同:Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
  4. get不会更改数据,只是获取数据;而经post处理的数据到后端会发生改变。

参考:
GET和POST区别详解
GET vs POST


10. 在input里,name 有什么作用?

name定义 input 元素的名称。作为可与服务器交互数据的HTML元素的服务器端的标示,或者在客户端通过 JavaScript 引用表单数据。由于后台传输数据值时要借用name,所以name是必需属性。


11. <button>提交</button>、<a class="btn" href="#">提交</a>、<input type="submit" value="提交">三者有什么区别?

  • <button>提交</button>是一个html标签,有众多属性,其中type属性可以设置属性值buttonsubmit,设置不同属性值其功能也不相同;可以包含丰富的内容,而input type="button"则不含有内容。
  • `<a class="btn" href="#">提交</a>是一个链接,点击会显示本页,不提交数据,只是指定链接位置。
  • <input type="submit" value="提交">是一个form表单按钮,用于提交表单数据,而<button>提交</button>提交其内容

参考:HTML <button> 标签


12. radio 如何 分组?

只要radio中的name属性设置相同,即可分组。


13. placeholder 属性有什么作用?

用于在表单文本框中显示预设提示信息;该提示信息在文本框没聚焦且文本内容为空时显示,而输入文本内容后不显示。


14. type=hidden隐藏域有什么作用? 举例说明

<body>
    <form name="data" action="index.html" method="get">
        账号:<input type="text" name="count">
        <br>密码:
        <input type="password" name="passwords">
        <input type="hidden" name="name" value="123">
    </form>
</body>
hidden

hidden后台提交

如图,用户无法看见hidden的信息,当我点击“提交”时,浏览器会想后台传送hidden的数据,这一原理用在暂存数据和安全校验。只有当服务器接收到的hidden和预存的信息一致时,才能成功提交表单数据,与生俱来的安全性。


本教程版权归饥人谷_阿群和饥人谷所有,转载须说明来源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,639评论 18 139
  • 在上一个章节,我们已经创建了一个基础的Blog程序。现在我们将使用一些Dajngo高级功能,去实现一个完整的blo...
    金金刚狼阅读 3,579评论 1 12
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 3,229评论 1 41
  • 语义化、行内元素块级元素、POST 和 GET 的区别 Version two 熟悉列表的使用场景和用法 理解HT...
    吴晗君阅读 821评论 0 0
  • “那个是你们一楼班长吗?”二楼的朋友可是一直想看看我们班长的俊容呢,额好吧也并不是太俊。“嗯,就是那个红色...
    笔落枫阅读 195评论 1 1