正如问题所暗示的,我可以在css文件中添加一个JQuery脚本作为表达式吗?或类似的东西:
.parent{
background-color: pink;
position:relative;
width: 100%;
}
.child{
position: absolute;
background: transparent url('./background.gif') no-repeat top right;
/*height: 100%;*/
height: expression($(this).parent.height()+'px');
width: 12px;
}
这个脚本的整个想法是解决IE6中的100%div高度。
答案 0 :(得分:3)
你不能这样做。
您可以在页面加载时执行某种javascript ...(一种查找具有100%高度的元素并将其替换为父级高度的函数。)
答案 1 :(得分:0)
不在我试过的任何浏览器上;有CSS expressions可能适用于IE 6,但它们并不是非常快速(所以说链接)。我认为问题是当CSS加载时与初始化jQuery选择器时相比。因此,您必须编写一些关于DOM就绪代码的内容,以选择需要设置其高度的所有元素,然后进行设置。
答案 2 :(得分:0)
#element {
height: expression((function(element) {
var x = window.setInterval (function () {
if (document.readyState.search (/loaded|complete/) > -1) {
window.clearTimeout (x);
$(element).height($(element).parent.height())
}
}, 50);
})(this));
}
让我解释一下:首先,表达不好。按照dlablin的链接阅读原因。你应该考虑其他方法。如果必须,上述代码段的工作方式如下:
只要读取CSS,就会首先评估表达式。这意味着,DOM尚未就绪,jQuery可能尚未加载。
将表达式设置为匿名函数,即时执行。
此函数将当前元素element
传递给包含的代码。
我们设置一个间隔:如果DOM准备好,每50ms检查一次。如果是,请清除间隔并运行jQuery。
备注:如果您使用很多元素执行此操作,这会让您的网页速度变慢。再次强调这一点:不要在家里这样做,孩子们!