CSS 里的 visibility 属性有个 collapse 属性值是干嘛用的?在不同浏览器下以后什么区别?

x33g5p2x  于2022-04-10 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(821)

一、写在前面
对于css里的visibility属性,存在三种值,一个是visible,这个属性值表现出来的样式没有任何变化。
hidden:相当于opacity: 0
collapse:对于一般元素来说visibility:collapse表现的样式和hidden一样,但是对于table相关的元素,比如table grouptable列table column group,他的表现却跟display:none一样,也就是说,他们占用的空间都会被释放掉。
二、演示

  1. <table cellspacing="0" class="table">
  2. <tr>
  3. <th>Fruits</th>
  4. <th>Vegetables</th>
  5. <th>Rocks</th>
  6. </tr>
  7. <tr>
  8. <td>Apple</td>
  9. <td>Celery</td>
  10. <td>Granite</td>
  11. </tr>
  12. <tr>
  13. <td>Orange</td>
  14. <td>Cabbage</td>
  15. <td>Flint</td>
  16. </tr>
  17. </table>
  18. <p><button>collapse行1</button></p>
  19. <p><button>hide行1</button></p>
  20. <p><button>重置</button></p>
  1. body {
  2. text-align: center;
  3. padding-top: 20px;
  4. font-family: Arial, sans-serif;
  5. }
  6. table {
  7. border-collapse: separate;
  8. border-spacing: 5px;
  9. border: solid 1px black;
  10. width: 500px;
  11. margin: 0 auto;
  12. }
  13. th, td {
  14. text-align: center;
  15. border: solid 1px black;
  16. padding: 10px;
  17. }
  18. .vc {
  19. visibility: collapse;
  20. }
  21. .vh {
  22. visibility: hidden;
  23. }
  24. button {
  25. margin-top: 5px;
  26. }
  1. var btns = document.getElementsByTagName('button'),
  2. rows = document.getElementsByTagName('tr');
  3. btns[0].addEventListener('click', function () {
  4. rows[1].className = 'vc';
  5. }, false);
  6. btns[1].addEventListener('click', function () {
  7. rows[1].className = 'vh';
  8. }, false);
  9. btns[2].addEventListener('click', function () {
  10. rows[1].className = '';
  11. }, false);

三、不同浏览器下的区别

  1. 在谷歌浏览器里,使用collapse值和使用hidden值没有什么区别。
  2. 在火狐浏览器、OperaIE11里,使用collapse值的效果就如它的字面意思:table的行会消失,它的下面一行
  3. 会补充它的位置。

《新程序员》:云原生和全面数字化实践

50位技术专家共同创作,文字、视频、音频交互阅读

相关文章