2013-03-01 2 views
0

드롭 다운 메뉴가 있는데 Internet Explorer 7을 제외하고 완벽하게 작동합니다. MS에 감사드립니다.CSS IE7 LI가 부모보다 더 넓도록 LI를 강제로 설정할 수 있습니다.

데모 용으로이 간단한 HTML을 만들었습니다. 드롭 다운 메뉴를 열면 문제를 신속하게 설명 할 수 있습니다. IE 7에서는 드롭 다운 메뉴가 최상위 메뉴의 너비로 잘립니다. IE8과 IE9에서는 이것이 문제가되지 않습니다. 그렇지 않으면 내가해야

element.style.width = 320 ~

작품은 완벽하게, 그러나 나는이 할 것 IE8 또는 IE9처럼 자동으로 수행해야합니다

나는 다음과 같은 자바 스크립트를 추가하여 문제를 해결할 수 있습니다 각 드롭 다운 폭을 따로 계산하십시오. 아래

HTML 다음 중첩 된 UL에 대한

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <style> 
     ul.menu {list-style:none;font:10px Trebushet MS;font-weight:bold;margin:0;padding:0;position:absolute;left:86px;top:90px;line-height:100%;height:15px} 
     ul.menu * {margin:0;padding:0;cursor:pointer} 
     ul.menu .header {position:relative; float:left;color:#999999;padding: 3px 12px 2px 4px;white-space:nowrap} 
     ul.menu .header ul {position:absolute; top:15px; left:0;background:#f0f0f0; overflow: hidden;list-style:none} 
     ul.menu .header ul li {position:relative; padding: 3px 25px 3px 10px; white-space:nowrap; display: block} 
     ul.menu .header ul li:hover {background-color:#dcdcdc} 
    </style> 
</head> 
<body> 
<ul class="menu" id="menu"> 
    <li class="header"> 
     CREATE 
     <ul> 
      <li>A really really long description of nothing valuable</li> 
      <li>test1</li> 
      <li>test2</li> 
      <li>test3 and again very long</li> 
     </ul> 
    </li> 
    <li class="header"> 
     SEARCH 
     <ul> 
      <li>test1</li> 
      <li>test1</li> 
      <li>test1</li> 
      <li>test1</li> 
     </ul> 
    </li> 
</ul> 
</body> 
</html> 

답변

1

오버 플로우 속성 세트는 여기에 원인이된다. 속성을 ul.menu .header ul에서 제거하면이 문제가 해결됩니다.

여기 피들보기 : http://jsfiddle.net/b45rA/1/embedded/result/. jsfiddle은 IE7에서 좋은 결과를 내지 못하므로 출력을 렌더링하려면 run again 명령 (오른쪽 위)을 사용해야 할 수도 있습니다.