【问题标题】:Stretching to Window sides from fixed point从固定点拉伸到窗边
【发布时间】:2015-10-22 15:35:12
【问题描述】:

我对此设计有疑问。起初,它看起来很简单:左列是 25% 宽,右列是 75% 宽。但是,这仅在 1140 像素宽的中心“容器”内。在更大的屏幕上,它变得更加困难。

  • 左栏需要拉伸到窗口的最左侧。
  • 左列的内容(但不是背景颜色)始终保留在该 1140 像素的容器内。
  • 右栏需要拉伸到窗口的最右侧。
  • 右栏的内容拉伸到窗口右侧,不受 1140px 容器的约束。

我正在使用 Bootstrap 的网格系统。但即使打破这一点并使用绝对定位,我也不知道如何只用 CSS 来做到这一点,(没有 JS。)

谁能帮忙?

【问题讨论】:

    标签: css twitter-bootstrap css-position


    【解决方案1】:

    我认为这种布局可能与您所寻找的很接近。它利用calc根据容器宽度动态调整元素大小:

    整页 JSFiddle:https://jsfiddle.net/2ggyyjp1/1/embedded/result/

    现场演示(一定要点击整页!):

    .left {
        position: relative;
        height: 300px;
        background-color: black;
        width: calc(50% - 1140px * 0.25);
        float: left;
    }
    
    .left-content {
        width: 285px;
        color: white;
        position: absolute;
        top: 0;
        right: 0;
    }
    
    .right {
        height: 300px;
        background-color: blue;
        width: calc(50% + 1140px * 0.25);
        float: left;
        color: white;
    }
    <div class="left">
        <div class="left-content">
            Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents
        </div>
    </div>
    <div class="right">
        Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents Text Contents
    </div>

    【讨论】:

    • 感谢您抽出宝贵的时间。您是否可以建议另一种不使用 calc() 的方法?缺乏 IE8 支持可能是个问题。
    • @TylerV。我尝试了几种不使用calc() 的方法,但都没有成功。不过,要让 IE8 支持 calc,您可以use this polyfill。 polyfill 应该使这个布局在 IE8 上正常工作。
    • 在没有固定高度的情况下有什么方法可以做到这一点?如果 .left-content 具有动态高度,则 .left 不会调整。
    • 这是我的快速破解:jsfiddle.net/4w4o6fLn 不过你可能需要问另一个问题。
    • 不,这很棒。通过一些调整,它帮助解决了我在上面遇到的一些其他问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2012-07-12
    • 1970-01-01
    • 2021-05-11
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多