CSS - Как сделать: "ОДНОРАЗНОЕ ВЫРАЖЕНИЕ CSS" в CSS?(например, максимальная высота / максимальная ширина для IE) - PullRequest
2 голосов
/ 24 августа 2011

Я обычно решаю свои сомнения в программировании, прежде чем фантазировать, чтобы задать вопрос в SO, но это первый раз, когда я не могу найти ответ ... так что ... вот мой первый вопрос ксайт после нескольких часов попыток решить эту проблему:

¿Как получить одноразовое выражение css?


ПОЧЕМУ одноразовое выражение?: если мы сделаем какой-нибудь тест типа TEST (будьте осторожны, потому что 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

, что здорово, потому что это единственный, который я нашел, который пытается решить эту проблему.s ... но я, кажется, не могу понять это правильно ...

Что я пытаюсь сделать ... это эмулировать "max-width" и "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 сообщества, потому что очень странно не найти ответ на вопрос, который, я думаю, может быть простым ...

Так что пока ... насколько я знаю, EXPRESSION повторяется ... и я получаю СВИТОК, если исходный контент больше 400px .... но я знаю, что это повторяется, потому что ... если я отправляю«alert ()» появляется все время .... так что ... снова, КАК Я МОГУ ДОСТИГНУТЬ ОДНОВРЕМЕННОЕ ВЫРАЖЕНИЕ ... так что IE не оценивает его перемещения мышью или какие-либо действия ....

Заранее спасибо =) (и извините за мой странный код с отступом ... = P)

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

максимальная ширина и максимальная высота 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>

0 голосов
/ 25 августа 2011

Я точно не знаю, что вы хотите, но я надеюсь, что это поможет:

Эмуляция 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

...