jquery1.12.4 $('span').show() , 变为 display: block; ?

jquery1.12.4: $('span').show() , 变为 display: block; ? span标签不是为行内元素吗?调用 show() 方法不是应该为 display: inline 吗?

阅读 3k
3 个回答

对于这种疑问,最好的解决办法就是去看看jquery源码是怎么写的,然后debug看看代码是怎么跑的,至于是不是display:inline就一目了然了,妈妈再也不用担心我的jquery了

clipboard.png

clipboard.png

新手上路,请多包涵

jquery的show()函数就是将标签设置属性display:block;不管是行内元素还是块级元素都可以设置display:block;使其具有块级元素的特性

show 和 hide 一个是把元素的 display 设置为 block , 一个是改为 none 。show 函数将 span 标签的 display 改为 block 是最优的方法。因为很多开发者会主动将 span 的 display 属性设置为 block 并增加其他块级元素的属性,若 show 函数将 span 标签的 display 属性改为 inline 后会使开发者增加的块级元素才具有的属性失效,导致显示错误。
假若开发者没有更改 span 标签的 display 属性,show 方法即便将 span 标签的 display 属性改为 block ,页面显示效果也不会有任何改变。 所以 jQuery 的 show 方法选择将所有标签的 display 属性都改成block
是比较好的想法,否则还需要根据标签类型判断其 display 的默认值,损失性能。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏