首页 > 试题广场 >

下列说法正确的是?()

[不定项选择题]
下列说法正确的是?()
  • display: none;不为被隐藏的对象保留其物理空间;
  • visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;
  • visibility:hidden;产生reflow和repaint(回流与重绘);
  • visibility:hidden;与display: none;两者没有本质上的区别;
这个题真坑
A、 display: none;不为被隐藏的对象保留其物理空间;
B、 visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;
C、 visibility:hidden;产生reflow和repaint(回流与重绘);
D、 visibility:hidden;与display: none;两者没有本质上的区别;
这样就没问题了,为毛输入题都能输入错的
发表于 2019-03-20 23:29:12 回复(2)

Display:none会触发reflow

visibility:hidden会触发repaint

发表于 2019-09-13 11:51:55 回复(1)
display: none 直接从DOM中将其移除 
visibility:hidden 只是在DOM添加样式将其隐藏并没有移除

发表于 2020-05-20 19:37:04 回复(0)

display: none和visibility:hidden的区别就是visibility:hidden会保留元素的空间

repaint(重绘)

repaint发生更改时,元素的外观被改变,且在没有改变布局的情况下发生,如改变outline,visibility,backgroundcolor,不会影响到dom结构渲染。

reflow(渲染)

与repaint区别就是他会影响到dom的结构渲染,同时他会触发repaint,他会改变他本身与所有父辈元素(祖先),这种开销是非常昂贵的,导致性能下降是必然的,页面元素越多效果越明显。
所以display:none才会产生reflow visibility:hidden只会出发repaint

发表于 2021-01-10 21:54:54 回复(0)

visibility:hidden引起重绘,另外那个引起回流和重绘


发表于 2020-01-07 11:48:14 回复(0)
display:none会出发回流;vixibility:hidden会触发重绘
发表于 2021-04-15 14:05:52 回复(1)
发表于 2022-03-23 12:00:50 回复(0)
visibility:hidden只会触发回流 不会触发重绘
触发重流的因素
1.添加、删除可见的dom

2.元素的位置改变

3.元素的尺寸改变(外边距、内边距、边框厚度、宽高、等几何属性)

4.页面渲染初始化

5.浏览器窗口尺寸改变

6.获取某些属性。当获取一些属性时,浏览器为取得正确的值也会触发重排,它会导致队列刷新,这些属性包括:offsetTop、offsetLeft、 offsetWidth、offsetHeight、scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight、getComputedStyle() (currentStyle in IE)。
触发重绘的因素 在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。比如改变某个元素的背景色、文字颜色、边框颜色等等。

发表于 2022-03-23 11:05:13 回复(0)
stylus不知道现在市场怎么样
发表于 2022-01-10 13:22:49 回复(0)
B选项后半段感觉有些问题 visibility设置hidden会导致元素无法响应事件
发表于 2021-12-02 03:04:21 回复(0)
c会回流?
发表于 2020-09-04 20:35:29 回复(0)
Display:none会触发reflow visibility:hidden会触发repaint
发表于 2020-03-30 05:39:53 回复(0)
这样的题,还有人做的对吗?是在什么样的情况下 会选择A
发表于 2019-11-05 09:04:25 回复(1)

所以是A选项有问题是吗

不应该有从D开始的那段话的

发表于 2019-09-14 11:20:59 回复(0)