繁体   English   中英

为什么为“ display”值分配“'initial'”不适用于列表项?

[英]Why does assigning `'initial'` for the `display` value not work for list items?

为了在显示状态和隐藏状态之间切换元素,我创建了一个函数,该函数接受一个对象和一个布尔值,并根据布尔值为给定对象的display属性分配'none''initial'

这似乎适用于<div>类的大多数元素,但对于<li>项,分配'initial'似乎消除了问题,并且似乎特别需要分配'list-item' (或'grid' )。

为什么'initial'对于<li>不起作用,如何在不提及特定对象类型的情况下在显示状态和隐藏状态之间切换对象? 我不想根据对象的类型在此函数中提及诸如'block''inline'之类的特定值。

采用

element.style.display = "";

这意味着从元素中删除内联样式。

为什么为display值分配'initial'值”不适用于列表项?

这里的列表项没有什么特别的。 如果将display:initial应用于<li><div>或其他任何元素 -结果将等同于将display:inline应用于该元素,因为CSS display属性初始值为 inline

MDN的display属性

初始值:内联

看一下这个codepen演示 -注意,如果将鼠标悬停在内容上,所有<div>元素都会“缩小”并变为“内联”,即使它们已使用display:initial进行了设置

如何在显示状态和隐藏状态之间切换对象,而不必提及特定的对象类型?

您可以简单地切换一个添加后的类-使用display:none设置该元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM