CSS -如何做一个一次性的CSS表达式在css中?(例如IE的max-height / max-width)

CSS - How to do a: "ONE-TIME CSS EXPRESSION" in css? (e.g. max-height / max-width for IE)

本文关键字:CSS 例如 IE max-height max-width css 何做一 一次性 表达式      更新时间:2023-09-26

我通常在幻想在SO中提出问题之前解决我的编程问题,但这是第一次我似乎找不到答案.... 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

这是伟大的,因为它是唯一一个我发现,试图解决这个…但我似乎做不到....

我想做什么…是模拟"max-width"answers"max-height"在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>

呃呃……嗯,这是基本的想法……我已经尝试了不同的方法,上面的文章试图解释,我已经试着给这个家伙发了一封邮件,嗯,但是当我等待可能的答案时,我把这个问题暴露给了SO社区,因为无法开始找到我认为可能很简单的答案是非常奇怪的…

所以现在…据我所知,表达式重复自己…,我得到滚动,如果原始内容大于400px....但我知道它会不断重复,因为……如果我发送一个"alert()"它总是出现....所以....再次,我怎样才能实现一次表达…IE不会对它进行评估鼠标移动或任何动作....

谢谢提前=)(抱歉我奇怪的缩进代码…div = P)

我不知道你到底想要什么,但我希望这对你有帮助:

效仿max-width:

* 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 */
}

效仿max-height

* 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

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

  • 添加重要: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>