在看 imooc使用CSS布局 的时候遇到这样的设定:三列布局,左右定宽,中间要求自适应,做了一下,感觉要考虑几个点:
- 重点是中间的自适应,在两端定宽的前提下要实现中间自适应,视频给出的方案是使用水平外边距实现,即左右外边距分别设置为为左右两列预留宽度;
- 如果选择使用外边距实现自定义,则左右两列不能使用浮动,否则会因浮动框的特性变成多行;
- 此时要保证三列同行,则左右两列只能选择绝对定位,将其从普通文档流中释放以避免互相影响;
- 再来就是一些细节,比如左右两列定宽以后,如果直接应用padding,就会出现内容相交的情况,使用嵌套容器在内层设置padding则不会,为什么?
又比如页面缩放到一定程度可能出现内容挤到一起,使用overflow可以解决么?
设置了背景色的话,可能出现三列高度不一致的情况,对于设置了相同高度的列则可能会出现内容溢出的情况,有没有方法可以实现自动基于最高列的高度的等高分列呢?
找到一种解决方案是 张鑫旭 - 纯CSS实现侧边栏/分栏高度自动相等