左侧定宽,右侧自适应布局:
1 | <!-- html --> |
1 | .left{ |
flex 布局
1 | body{ |
1 | flex: none | [ <'flex-grow'> <'flex-shrink'> <'flex-basis'> ] |
默认 0 1 auto
- flex-grow:定义项目的放大比例,默认为0
- flex-shrink:定义了项目的缩小比例,默认为1
- flex-basis:定义了在分配多余空间之前,项目占据的主轴空间(main size)
左侧浮动,右侧width:100%
1 | .left{ |
左侧绝对定位,右侧设置margin-left
1 | body{ |
两侧都是绝对定位
1 | body{ |
两侧都左浮动,右侧设置calc宽度
1 | .left{ |
负margin
首先需要把右侧自适应部分用容器包起来并放在前面:
1 | <div class="wrapper"> |
1 | .wrapper{ |
双飞翼布局(三栏布局)
flex布局
1 | <div class="left">left</div> |
1 | body{ |
负margin
原理同左侧定宽,右侧自适应布局的负margin方法。
将content放置在文档流前面可以让其优先渲染。
1 | <div class="wrapper"> |
- 三者都设置向左浮动。
- 设置wrapper宽度为100%。
- 设置 负边距,left设置负左边距为100%,right设置负左边距为负的自身宽度。
- 设置content的margin值给左右两个子面板留出空间。
1 | .wrapper{ |
计算宽度calc()
1 | <div class="left">left</div> |
1 | .left{ |