【问题标题】:Center Section Not Fitting in 3-Column Responsive CSS Layout中心部分不适合 3 列响应式 CSS 布局
【发布时间】:2023-03-12 13:15:01
【问题描述】:

我有一个效果很好的 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>

可以在fiddle 中看到 CSS。模块化单元的一部分实际上是由一些 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>

我已经尝试了各种调整来尝试让它上升,但唯一能做的就是使外部类one、two 和three 的高度接近于零。

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

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

编辑

在尝试了@kozlovski5 的一些想法后,我可以根据需要让div上下移动。但是有一些事情让我感到不安。我对display: table、display: table-cell 布局不太熟悉,所以我确定我错过了一些东西。例如,当我向有问题的divs、one、two 或three 类或内部类添加文本时,@kozlovski5 建议的调整消失了。所以换句话说,如果我不使用top: -37.5em; 而只是用文本填充divs,一切似乎都可以正常工作。当我尝试使用带边框的部分对布局进行建模时,我得到了奇怪的行为。

我最终选择了花车。最终请参见上面的测试站点。

【问题讨论】:

  • 尝试删除类
  • 我添加了这个,这样你就知道它是什么了...确实是一组按钮类使按钮看起来像它一样:btn btn-primary btn-lg btn-block 等...

标签: css layout responsive-design


【解决方案1】:

我申请了:

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;
}

Ugghhh.. 另一个编辑

我认为整个display: table 和div &gt; div. { display: table-cell;} 都导致了这个问题,而不是处理补丁,让我们直接解决问题而不是修复问题。

只需摆脱显示表等。并使用浮点数代替这里是一个例子: http://jsfiddle.net/YNyHW/6/

【讨论】:

  • 谢谢。我已经尝试过你的建议,但它不起作用。我确实看到它在您提供的小提琴中起作用,但是因为我在没有提供所有代码的情况下拼凑了我的问题,所以我确定我错过了一些东西。我会尝试追踪它。
  • 你可以随时编辑你的问题并改进它,也许链接到测试用例(网站),也许你在给定解决方案之后遇到的下一个问题等。但如果你发现这个问题有用,请接受它。
  • 我发布了测试站点-你能看一下吗?
  • @nicorellius 看了看,看我的回答
  • 所以通过这个编辑,我可以让div 向上移动,但这对我来说似乎不合适。外部divs 现在太高了,如果我改变移除高度,模块div 将不再正确定位。我会接受你的回答,因为它肯定让我摆脱了常规,但似乎在我没有想到的地方有更好的解决方案。再次感谢。
猜你喜欢
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2019-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多