Skip to content
本页目录

display

分类

属性说明注意点
inline行内元素-
inline-block行内块元素左右会产生外边距,不同浏览器宽度不定
block块元素-
none隐藏元素实际元素还在,只是不显示,vuev-show 实现方式
flex弹性布局查看 flex 介绍
grid网格布局查看 grid 介绍
table表格布局当前已不常用
flow-root块元素创建 BFC,可清除浮动,去除 margin 合并等

二值语法

display 支持二值写法,如下:

CSS
display: inline flow;
display: block flow;
display: inline flow-root;
display: block flow-root;
display: inline flex;
display: block flex;
display: inline grid;
display: block grid;
display: inline flow;
display: block flow;
display: inline flow-root;
display: block flow-root;
display: inline flex;
display: block flex;
display: inline grid;
display: block grid;

问题

1. display: inline-block 会产生什么问题?

会产生左右边距,产生原因类似 img 等标签,不同浏览器间边距不固定,无法通过 margin: 0 消除; 可以给其父元素设置 font-size: 0 消除,子元素都需要设置字体大小,不注意容易发现文字不显示,造成问题排查困难。

2. display: nonevisibility: hidden 区别?

  • display: none
    • 会将元素从文档树中移除;
    • 会触发回流与重绘;
    • 其子元素全部隐藏;
  • visibility: hidden
    • 仍占据文档流中位置,但浏览器不会绘制该元素;
    • 会触发重绘;
    • 其子元素如果设置 visibility: visible,该子元素会显示;
    • 绑定的事件不会触发,如点击事件

Css3transition 支持 visibility 属性,不支持 display