我学到的一个解决方案是将父div元素的display
设置为table-cell
并使用vertical-align
属性。
虽然这有效,但在我的情况下,我还需要父div才能正确浮动,但是它会打破表格细节,现在整个事情都不起作用。
所以我的问题很简单:为什么会发生这种情况,更重要的是,我怎样才能达到我想要的效果呢?
div {
/* float: right; uncomment this will make this not working */
display: table-cell;
vertical-align: middle;
height: 60px;
border: 1px solid red;
}
<div>
<input>
</div>
答案 0 :(得分:5)
CSS3提供了flexbox。所有你需要的是:
body {
display: flex; /* create flex container */
justify-content: flex-end; /* align child to right edge */
}
div {
display: flex; /* create nested flex container */
align-items: center; /* center child vertically */
height: 60px;
border: 1px solid red;
}
&#13;
<div>
<input>
</div>
&#13;
flexbox的好处:
要了解有关flexbox的更多信息,请访问:
浏览器支持:
所有主流浏览器except IE 8 & 9都支持Flexbox。最近的一些浏览器版本,例如Safari 8和IE10,需要vendor prefixes。要快速添加所需的所有前缀,请使用Autoprefixer。 this answer中的更多详细信息。
答案 1 :(得分:0)
将div设置为float:右边。
答案 2 :(得分:0)
通过一些调整更新你的小提琴。希望这对你有用。 请检查http://jsfiddle.net/53ALd/3780/
html:
<div >
<input class="form-control" id="txtWOFastNavigation">
</div>
css:
div {
float: right;
height: 160px;
border: 1px solid #000;
position: relative;
background: red;
width: 104px;
}
div .form-control{
width: 100px;
position: absolute;
top: 50%;
transform: translateY(-50%);
}