CSS-多列布局

作者: Crisyhuang | 来源:发表于2018-06-21 16:37 被阅读0次

html 结构:

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

css代码:

  • 定宽+自适应
  1. float + margin
.left{
    float: left;
    width: 100px;
}
.right{
    margin-left: 120px;
}
  1. float + overflow
.left{
    float: left;
    width: 100px;
    margin-right: 20px;
}
.right{
    overflow: hidden;
}
  1. table
.parent{
    display: table;
    width: 100%;
    table-layout: fixed; /* 布局优先,子列单元格会等宽 */
}
.left,.right{
    display: table-cell;
}
.left{
    width: 100px;
    padding-right: 20px;
}
  1. flex
.parent{
    display: flex;
}
.left{
    width: 100px;
    margin-right: 20px;
}
.right{
    flex: 1; /* 会自动分配剩余空间 */
}
  • 不定宽+自适应
  1. float + overflow
.left{
    float: left;
    margin-right: 20px;
}
.right{
    overflow: hidden;
}
.left p{
    width: 200px;
}
  1. table
.parent{
    display: table;
    width: 100%;
}
.left,.right{
    display: table-cell;
}
.left{
    width: 0.1%; /* 内容优先,由内容决定宽度 */
    padding-right: 20px;
}
.left p{
    width:200px;
}
  1. flex
.parent{
    display: flex;
}
.left{
    margin-right: 20px;
}
.right{
    flex: 1;
}
.left p{
    width: 200px;
}
  • 等宽布局
<div class="parent-fix">
    <div class="parent">
        <div class="column"><p>1</p></div>
        <div class="column"><p>2</p></div>
        <div class="column"><p>3</p></div>
        <div class="column"><p>4</p></div>
    </div>
</div>
  1. float
.parent{
    margin-left: -20px;
}
.column{
    float: left;
    width: 25%;
    padding-left: 20px;
    box-sizing: border-box;
}
  1. table
.parent-fix{
    margin-left: -20px;
}
.parent{
    display: table;
    width:100%;
    table-layout: fixed;
}
.column{
    display: table-cell;
    padding-left: 20px;
}
  1. flex
.parent{
    display: flex;
}
.column{
    flex: 1;
}
.column+.column{
    margin-left:20px;
}
  • 等高布局
  1. table
.parent{
    display: table;
    width: 100%;
    table-layout: fixed;
}
.left,.right{
    display: table-cell;
}
.left{
    width: 100px;
    border-right: 20px solid transparent;
    background-clip: padding-box;
}
  1. flex
.parent{
    display: flex;
}
.left{
    width: 100px;
    margin-right: 20px;
}
.right{
    flex: 1;
}
  1. float(伪等高)
.parent{
    overflow: hidden;
}
.left,.right{
    padding-bottom: 9999px;
    margin-bottom: -9999px;
}
.left{
    float: left;
    width: 100px;
    margin-right: 20px;
}
.right{
    overflow: hidden;
}

相关文章

  • CSS-多列布局

    html 结构: css代码: 定宽+自适应 float + margin float + overflow ta...

  • 页面架构

    布局解决方案 水平居中布局 垂直居中布局 水平垂直都居中的布局 多列布局 多列等分布局 多列等高布局 在多列布局的...

  • CSS-多列布局2-断行

    1、column-break-inside 2、实例效果 源代码: 运行效果:

  • CSS-多列布局1-概述

    1、多列布局概述 通过 CSS3,您能够创建多个列来对文本进行布局 - 就像报纸那样! 2、常用属性 3、常用属性...

  • CSS3开发常用核心技能

    基础网页布局 布局分类 一列布局 两列布局 三列布局 多列布局 一列布局: 二列布局: 三列布局: ⚠️ midd...

  • CSS-多列布局3-瀑布流

    1、实现效果 2、实现思路 (1) 使用多列布局进行布局。(2) 使用column-break-inside 防止...

  • CSS-布局7-多列自动剧中

    1、实现效果   高度、宽度相等的盒子,在不同的的分辨率下,显示可以容纳的最多盒子,超出的盒子自动在下一行对齐排列...

  • css常见布局(二)

    采用flex实现两列,三列等多列的布局 一、两列布局 二、三列布局

  • CSS-三列布局【Collection】

    如何在兼容所有浏览器的前提下,实现一个不定宽度的容器被分为左中右三列,左右两列定宽100px,中间列自适应剩余宽度...

  • 多列布局

    column-width: 列的宽度 column-count: 列的数量 column-gap: 列与列之间...

网友评论

    本文标题:CSS-多列布局

    本文链接:https://www.haomeiwen.com/subject/dclaeftx.html