HTML中Div、span、label标签的区别

12 篇文章 0 订阅

div与span

大家在初学div+css布局时,有很多困惑,在div与span的使用过程没觉得有一定的”章法”,觉得两个区别不大,在w3c的关于div和span的定义:div作为分割文档结构自然使它最官方的语义,但是这样的官方语义太让人迷惑,大的结构还
好,但是小的地方到底是用div还是用span仍然让人迷惑。其实恰恰是《Microsoft MSDN Library》
里面的定义让人豁然开朗。

div:指定渲染HTML的容器

span:指定内嵌文本容器

通俗地讲就是如果里面还有其他标签的时候就用div,如果里面只有文本就应该用span

div是一个块级元素,用来为HTML文档内大块的内容提供结构和背景

span是行内元素,在行内定义一个区域(也就是一行内可以被<span>划分好几个区域)

div标签中可以镶嵌span标签,(div可以看做是一个大容器,span是一个小容器,大容器当然可以放下一个小容器啦)


span与label

由于有了以上关于span的说法,那么我们就可以对文本进行span的容器操作了,可以定义css样式什么的,但是label好像也可以?但是两者区别有时什么呢?

label标签主要用于绑定一个表单元素, 当点击label标签的时候, 被绑定的表单元素就会获得输入焦点

span则是对普通的文本的一种容器。

例子:

<div id="divForm">
<div>
<span>Did you visited my blog</span>
<input type="radio" id="radYes" name="visitedblog" checked="checked"/>
<label for="radYes">Yes</label>
<input type="radio" id="radNo" name="visitedblog"/>
<span>
<label for="radNo">NO</label>
(Press the text "Yes" or "No" not the radio)</span>
</div>
<div>
<label accesskey="1" for="textName">Your Name:</label>
<input type="text" id="txtName" value="Press Alt+1"/>
</div>
</div>

运行结果:



有一个问题是:

accesskey这个属性不是设置快捷键的么?可是按键1和alt+1都没有反应,不知道什么情况,很是郁闷,希望高手可以给以解答label标签accesskey的用法。




附:label标签的具体用法:

label标记为标注标记,该标记支持与其他用户交互式控件进行绑定,并代替被绑定控件触发相应的事件,绑定的方法是:将for属性值指定为目的控件(绑定控件)的ID。一般情况下,在使用单选框和复选框时用label绑定比较常见。
Label中两个属性非常有用,一个是for,一个就是accesskey
For属性:
功能:表示Label标签要绑定的HTML元素,你点击这个标签的时候,所绑定的元素将获取焦点
用法:
<label for="inputBox">姓名</label>
<input id="inputBox" type="text">
Accesskey属性:
功能:表示访问label标签所绑定的元素的热键,当您按下热键,所绑定的元素将获取焦点。
用法:<label for="inputBox" accesskey="N">姓名</label>
     <input id="inputBox" type="text">
局限性:accessKey属性所设置的快捷键不能与浏览器的快捷键冲突,否则将优先级或浏览器的快捷键


注释 :
要将 LABEL 绑定到其它的控件,请将 LABEL 元素的 FOR 属性设置为与该控件的 ID 相同。将 LABEL 绑定到控件的 NAME 属性毫无用处。但是,要提交表单,你必须为 LABEL 元素所绑定到的控件指定 NAME。 


有两种方法给所指定的快捷键添加下划线。LABEL 元素的 rich text 支持可以在 ACCESSKEY 属性所指定的快捷键字符两侧加上 U 元素。如果你更愿意使用样式表(CSS)来应用样式,可以将该字符包含在 SPAN 中,并设置样式为“text-decoration: underline”。 


如果用户单击 LABEL,则会先触发 LABEL 上的 onclick 事件,然后触发由 htmlFor 属性所指定的控件上的 onclick 事件。按下 LABEL 设定的快捷键将设置焦点但并不触发 onclick 事件。 


标签不允许嵌套。 


此元素在 Internet Explorer 4.0 及以上版本的 HTML 和脚本中可用。 


此元素是内嵌元素。 


此元素需要关闭标签。 



  • 23
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,以下是HTML表单代码: ```html <form> <div> <span>姓名:</span> <input type="text" name="name"> </div> <div> <span>年龄:</span> <input type="text" name="age"> </div> <div> <span>年级:</span> <select name="grade"> <option value="1">一年级</option> <option value="2">二年级</option> <option value="3">三年级</option> </select> </div> <div> <span>性别:</span> <label> <input type="radio" name="gender" value="male">男 </label> <label> <input type="radio" name="gender" value="female">女 </label> </div> <div> <span>专业:</span> <select name="major"> <option value="cs">计算机科学与技术</option> <option value="ee">电子工程</option> <option value="me">机械工程</option> </select> </div> <div> <span>手机号码:</span> <input type="tel" name="phone"> </div> <button type="submit">确定提交</button> </form> ``` 如果你需要把label标签改成span标签,可以直接使用CSS来控制样式: ```html <style> label { display: none; } span { display: inline-block; min-width: 100px; text-align: right; margin-right: 10px; } </style> <form> <div> <span>姓名:</span> <input type="text" name="name"> </div> <div> <span>年龄:</span> <input type="text" name="age"> </div> <div> <span>年级:</span> <select name="grade"> <option value="1">一年级</option> <option value="2">二年级</option> <option value="3">三年级</option> </select> </div> <div> <span>性别:</span> <span> <input type="radio" name="gender" value="male">男 </span> <span> <input type="radio" name="gender" value="female">女 </span> </div> <div> <span>专业:</span> <select name="major"> <option value="cs">计算机科学与技术</option> <option value="ee">电子工程</option> <option value="me">机械工程</option> </select> </div> <div> <span>手机号码:</span> <input type="tel" name="phone"> </div> <button type="submit">确定提交</button> </form> ``` 希望这可以帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值