jquery1.12.4: $('span').show()
, 变为 display: block;
? span标签不是为行内元素吗?调用 show()
方法不是应该为 display: inline
吗?
jquery1.12.4: $('span').show()
, 变为 display: block;
? span标签不是为行内元素吗?调用 show()
方法不是应该为 display: inline
吗?
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 的默认值,损失性能。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
对于这种疑问,最好的解决办法就是去看看jquery源码是怎么写的,然后debug看看代码是怎么跑的,至于是不是display:inline就一目了然了,妈妈再也不用担心我的jquery了