display:none和visibility:hidden的区别

1.隐藏元素后是否占据空间
display:none 不占据空间
visibility:hidden 占据空间

2.是否产生回流
display:none 产生回流
visibility:hidden 不产生回流

3.是否有继承
visibility具有继承性,给父元素设置visibility:hidden;子元素也会继承这个属性。但是如果重新给子元素设置visibility: visible,则子元素又会显示出来。这个和display: none有着质的区别

示例:

<style>
  .dis{
    display: none;
  } 

  .vis{
    visibility: hidden;
  }    
</style>

<div class="dis">
  <ul>
    <li>dis元素1</li>
    <li style="display: block;">dis元素2</li>
    <li>dis元素3</li>
  </ul>
</div>

<div class="vis">
  <ul>
    <li>vis元素1</li>
    <li style="visibility: visible;">vis元素2</li>
    <li>vis元素3</li>
  </ul>
</div>

效果:

vis元素2

4.是否影响计数器
visibility: hidden不会影响计数器的计数,visibility: hidden虽然让一个元素不见了,但是其计数器仍在运行。这和display: none完全不一样

<div>
  <strong>给元素设置visibility:hidden样式</strong>
  <ol>
      <li>元素1</li>
      <li style="visibility:hidden;">元素2</li>
      <li>元素3</li>
      <li>元素4</li>
  </ol>
</div>
<div>
  <strong>给元素设置display:none样式</strong>
  <ol>
      <li>元素1</li>
      <li style="display:none;">元素2</li>
      <li>元素3</li>
      <li>元素4</li>
  </ol>
</div>

效果:

给元素设置visibility:hidden样式
    1.元素1
    3.元素3
    4.元素4

给元素设置display:none样式
    1.元素1
    2.元素3
    3.元素4

参考文章:原文…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值