使用CSS垂直对齐元素

时间:2013-07-02 13:22:41

标签: css

我只想垂直对齐标题中的元素。这对桌子来说真的很容易,但无法用CSS来解决这个问题。我想用黑条垂直对齐所有3个元素:“Logo”,“Rechercher”和文本输入。

这是CSS:

body {
margin:0;
padding:0;
font-size:100%;
}

#header {
background-color:#303030;
height:3em;
}

#logo {
color:#EEEEEE;
font-size:2em;
line-height:1.5em;
padding:0 30px 0px 10px;
display:inline;
}

#recherche {
color:#EEEEEE;
font-size:1.5em;
display:inline;
}

#recherche input {
width:300px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius:4px;
}

HTML:

<!DOCTYPE html>
<html>
  <head>
  <title>Test</title>
  <link rel="stylesheet" type="text/css" href="css/mainframe.css">
 </head>
 <body>
  <div id="header">
    <div id="logo">Logo</div>
    <form id="recherche" action="/" autocomplete="off">
    <label for="rechercher">Rechercher</label>
    <input type="text" name="recherche">
</form>
  </div>
 </body>
</html>

3 个答案:

答案 0 :(得分:0)

这是一个工作正常的解决方案: 您可以将line-height:size_px添加到您希望其子项垂直对齐的每个元素。 (例如size_px:= 10px)。 line-height应与父高(height)相同。

尝试:

jsfiddle.net/rjCBR /

答案 1 :(得分:0)

使用以下代码替换css的body#header

body {
margin:0;
padding:0;
font-size:100%;
width: 100%;
display: table;
}

#header {
background-color:#303030;
height:3em;
display: table-cell;
vertical-align: middle;
}

答案 2 :(得分:0)

正如其他人所建议的那样,使用Vertical-align: middle;对齐每个元素的文本底部,对于输入框来说这看起来很奇怪,其中实际元素的底部将大大低于文本。

尝试将以下属性添加到输入css

height: 24px;
vertical-align: text-bottom;

jsFiddle