css - 中心部分不适合 3 列响应式 CSS 布局

标签 css layout responsive-design

我有一个 3 列布局,效果很好:

http://jsfiddle.net/nicorellius/YNyHW/7/

我的目标是将一个预先存在的模块化单元添加到中心 div 中,该单元具有 two-inner 类。标记如下:

<html>
<head></head>
<body>
<div>  
    <div class="container">       
        <div class="one">
            <div class="one-inner"></div>
        </div>               
        <div class="two">
            <div class="two-inner"></div>
        </div>                       
        <div class="three">
            <div class="three-inner"></div>
        </div>    
    </div>
</div>
</body>
</html>

CSS 可以在 fiddle 中看到.模块化单元的一部分实际上是由一些 PHP 构建的,其中从数据库中获取和显示一些数据。我有一些用于测试的阵列,它们模拟 6 个条目并为模块化单元提供 2 宽 x 3 高的盒子布局。我的问题是,当我将这个单元添加到上面的布局中时,我得到类似于下面的测试站点的内容。

模块化单元的标记如下:

<section class="unit">
    <section class="buttons margin-top-2em">
        <div class="button-fixed-width">
            <button type="button" class="<bootstrap-button>">button 1</button>
        </div>
        <div class="button-fixed-width">
            <button type="button" class="<bootstrap-button>">button 2</button>
        </div>
        <div class="button-fixed-width">
            <button type="button" class="<bootstrap-button>">button 3</button>
        </div>
    </section>
    <div class="row">   
        <?php // loop through some arrays to get module unit ?>
    </div>
</section>

我已经尝试了各种调整来试图让它起来,但唯一能做到的是使外部类的高度一个两个,和three 接近于零。

虽然我已经尝试更改高度和其他位以使其适合,但我仍然无法弄清楚为什么中心 div 不会上升。我错过了什么?

unit 类的 CSS 在 fiddle 中。就其本身而言,它工作正常,并且我有一些断点将其折叠成一个列。我只是无法通过这部分...

编辑

在尝试了@kozlovski5 的一些想法后,我能够让 div 根据需要上下移动。但是发生了一些事情让我感到不安。我不太熟悉 display: tabledisplay: table-cell 布局,所以我确定我遗漏了什么。例如,当我向相关的 div 添加文本时,类 onetwothree 或内部类,@kozlovski5 推荐的调整消失了。所以换句话说,如果我不使用 top: -37.5em; 并且只是用文本填充 div,一切似乎都可以正常工作。当我尝试使用带边框的部分对布局进行建模时,出现了奇怪的行为。

我最终改用了花车。请参阅上面的测试站点以获取最终结果。

最佳答案

我申请了:

div > .modular {
    display: block;
}

这似乎解决了问题。这是一个更新的 jsFiddle。 http://jsfiddle.net/YNyHW/4/

OP 已经为他的网站提供了一个测试用例,所以我更新的答案是:

.two-inner {
    background-color: #cba;
    border: 1px solid gray;
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    top: -596px;
    left: 0;
}

啊..另一个编辑

我认为整个display:tablediv>div。 { display: table-cell;} 是导致这个问题的原因,我们不去打补丁,而是直接解决问题,而不是去修复。

只是去掉显示表等。使用 float 代替这里是一个例子: http://jsfiddle.net/YNyHW/6/

关于css - 中心部分不适合 3 列响应式 CSS 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19746145/

相关文章:

html - flexbox 后的元素定位不正确

Flash 幻灯片下的 CSS 菜单

javafx - 对齐多个 XYCharts 的 X 轴

algorithm - 将 n 个可变高度图像拟合到 3(相似长度)列布局中

html - CSS 中的预设/ native 元素

c# - 将 Web 浏览器控件锚定到所有四个方面

javascript - 如何制作响应式图像?

html - 如何在超小型设备中重新排列自举网格

css - 需要自动宽度的响应式 div

显示 GIF 的 JavaScript 函数