2012-12-26 32 views
1
<html> 
<head> 
    <style> 
     div#one{ 
      display: inline-block; 
      border: 1px solid green; 
      width: 200px; 
      height: 200px; 
     } 
     p { 
      border: 1px solid black; 

     } 
     div { 
      display: inline-block; 
      border: 1px solid green; 
      width: 200px; 
      height: 200px; 
     } 
    </style> 
</head> 
<body> 
    <div id="one"> 
     <p>Something here</p> 
    </div> 
    <div></div> 
</body> 
</html> 

这是我的代码,我期望divs并排排列,但它们不是。为什么?为什么在css中按照预期并排排列元素

+0

删除'显示:内联block'和使用'浮动:left'如果你需要并排侧.. –

+0

也许这将帮助你:HTTP:/ /stackoverflow.com/questions/1371307/displayblock-inside-displayinline。 – 2012-12-26 09:13:22

回答

4

添加

vertical-align:top 

div

JSFiddle demo

+0

你能解释它为什么不起作用吗? – dramasea

+0

@dramasea因为默认'inline'元素具有'vertical-align:text-bottom'。第一个'div'有一行文本,所以文本底部被考虑;第二个'div'是空的,所以它的底部被考虑。 – Passerby

1

你不应该在这种情况下,使用inline-block的。这可能会导致旧浏览器(IE;)出现错误。 改为使用“float”。 http://jsfiddle.net/Tymek/HM835/

div { 
    display: block; /* this */ 
    float: left; /* and this */ 
    border: 1px solid #0F0; 
    width: 200px; 
    height: 200px; 
} 

#one { 
    border-color: #F00; 
    width: 200px; 
    height: 200px; 
} 

p { 
    border: 1px solid #000; 
} 

<div id="one"> 
    <p>Something here</p> 
</div> 
<div> 
    Lorem ipsum 
</div>​