Html 如何在默认情况下隐藏页面元素,但在以后使用敲除显示它们?

Html 如何在默认情况下隐藏页面元素,但在以后使用敲除显示它们?,html,knockout.js,Html,Knockout.js,我正在使用Knockout和jQuery开发一个单页web应用程序。页面正文分为不同的s,每个对应于某一页面;用户一次只能看到一个部分。我们正在使用Knockout的visible绑定来隐藏和显示相应的部分,而且效果很好 问题是,当页面加载时——当HTML已经加载,但Knockout尚未应用其绑定时——所有部分都是可见的。这种情况持续不到一秒钟,但很难看。我试图在节上设置display:none,这样它们一开始是不可见的,但有一个怪癖:如果表达式的计算结果为true,Knockout会将CSSd

我正在使用Knockout和jQuery开发一个单页web应用程序。页面正文分为不同的
s,每个
对应于某一页面;用户一次只能看到一个部分。我们正在使用Knockout的
visible
绑定来隐藏和显示相应的部分,而且效果很好

问题是,当页面加载时——当HTML已经加载,但Knockout尚未应用其绑定时——所有部分都是可见的。这种情况持续不到一秒钟,但很难看。我试图在节上设置
display:none
,这样它们一开始是不可见的,但有一个怪癖:如果表达式的计算结果为true,Knockout会将CSS
display
属性设置为没有Knockout的任何属性


换句话说,设置
data bind=“visible:true”
不会覆盖
display:none
。这是有道理的,因为在很多情况下,您需要将显示指定为不可见的,或者说,
表格单元格
,但在我的情况下,这很烦人。强制敲除以显示我的节元素的最佳方式是什么?

事实证明,虽然敲除不会覆盖CSS中设置的
显示:无
,例如

body > section {
    display: none;
}
如果同一样式指令出现在HTML中,它将覆盖该指令:

<section style="display: none" data-bind="...">


因此,我的问题的解决方案是将
display:none
从CSS文件移动到
style
属性中。当我想要显示我的
时,Knockout会覆盖属性以显示它。

顺便说一句,如果使用
而不是
可见:
,不是更好吗?