2011-05-24 90 views
0

我遇到了Firefox的问题(尝试使用3.6和4)。与Firefox的CSS显示问题:表行

我需要创建一个具有静态大小菜单和动态大小内容列(如果有比下面的代码更简单的方式,我想知道)的2列布局。

最简单的可能是我粘贴的HTML和样式(这只是一个简单的例子“bug”)。

<html> 
<head> 
    <title>Test</title> 
    <link type="text/css" href="style.css" rel="stylesheet"> 
</head> 
<body> 
<div style="padding:0 9%;"> 
    <ol class="container row padd"> 
     <li class="content cell padd"> 
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus id laoreet orci. Aenean congue pharetra enim, et sollicitudin est congue quis. Sed sit amet nibh ut nibh suscipit sagittis. Curabitur eros nisi, pulvinar id placerat blandit, vulputate id eros. Nullam tempor placerat ultrices. Sed ut dui ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut tempor felis non felis commodo in volutpat sapien malesuada. Nunc congue bibendum leo, sed rutrum sem imperdiet vel. Cras gravida leo id odio scelerisque ut pharetra turpis sollicitudin. Morbi urna lorem, laoreet a lacinia ac, convallis sed urna. Morbi ut diam magna, a elementum erat. Nulla viverra molestie vestibulum. Ut nec ante in urna egestas tincidunt.</p> 
      <p>Nullam malesuada, urna ac pretium suscipit, purus est viverra nulla, semper placerat lacus urna in mauris. Integer egestas venenatis commodo. Mauris sagittis rutrum erat, quis tincidunt erat bibendum non. Etiam quis erat diam, at ullamcorper nisl. Suspendisse non convallis ante. Fusce eget augue nunc. Praesent pellentesque commodo est, nec vulputate dolor tincidunt vitae. Ut in pretium felis. Sed rutrum, nisi vel commodo accumsan, ante neque mattis neque, quis convallis magna metus molestie erat. Duis aliquet tempus neque ac vestibulum. Morbi nec lectus in lectus blandit blandit sit amet blandit justo. </p> 
      <p>Sed lorem ligula, rhoncus ac ornare vel, vulputate nec dui. Suspendisse id lectus in est aliquam tristique nec et augue. Morbi non quam id lorem sollicitudin gravida ut ut sem. Aenean nec nunc ac enim sodales laoreet sed quis neque. Maecenas auctor feugiat risus, eget porttitor lorem laoreet porttitor. Ut in ipsum non felis bibendum scelerisque convallis ac nibh. Vivamus nec viverra quam. Nam urna justo, eleifend eget semper ut, tristique non nisl. Duis posuere malesuada metus sed aliquam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum nulla tellus, condimentum vitae tincidunt gravida, tristique vel odio. Praesent sed nulla quam, fringilla convallis tellus. Suspendisse potenti. Morbi accumsan elementum placerat. Duis tellus nunc, lacinia non mattis et, varius a magna. Donec consequat viverra massa. Morbi sit amet metus lacus. Curabitur mattis lacinia eros, ac semper nisi dapibus nec. </p> 
      <p>Duis et diam sit amet metus aliquet cursus. Vivamus lobortis purus id ante accumsan tincidunt. Ut auctor sodales velit, imperdiet aliquet dui facilisis eu. Mauris porta pulvinar tortor ut mattis. Nullam congue sapien ut est luctus egestas. Curabitur eget neque augue. Donec a lacus sed purus consectetur euismod. Vivamus ut odio magna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sagittis dui ac odio convallis vel iaculis nibh rutrum. Donec porttitor sapien vel ipsum lacinia ut tristique ante consequat. In sodales malesuada odio, vitae iaculis dui molestie quis. Mauris eu magna at eros viverra pretium. Fusce placerat dolor turpis, id imperdiet orci. Proin sed magna aliquet sem accumsan rutrum. Etiam id sagittis purus. </p> 
     </li> 
     <li class="menu cell padd"> 
      <div id="menu1" class="cell padd"> 
       Column 1 
      </div> 
      <div id="menu2" class="cell padd"> 
       Column 2 
      </div> 
      <!--<ul> 
       <li>Punkt 1</li> 
       <li>Punkt 2</li> 
       <li>Punkt 3</li> 
      </ul>--> 
     </li> 
    </ol> 
</div> 
</body> 
</html> 

这里是CSS:

.container { display:table-row; } 
.container .content { width:auto; background-color:#B0B0B0; display:table-cell;} 
.container .menu { background:none repeat scroll 0 0 #FFFFEC; display:table-cell; width:350px; } 
#menu1 { width:200px; float: left; margin-left: 5px; height:200px; } 
#menu2 { width:100px; float: left; margin-left: 5px; height:200px; } 

/* Misc */ 
.table { border: 1px solid #7777A0; } 
.row { border: 1px solid #777799; background-color: #A000A0; } 
.cell { border: 1px solid black; background-color: white; } 
.padd { margin:4px; } 

在Firefox打开时,这个问题应该是显而易见的,在右边的菜单栏推在左栏因为某些原因文本。

它在Opera中看起来正确。 该示例使用列表,但可以用div替换(没有区别)。

我在样式表中做了非法的事情来激起这种行为吗?

Ps。它在IE8中看起来完全垃圾。

回答

2

无论出于何种原因,只需在.cell上加上vertical-align: top即可排除垂直对齐问题。

它在IE8中看起来非常可怕,因为您忘记了添加a doctype--因此IE8在Quirks Mode中呈现。

您应该添加一个文档类型,例如HTML5文档类型。您应该将顶部行改为:

<!DOCTYPE html> 
<html> 

现在应解决这两个问题。

+0

非常感谢,这是诀窍。我只需要将它添加到.content。还会添加一个DOCTYPE。 – DarkNeuron 2011-05-24 13:09:19