【问题标题】:2-Column Fixed Width Sidebar w/ Fluid Content Not Aligned Properly2 列固定宽度侧边栏,带有未正确对齐的流体内容
【发布时间】:2012-09-16 02:40:47
【问题描述】:

我在设置 2 列布局时遇到了这个问题,其中固定侧边栏浮动到右侧。我在内容容器上设置了一个边距,以便在您调整浏览器窗口大小时它会变得流畅。

但内容部分实际上位于侧边栏“上方”,因此新内容会将侧边栏推到页面下方。您可以看到我为基本布局设置的live demo here

我知道解决此问题的唯一方法是将侧边栏移动到我的 HTML 标记中的内容上方。但这并不是真正的修复,老实说,我希望我的内容出现在侧边栏之前,因为这就是文档的结构。有没有办法让浮动侧边栏与内容区域在顶部对齐?

【问题讨论】:

    标签: css layout css-float positioning sidebar


    【解决方案1】:

    看看媒体对象http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/

    演示:http://dabblet.com/gist/3729182

    由于您没有提供列的宽度,我使用了自己的百分比。一旦侧边栏变得太薄,您可以使用媒体查询来清除它。

    【讨论】:

    • 我更新了new dabblet,它更好地展示了我当前的问题。右侧边栏应浮动,宽度为 250 像素。请注意,如果您将右 div 剪切/粘贴到左 div 上方,它将完美浮动,否则它会落在下方。
    • 那是因为您从左列中删除了浮动,这将其恢复为默认属性“显示:块”,因此右列清除。右列不需要'float:right',因为它被赋予'overflow:hidden',更多详细信息在我提供的媒体对象链接中。非常值得一读,可以避免重复代码。但由于您想保留源顺序,您可以将列包装在 .container 中,并通过一些小技巧制作一个流畅的网格:dabblet.com/gist/3730377
    • 这里发生的事情是 .container 有一个 'padding-right' 等于右列的宽度;右列给出'right:-100%',将其拉到填充区域。这不一定是不好的做法,但在我们掌握 'calc()' 和 'flexbox' 之前,我们将不得不处理这些 hack。
    • 啊,非常感谢!是的,我确实遵循这种方法,并且我认为使用负整数进行定位没有任何问题。它似乎工作得很好,所以太好了!再次感谢您的帮助,我将使用此新代码进行更多尝试
    • 很高兴它有帮助。不要停止研究! :)
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多