html - Bootstrap 中的垂直居中搜索框

标签 html css twitter-bootstrap

背景:: 我在垂直对齐搜索框时遇到了一个真正的问题,这是一个棘手的问题,我已经处理了几个小时,HTML 标记很干净, 看看它::

问题:: 我一直在使用 display:tabledisplay:table-cell 属性让搜索框垂直对齐,看看标记:

<header>
    <img src="http://www.freestockphotos.name/wallpaper-original/wallpapers/download-images-of-gentle-dogs-6866.jpg" alt="image of laminates"> 
            <div class="location-search-container">
                <div class="input-group custom-search-form">
                    <input type="text" class="form-control">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="button">
                                <span class="glyphicon glyphicon-search"></span>
                        </button>
                     </span>
                 </div><!-- /input-group -->    
            </div>

</header>   

注意header是position:relativeimgdisplay:blocklocation-search-container是困难所在,它绝对定位并应用了以下 CSS::

.location-search-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: table;
    height: 100%;
} 

理论上搜索框应该放在中间,但实际上不是,请参见 FIDDLE 中的结果。 ::

现在,稍微调整一下,让我们删除图像元素并将以下附加属性添加到 header 元素::

header {
    position: relative;
    /*add the below two properties*/
    height: 300px;
    background: yellow;
}

现在看看搜索框是如何居中的 ( FIDDLE )。我是 CSS 的新手,而这个 CSS 有点难以破解。有人可以告诉我我错过了什么吗?

我知道这需要一些努力,所以感谢您的时间和耐心。

亚历克斯-z。

最佳答案

您无法将 position: absolutedisplay: table 组合起来并获得您期望的结果。相反,在搜索框上设置 50% 的顶部位置和负的顶部边距等于其高度的一半:

.location-search-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
.input-group {
    position: absolute;
    top: 50%;
    margin-top: -17px;
}

Demo

关于html - Bootstrap 中的垂直居中搜索框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243705/

相关文章:

jquery - 如何在 body 内选择任意顺序的奇子?

javascript - 在面板中添加关闭图标

仅限 css - 带有固定标题的表格溢出

javascript - 如何使用 jQuery 对固定元素的位置进行动画处理

php - 从字符串参数获取变量 MySQL PHP

html - 将子 div 切割成圆圈

html - 空白区域上的跨度光标样式。 IE8问题

javascript - 无法让 Bootstrap 轮播与 Ember 配合使用

javascript - Bootstrap Material Design 中缺乏涟漪

html - 如何将文本和社交媒体图标放在同一行