将浮动div保留在页面约束内

Øystein阿蒙森

我不确定如果没有javascript是否可以完成此操作,但我希望它有解决方案。考虑一下这个小提琴:http : //jsfiddle.net/PPeYH/

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
.content {
    border: 1px solid;
    min-height: 3em;
}
.container {
    max-width: 600px;
    margin: 0 auto;
    overflow: hidden;
    clear: both;
}
#placeholder-body {
    position: relative;
    border: 0;
}
.split-tile {
    float: left;
}
.split-left {
    width: 60%;
}
.split-left .content {
    margin-left: auto;
    margin-right: 0;
    max-width: 360px;
}
.split-right {
    width: 40%;
}
.split-right .content {
    margin-left: 0;
    margin-right: auto;
    max-width: 240px;
}

<div><div class="content container">Header</div></div>
<div id="placeholder-body">
    <div><div class="content container">Some content</div></div>

    <div class="tile-1 split-tile split-left">
        <div class="content">60% width.</div>
    </div>
    <div class="tile-2 split-tile split-right">
        <div class="content">40%</div>
    </div>

    <div><div class="content container">Some content</div></div>
</div>
<div><div class="content container">Footer</div></div>

您在此处看到的结构是RWD结构的简化版本。我们需要整个布局保持在边界之内。如果向上或向下更改浏览器宽度,则会看到标记为“ 60%”和“ 40%”的div不遵守其余div的边界。

您可能会问:“为什么不将60%和40%的div包裹在一个容器中?” 嗯,这里介绍的DOM结构是在已经很复杂的系统中使用CMS进行布局的。要改变这一点,不仅仅需要一点重构。我将不得不按照原样布置瓷砖。

所以我的问题是 有没有一种方法可以在中间div上实现60/40拆分,从而只使用CSS就能保持其余布局的左右边缘?

更新:我也不能将#placeholder-body限制为最大宽度,因为我的设计师希望我为结构中的某些div设置全角背景色。

克里斯托弗

如果可以修改#placeholder-body样式,则解决方案很简单:

#placeholder-body {
    max-width: 600px;
    margin: auto;
}

工作示例:http : //jsfiddle.net/PPeYH/1/

另一种可能性:

.split-tile {
    margin: auto;
    max-width: 600px;
    width: 100%;
}
.split-left .content {
    width: 60%;
}
.split-right .content {
    margin-left: auto;
    width: 40%;
}
.split-left {
    height: 0;
}

此处未使用浮点数,但左标题的高度设置为0,但可见溢出,因此看起来不错。问题是当它的内容比正确标题中的内容长时。您也可以在上设置负的上边距,split-right而不是在上将height设置为0 split-left,但是必须知道确切的高度。

工作示例:http : //jsfiddle.net/PPeYH/3/

除此之外,还可以calc通过CSS3进行媒体查询

@media screen and (min-width: 638px) {
    .split-left {
        width: 360px;
        margin-left: calc(50% - 300px);
    }
    .split-left .content {
        width: 360px;
    }
    .split-right {
        width: 240px;
        margin-right: calc(50% - 300px);
    }
    .split-right .content {
        margin-left: 0;
        width: 240px;
    }   
}

工作示例:http : //jsfiddle.net/PPeYH/5/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将div元素保留在页面底部

来自分类Dev

如何将图片保留在div内?

来自分类Dev

将信息保留在页面顶部

来自分类Dev

将文本保留在div中

来自分类Dev

将Div保留在页面底部,并在其中带有图像的右侧

来自分类Dev

需要使DIV显示为浮动页脚,当调整窗口大小时,该页脚将保留在iframe的前面

来自分类Dev

缩放时将 d3 地图保留在 div 内

来自分类Dev

将WebView保留在当前页面上

来自分类Dev

将文字保留在移动设备的页面底部

来自分类Dev

将文本保留在UITableViewCell内的UITextView中

来自分类Dev

如何将动画div保留在容器中

来自分类Dev

在更改图像或重新加载页面时将页面保留在一个地方?

来自分类Dev

导航到其他页面时,将值保留在页面中

来自分类Dev

将选择保留在列表中

来自分类Dev

将事件保留在Fullcalendar中

来自分类Dev

刷新页面时,请确保留在相同的div区域

来自分类Dev

重新加载页面后,将所选项目保留在导航栏中

来自分类Dev

将Microsoft Word 2010的所有行保留在同一页面上

来自分类Dev

重定向后将php值保留在页面中

来自分类Dev

希望将数据保留在asp.net页面上

来自分类Dev

使用.NET MVC中的Response.Filter将所有JavaScript保留在页面底部

来自分类Dev

PHP 重定向但将页面保留在历史记录中

来自分类Dev

页面重新加载后如何将文件保留在表单集中?. 姜戈

来自分类Dev

使用浮动图像时,段落或div是否可以整体保留在同一列中?

来自分类Dev

使用jquery删除div,但将div保留在其中

来自分类Dev

使用jquery删除div,但将div保留在其中

来自分类Dev

如何将图片保留在左侧,将内容保留在右侧?

来自分类Dev

将变量保留在使用它们的循环范围内

来自分类Dev

%width将元素放置在容器外,相同的px宽度将其保留在容器内

Related 相关文章

  1. 1

    如何将div元素保留在页面底部

  2. 2

    如何将图片保留在div内?

  3. 3

    将信息保留在页面顶部

  4. 4

    将文本保留在div中

  5. 5

    将Div保留在页面底部,并在其中带有图像的右侧

  6. 6

    需要使DIV显示为浮动页脚,当调整窗口大小时,该页脚将保留在iframe的前面

  7. 7

    缩放时将 d3 地图保留在 div 内

  8. 8

    将WebView保留在当前页面上

  9. 9

    将文字保留在移动设备的页面底部

  10. 10

    将文本保留在UITableViewCell内的UITextView中

  11. 11

    如何将动画div保留在容器中

  12. 12

    在更改图像或重新加载页面时将页面保留在一个地方?

  13. 13

    导航到其他页面时,将值保留在页面中

  14. 14

    将选择保留在列表中

  15. 15

    将事件保留在Fullcalendar中

  16. 16

    刷新页面时,请确保留在相同的div区域

  17. 17

    重新加载页面后,将所选项目保留在导航栏中

  18. 18

    将Microsoft Word 2010的所有行保留在同一页面上

  19. 19

    重定向后将php值保留在页面中

  20. 20

    希望将数据保留在asp.net页面上

  21. 21

    使用.NET MVC中的Response.Filter将所有JavaScript保留在页面底部

  22. 22

    PHP 重定向但将页面保留在历史记录中

  23. 23

    页面重新加载后如何将文件保留在表单集中?. 姜戈

  24. 24

    使用浮动图像时,段落或div是否可以整体保留在同一列中?

  25. 25

    使用jquery删除div,但将div保留在其中

  26. 26

    使用jquery删除div,但将div保留在其中

  27. 27

    如何将图片保留在左侧,将内容保留在右侧?

  28. 28

    将变量保留在使用它们的循环范围内

  29. 29

    %width将元素放置在容器外,相同的px宽度将其保留在容器内

热门标签

归档