span标签和a标签有什么区别?哪些情况下用span,我写了4年的html代码没有用span标签为什么还是能做出网页来
1). 他们都是“行内元素”(inline),即相对于div等的“块元素”,他们是可以平静地存在于一段文字内部的,不需要换行。div默认在上下都是会换行的,把自己独立成一个矩形块。
2). a一般用于超链接元素,即要有href属性,例如
href="http://lvwenhan.com"
href="mailto:xxx@gmail.com"
3). span是常用的行内元素容器,一般可用于定义一行内的几个字有特殊的颜色、大小、字体等。
最明显的区别:<div>
<h2>
<p>
会换行,并且<h2>
<p>
会有边距,行高等属性,而<span>
没有换行也没有边距也没有样式,同样用来添加一段不需要额外属性,样式的对象,文字啊 图片啊 链接啊之类的
<div>一段文字,<span class="color_red">颜色</span>不同</div>
至于<a>
,很明显是用来链接(一切的基础),所以才会是<a>
不是<l>
(link)
5 回答1.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答858 阅读✓ 已解决
从 2 个角度讲 a 和 span 的区别:
1.语义&用途:
(1)
<a>
标签的本义是锚点,通常用来表示链接,链接到(1.1)互联网上任意一个可以被访问的位置(网页、供下载的文件等)
(1.2) 也可能是当前网页中的某个位置
(1.3) 另外还可以用来执行 JavaScript
可以看出来
<a>
标签的存在和各种 行为 密不可分,因此它最广泛的用途就是做链接和按钮。(2)
<span>
标签本身没有特别的语义,通常用来给文本中的片段添加样式或属性举个例子,非最佳实践:
<p>光的三原色是<span class="red" style="color:red;">红</span>、<span class="green">绿</span>、<span class="blue" style="color:blue;">蓝</span>。</p>
2.事件响应:
(1)
<a>
能够响应键盘的 Tab 和 Enter 按键,可以设置 tabindex 属性(1.1)按 Tab 你可以把焦点移动到这个链接或按钮上,同时触发 onfocus 事件
(1.2)按 Enter 相当于鼠标点击,触发 onclick 事件,页面该跳转的跳转,表单该提交的提交
可以看出来,这也是
<a>
标签通常被用来做链接、按钮的重要原因(2)以上两个键盘事件,
<span>
默认都不支持。在一些比较“聪明”、“宽容”的浏览器里面,<span>
标签也可以设置 tabindex 属性,设置之后也可以响应 Tab 按键,但是不会响应 Enter 事件。演示。所以,尽管用<span>
完全可以做出和<a>
一样的视觉效果,但是用<span>
做按钮绝对不是最佳选择。a 和 span 的共同点主要在样式上:都不是块级元素,都可以设置 :hover, :active, :focus 这些伪类的样式。
欢迎补充。