html - 我无法使用 CSS 将表单放在 div 中间

标签 html css position

我正在尝试将搜索表单的输入和按钮放在我的横幅中间。

但这就是我得到的:

Result

这里是 HTML:

<div class="header-container">
    <div class="header">
        <h1 class="logo"><strong>Magento Commerce</strong><a href="" title="Magento Commerce" class="logo"><img src="" alt="Magento Commerce" /></a></h1>
        <div class="quick-access">
            <form id="search_mini_form" action="/" method="get">
                <div class="form-search">
                    <label for="search">Search:</label>
                    <input id="search" type="text" name="q" value="" class="input-text" maxlength="128" />
                    <button type="submit" title="Recherche" class="button"><span><span>Recherche</span></span></button>
                    <div id="search_autocomplete" class="search-autocomplete">
                    </div>
                    <script type="text/javascript">
                    //<![CDATA[
                        var searchForm = new Varien.searchForm('search_mini_form', 'search', 'Search entire store here...');
                        searchForm.initAutocomplete('/', 'search_autocomplete');
                    //]]>
                    </script>
                </div>
            </form>
            <ul class="links">
                <li class="first" ><a href="" title="Mon compte" >Mon compte</a> </li>
                <li><a href="" title="My Wishlist" >My Wishlist</a></li>
                <li><a href="" title="My Cart" class="top-link-cart">My Cart</a></li>
                <li><a href="" title="Checkout" class="top-link-checkout">Checkout</a></li>
                <li><a href="" title="Blog" class="top-link-blog">Blog</a> </li>
                <li class=" last"><a href="" title="Se connecter" >Se connecter</a></li>
            </ul>
        </div>
    </div>
</div>

这是 CSS:

.header-container {
    position:fixed;
    background-color: #000;
    height:40px;
    line-height:40px;
    width:100%;
    color:#fff;
}
.header {
    text-align:right;
    height:40px;
    line-height:40px;
    z-index:10;
}
.header .quick-access {
    height: 40px;
    line-height: 40px;
}
.header .form-search {
    float:right;
    height:40px;
    width: auto;
    line-height:40px;
}
form {
    display: inline;
}

我找到了一种使用 display: table-cell;vertical-align: middle; 的方法,但我不想使用这种技术,因为我希望支持旧版浏览器。

那么技术是怎么来的:

height: 40px;
line-height: 40px;

仅使用 ul 列表菜单而不使用输入和按钮?

更新

这是您可以看到问题的 jsfiddle 链接:example

最佳答案

我建议不要为此使用行高...这不是文本 block 。
相反……我会像这样使用 padding-top:

.header .form-search {
  float: right;
  height: 40px;
  padding-top: 10px;
  box-sizing: border-box;
  -moz-box-sizing: border-box; /* FF */
  width: auto;
}

更新 fiddle :http://jsfiddle.net/gmolop/fELkE/1/

关于html - 我无法使用 CSS 将表单放在 div 中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226091/

相关文章:

javascript - 如何使用js使输入有效?

javascript - 无法在函数中调用窗口位置对象

html - Css:通过相对于容器顶部的底部定位元素

css - 在固定大小的 div 中垂直对齐居中图像

html - 简单的 3 列响应式布局

以毫秒为单位的 HTML5 时间元素

html - IE 始终以 TD 居中文本

javascript - Angular nvd3 堆栈面积图 - 扩展选项 - 0% 到 100% 范围

javascript - 使用悬停动画调整大小的图像不适合容器

html - 输入字段太宽