2011-08-24 6 views
2

나는 보통 질문을하기 전에 내 프로그래밍에 대한 의문점을 해결하지만 이것이 대답을 찾지 못하는 것은 처음입니다. ... 여기이 문제를 해결하기 위해 노력한 후 사이트에 대한 첫 번째 질문이 있습니다.CSS - How do to do : CSS에서 "한 번만의 CSS 표현"? (예 : IE의 경우 최대 높이/최대 너비)

¿ 원타임 CSS 표현은 어떻게 사용합니까?


왜 한 번 표현? 우리가 할 경우 (... IE7은 또 다시 경고를 표시합니다 IE6 &의 원인,주의) 같은 일부 TEST :

<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

이것이 내가 tr를 찾은 유일한 원인입니다. 이 문제를 해결하기 위해 노력하고 있지만 ... 바로 얻을 수없는 것 같습니다 ....

나는 무엇을하려고합니까? "최대 너비"와 "최대 높이"를 에뮬레이트합니다. IE ... 나는 FF로 알고 있고 다른 사람이 CSS로 직접 처리 할 수 ​​있습니다. IE6과 IE7에서 어떻게 든 작동하도록해야합니다 ...

알고 있습니다.하지만 JS를 사용할 수는 있습니다. 내 코드에서 볼 ... 나는 php 값을 넣으려고 노력할 것이다. 그래서 자동으로 한 번만 excecutes 그래서 나는 다른 곳에서 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 ... 음 ... 기본 아이디어입니다 ... 이미 위의 기사에서 설명 할 수있는 여러 가지 방법을 시도했습니다. 나는 이미 그 사람에게 메일을 보내고 있습니다. 음,하지만 가능한 답을 기다리는 동안 , 나는이 문제를 사회 공동체에 드러낸다. 왜냐하면 내가 생각하기에 단순하다고 생각되는 것에 대한 답을 찾을 수 없다는 것이 매우 이상하다. ...

그래서 지금은 ... 내가 표현한 반복을 알고있다. 자체 .. 그리고 원본 콘텐츠가 400px보다 큰 경우 스크롤을 얻습니다 ....하지만 그것이 원인을 반복한다는 것을 알고 있습니다 ... 내가 "경고()"를 보내면 항상 나타납니다. ... 다시 한 번 표현식을 얻는 방법 ... IE는 mousemove 또는 어떤 동작을 평가하지 않습니다 ....

미리 감사드립니다 =) (그리고 이상한 들여 쓰기 된 코드는 유감스럽게 생각합니다 ...= P)

+0

나의 무지를 용서하지만, 왜'-! $ height :''height :'대신에'? – shanethehat

+0

아, 네, 음, 두 번째 기사의 주석에서 - $ hack을 사용하여 IE6과 IE7만이 표현식 = P를 읽었지만 선택 사항이라고 생각합니다. – Edward

+0

콘텐츠가 부모 요소보다 많은 공간을 차지할 때 어떤 일이 발생할 것으로 예상합니까? – Dor

답변

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

+0

안녕하세요, 답변 주셔서 감사합니다, 불행히도 나는 이미 그 사이트에 갔었는데, 같은 질문을하기 위해 그 사람에게 연락을 시도했습니다. 그는 IE가 "추격하는"의견에 대해서도 같은 가치를 두었습니다. "332 333"과 같이 원하는 값에 "-1"을 넣는 이유 ... 감사합니다. 그러나 이것은 단 한 번만 표현식을 만드는 방법에 대한 원래 질문을 해결하지 못합니다. = P – Edward

0

최대 폭 및 최대 높이 (6에서 버) IE에 작업을한다. 그냥 있는지 확인하려면 다음

  • 추가 중요 : 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

mmm ... 고마워요, 나중에 나중에 시도해 볼게요. 그 컴퓨터에 있지 않아요.하지만 두 가지를 통해 대답해야합니다. mmm : 1-이 작업을하지 않고도이 작업을 수행 할 수 있습니다. doctype? 내가 그것을 사용할 수 없기 때문에, 죄송합니다. 그리고 그것 없이는 가지 않을 것 같아요? .. IDK 2 - 원래의 "일회성 CSS 표현을하는 방법"에 대답하지 않는다고 생각하지만, if 최대 높이에서 작동하면 투표 할 것입니다.) – Edward

+1

http://msdn.microsoft.com/en-us/library/ms530809(VS.85).aspx "이 속성은 엄격! DOCTYPE. " 원래 질문에 답하지 않았지만 원래 문제 (: – friendzis