# 隐藏与显示组件的冷门知识点 FineUI中组件`setVisible`方法采用的是`display:none`的形式隐藏组件. 优点大家都知道,不占据DOM流之类的. 但是缺点也很明显,多tab之类的组件,隐藏的元素无法获取宽高,这也是一些"组件缩成一坨"问题的直接原因 那么为什么不用`visibility:hidden`呢? 其实有个原因是input元素`focus`的特性导致 采用`visibility:hidden`形式隐藏组件,为了避免鼠标事件触发等,大多会附加一个超大的`top,left`样式,或者`translateX()`超大值,将其挪到屏幕外面 然而`focus`操作默认有个scrollToView特性,其会不受限制的自动跳到屏幕中间 ![示例](../images/58.png) 例如决策平台的modern主题,开发者无法控制每个打开的tab里面是否会有代码逻辑触发`focus`,因此只能采用`display:none`的形式隐藏tab,否则就容易出现这种位置异常