html - 父 div 内的子 div 未垂直对齐

标签 html css

我试图让白色子 div 在红色父 div 的中心垂直对齐(同时确保红色 div 在祖父粉色 div 的中心保持对齐)。

我试过将红色父 div 显示为表格单元格,但这将红色 div 移到了祖父粉色 div 的左侧,并且无论如何都没有垂直对齐 div。还尝试了不同类型的定位。

有没有不使用 flex boxes 的更简单的方法来实现这一点?感谢您的帮助。

.sections-stretched {
    width: 100%;
    height: auto;
    background: #f0f;
    margin: 0 auto 50px auto;
    overflow: auto;
    padding: 50px 0;
}

.stretched-container {
    max-width: 960px;
    height: auto;
    background: #f00;
    margin: 0 auto;
    text-align: center;
}

.home-summary {
    width: 26%;
    height: auto;
    background: #fff;
    margin-right: 11%;
    display: inline-block;
    float: left;
}

.no-padding-or-margin {
    margin: 0;
    padding: 0;
}

.clear{ clear: both; }
    <section class="sections-stretched">
        <div class="stretched-container">
            <div class="home-summary">
                <h4>eirh erergerge ergergiuerhgier</h4>
                <p>ergergerg erg ergerg ergergergegeg erg ergerg ergergergegeg, etc</p>
            </div>
            <div class="home-summary">
                text here lorem imsup cla bla bla bla bla bla bla blal bla blw bowrnbuehrbuehr beurohertext here lorem imsup cla bla bla bla bla bla bla blal bla blw bowrnbuehrbuehr beuroher
            </div>
            <div class="home-summary no-padding-or-margin">
                text here lorem imsup cla bla
            </div>
            <div class="clear"></div>
        </div>
    </section>

最佳答案

删除元素之间的 float 和空格,这样 width: 26%; margin-right: 11% 将占用父级的 100%,并使用 vertical-align: middle;

.sections-stretched {
    width: 100%;
    height: auto;
    background: #f0f;
    margin: 0 auto 50px auto;
    overflow: auto;
    padding: 50px 0;
}

.stretched-container {
    max-width: 960px;
    height: auto;
    background: #f00;
    margin: 0 auto;
    text-align: center;
}

.home-summary {
    width: 26%;
    height: auto;
    background: #fff;
    margin-right: 11%;
    display: inline-block;
    vertical-align: middle;
}

.no-padding-or-margin {
    margin: 0;
    padding: 0;
}

.clear{ clear: both; }
<section class="sections-stretched">
        <div class="stretched-container">
            <div class="home-summary">
                <h4>eirh erergerge ergergiuerhgier</h4>
                <p>ergergerg erg ergerg ergergergegeg erg ergerg ergergergegeg, etc</p>
            </div><div class="home-summary">
                text here lorem imsup cla bla bla bla bla bla bla blal bla blw bowrnbuehrbuehr beurohertext here lorem imsup cla bla bla bla bla bla bla blal bla blw bowrnbuehrbuehr beuroher
            </div><div class="home-summary no-padding-or-margin">
                text here lorem imsup cla bla
            </div>
            <div class="clear"></div>
        </div>
    </section>

关于html - 父 div 内的子 div 未垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380426/

相关文章:

html - 避免为 html 设置全局类

html - 箭头向外边框

javascript - 如何在 asp.net 中改变标签的方向?

CSS 下拉导航,第 3 级问题

css - 如何重置 flex-item 的 'display' 属性

javascript - 当图像 src 不为空时更改 css 类

css - 用于输入元素的 webkit htm5 css 重置

javascript - 弹出模式不会在 Safari 移动版中移动

css - 什么时候 CSS sprites 适合什么时候使用?

javascript - 单击以将 div 移动到鼠标坐标