How to float an element left with full height of the wrapper?
HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Foo Text row 1 Foo Bar Text row 1 Text row 2 Text row 3 |
CSS:
1 2 3 4 5 6 7 8 9 | .wrapper { overflow:hidden; } .left { width:80px; float:left; height:100%; } |
我怎样才能给浮动 div package器的完整高度(其高度是变化的)?
没有jQuery可以吗?
测试:http://jsfiddle.net/Q6B43/
在表格中,每行的每个单元格都具有相同的高度。
1 2 3 4 5 6 7 | .wrapper { display: table; width: 100%; } .left, .right { display: table-cell; } |
这是我认为最好的解决方案,但在IE8之前不兼容。
这是这个解决方案的小提琴。
使用绝对定位
绝对定位元素尊重它们的相对父元素
1 2 3 4 5 6 7 8 9 | .wrapper { position: relative; padding-left: 85px; } .left { position: absolute; left: 0; top: 0; } |
通常我不建议在大多数情况下使用绝对定位。但是因为你有一个固定的
控制
这是您的 Fiddle 的更新。
这太新了,我不建议现在使用它,但只是为了完整。您可以使用 CSS3
1 2 3 | .wrapper { display: flex; } |
小提琴(在当前的 Chrome 和 Firefox 中测试)。
甚至比 flexbox 更新,CSS
1 2 3 4 5 6 7 8 9 10 11 12 | .wrapper { display: grid; grid-template-areas: 'left right'; } .left { grid-area: left; } .right { grid-area: right; } |
浏览器兼容性很少,如果您返回查看版本。另外,我认为对于OP的场景来说会有点矫枉过正,但是对于以后更复杂的布局麻烦,这是一个非常强大的东西。
在小提琴中看到它。
添加:
1 | body, html { height:100% } |
并给你的package器一个固定的像素高度。