我坚持使用看似简单的两列 CSS 布局。通常,这种布局很简单,但我正在构建一个响应式站点,并且需要将列以正确的移动顺序折叠起来,并在彼此之上。

在桌面上,我需要右列固定大小,比如 200px,其余区域由左列占据。当然,我需要这些列来清除并将内容向下推送。

在移动设备上,它们只会堆叠。所以左列在右列之上。

如前所述,这种类型的布局通常只需通过 float 一列和/或设置大边距来完成,但这种方法需要在文档流中交换左右两边,并且会使折叠的移动版本变得不可能。

我什至看过显示表格和表格单元格,这在大多数情况下效果相对较好,但不幸的是,FireFox 不支持布局中的绝对定位元素,破坏了其中的一些内容。

我是一名经验丰富的开发人员,完成这件事应该比我发现的更简单吗?

最佳答案

不是一个非常优雅的解决方案,但它的工作原理。他们的关键是包装左列的内容并添加一个等于右列/侧边栏宽度的 margin-right。在右列上,设置宽度和一个负边距-左等于其宽度。

.left {
    float:left;
    width:100%;
    background-color: green;
}
.left-content {
    margin-right:120px;
}
.right {
    float:right;
    width: 120px;
    margin-left: -120px;
    background-color: red;
}

这是一个工作 fiddle
http://jsfiddle.net/heyapo/9Z363/

关于css - 两列布局,固定右列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20532575/

10-11 13:30