多列布局-两列-定宽与自适应

html文件如下

<div class="parent">
    <div class="left">left</div>
    <div class="right">right</div>
</div>

1 float+margin

.left{
    float: left;
}
.right{
    margin-left:120px;
}

2 float+overflow

.left{
    float: left;
    margin-right: 20px;
}
.right{
    overflow: hidden;
}

3 table

.parent{
    display: table;width:100%;
    table-layout: fixed;//加速table的渲染;实现了布局优先
}
.left{
    display: table-cell;
    padding-right:20px;
    background-clip: content-box;
}
.right{
    display: table-cell;
}

发现了一个问题, background-color填充颜色的范围包括元素的内容、内边距和边框区域,扩展到元素边框的外边界(但不包括外边距)。如果边框有透明部分(如虚线边框),会透过这些透明部分显示出背景色。这样就导致padding20的部分也添加了颜色,所以用background-clip: content-box;来改善,但是兼容性差。
4 flex

.parent{
    display: flex;
}
.right{
    flex: 1;    margin-left: 20px;
}

flex是根据内容做自适应的,所以性能可能会是一个问题,所以适用于做一些小范围的布局(内容不太复杂)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,805评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,337评论 0 11
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,657评论 0 7
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,806评论 1 92
  • 又一个炎炎夏日,又度过一个短暂的假期。空气中弥漫着一种味道——初三的味道,初三已经在我不经意之间,悄悄向我袭来,向...
    你不懂我的感受阅读 384评论 1 0