html - 无法在父级中垂直对齐并排的子 div

标签 html css css-float parent-child

我有三个子 div 并排坐在父 div 中。左边和右边是固定宽度,而中间是可变宽度,需要随浏览器调整大小。由于它们的高度不同,我需要将它们垂直对齐到父级内部,但我无法让它们对齐,并且它们粘在顶部。有什么办法可以做到这一点?子 div 的高度是固定的,但父 div 的高度应该是可变的。

CSS:

#divMain { width: 100%; min-width:320px; height:400px}
#div1 { width: 100px; height: 200px; float: left; red;vertical-align:middle;display:inline-block; }
#div2 { margin-left: 110px; height: 400px; margin-right: 110px; vertical-align:middle;}
#div3 { width: 100px; height:300px; float: right; vertical-align:middle;display:inline-block;}

HTML

<div id="divMain">
    <div id="div1"></div>
    <div id="div3"></div>
    <div id="div2"></div>
</div>

最佳答案

下面是一种无需 JS 的方法,使用侧 divs 上的 position: absolute 实现此目的:

fiddle :http://jsfiddle.net/Xa8TW/2/

CSS

#divMain {
    width: 100%;
    min-width:320px;
    position: relative;
}
#div1 {
    width: 100px;
    height: 200px;
    background-color: red;
    position: absolute;
    top: 50%;
    margin-top: -100px;
}
#div2 {
    height: 600px;
    margin: 0 110px;
    background-color: green;
}
#div3 {
    width: 100px;
    height:300px;
    background-color: blue;
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -150px;
}

HTML 可以保持不变,但现在也可以交换 #div2#div3 的位置,因为没有 float 元素需要特定的订单。

关于html - 无法在父级中垂直对齐并排的子 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18122832/

相关文章:

css - 如何使用CSS将鼠标悬停在文本上

html - 如何使用 translateX 以固定高度和响应宽度在 Bootstrap 3 轮播中居中图像?

css - 为什么我的花车不排队?

HTML/CSS 左浮动问题

html - 这是将社交图标移至页面右侧的最佳解决方案吗?

html - 如果超出可见屏幕,如何找到我的下拉 div?

html 表单的 JavaScript 保护不起作用

javascript - window.URL.revokeObjectURL() 不会立即释放内存(或根本不释放)?

html - 404和软404的区别

c# - 如何使图像随着浏览器大小的动态变化而自动调整大小?