2

我通常在幻想在 SO 中提出问题之前解决我的编程疑问,但这是我似乎第一次找不到答案……所以……这是我下班后向网站提出的第一个问题试图解决这个问题:

¿ 如何拥有一次性的 css 表达式?


为什么一次性表达?: 如果我们做一些测试(小心,因为 IE6 和 IE7 会一次又一次地显示警报......):

<div style="height:expression(alert('this alert repeats itself'));">
  content with infinite alert...
</div>

表达式被评估直到时间结束......这就是为什么我想了解一种让它发生一次的方法,就像 2° 文章试图解释的那样覆盖样式本身,但我真的无法理解它工作....


正如我们在这篇文章中所读到的:

http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_6/

表达式重复自己,这可能是一个性能问题......

那么这篇文章:

http://vacskamati.blogspot.com/2008/10/one-time-execution-of-ie-css.html

这很好,因为它是我发现的唯一一个试图解决这个问题的人......但我似乎无法做到......

我正在尝试做的事情......是在 IE 中模拟“最大宽度”和“最大高度” ......我知道 FF 和其他任何东西都可以直接使用 CSS 来完成......我必须让它以某种方式工作在 IE6 和 IE7...

我知道我可以在外面使用 JS,但是正如您将在我的代码中看到的那样...我将尝试输入 php 值...所以我需要直接在表达式中进行一些控制,以便它自动执行一次然后我不必在其他地方编写 JS 函数......我认为这应该很简单......但我可以得到它......无论如何......我的代码是这样的......:

<div id="div_id" 
     style="
            max-height:<?php echo $height_var; ?>;
            -$height: 
                expression( 
                           if(document.getElementById('div_id').offsetHeight><?php echo $height_var; ?>){ 
                            document.getElementById('div_id').style.height = '400px'
                           }

                          );
            overflow:scroll;
            " >
  content--lbalbalbalbalblablablalb
</div>

Sooo...嗯,这就是基本思想...我已经尝试过上述文章尝试解释的不同方式,我已经尝试向该人发送邮件,嗯,但是在等待可能的答案时,我暴露了这个问题对于 SO 社区,因为无法为我认为可能很简单的事情找到答案是很奇怪的……

所以现在......据我所知,EXPRESSION 会重复自己......如果原始内容大于 400px,我会得到 SCROLL......但我知道它会重复自己,因为......如果我发送“警报” ()" 它一直出现....所以....再次我如何才能实现一次表达...所以 IE 不会评估它 mousemove 或任何动作...。

在此先感谢=)(对不起我奇怪的缩进代码...= P)

4

2 回答 2

0

max-width 和 max-height DO在 IE 中工作(6 中的错误)。只要确保:

  • 添加!重要:style="max-height: 200px !important"
  • 添加 DOCTYPE "-//W3C//DTD XHTML 1.0"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"> <div style="border: red thin dotted; max-height: 40px !important; overflow: hidden"><pre>qwerty qwerty qwerty</pre></div>

于 2011-08-30T11:26:35.490 回答
0

我不完全知道你想要什么,但我希望这会有所帮助:

模拟最大宽度:

* html div#division 
{ 
   width: expression( document.body.clientWidth > 776 ? "777px" : "auto" ); /* sets max-width for IE */
}
div#division 
{ 
   max-width: 777px; /* this sets the max-width value for all standards-compliant browsers */
}

模拟最大高度

* html div#division 
{ 
   height: expression( this.scrollHeight > 332 ? "333px" : "auto" ); /* sets max-height for IE */
}
div#division 
{
   max-height: 333px; /* sets max-height value for all standards-compliant browsers */
}

http://perishablepress.com/press/2007/01/16/maximum-and-minimum-height-and-width-in-internet-explorer/

请注意,不再支持一次性 css 表达式。 http://blogs.msdn.com/b/ie/archive/2008/10/16/ending-expressions.aspx

于 2011-08-25T10:20:34.617 回答