今天面试被问到html中的b和strong标签有什么区别,傻眼了,求高人指点
早年HTML是直接用标签和属性来表达样式的,<b>
所代表的bold粗体就是一个例子,此外还有<i>
也就是italic斜体,当然了这个方式现在的浏览器仍然也还兼容
后来网站网页越做越复杂,为了让页面结构更加清晰,所以引入了层叠样式表CSS让内容和表现分离开来,这时候<strong>
和<em>
等不直接表示样式,仅表达结构的标签应运而生,开发者可以根据自己的需要通过CSS来定义网页的重点应该怎样表达,而不仅仅是加粗或者斜体。用户端也可以自己来定义样式表,为重点内容配置一个更加显眼的突出方式而不仅仅是加粗
另外还有一个很重要的点是可读性(可访问性)的优势,对于某些视觉障碍的用户来说,单纯的表达加粗对于他们来说是不够的,因为他们甚至有可能不理解这个概念(全盲的人),但是标识为重点,为视障人士设计的浏览器/阅读器等就可以有他们正确的方式来提醒用户这块区域是重点内容
总而言之,<strong>
是个语义上的概念,表达的是强调,浏览器默认表现为加粗。<b>
则只是加粗。
PS: 一度认为是下一代HTML的XHTML其实主张删除所有的这种表达样式的标签,包括不限于<b>
, <i>
, <color>
, <center>
等等。不过后来HTML5成为了正式标准,XHTML的一些主张被合并进入HTML5,但是不包括这条
两者虽然在网页中显示效果一样,但实际目的不同。
<b>
这个标签对应bold
,即文本加粗,其目的仅仅是为了加粗显示文本,是一种样式/风格需求;<strong>
这个标签意思是加强,表示该文本比较重要,提醒读者/终端注意。为了达到这个目的,浏览器等终端将其加粗显示;总结:
<b>
为了加粗而加粗,<strong>
为了标明重点而加粗。