前端知识学习-----多列布局(1)

定宽 + 自适应 布局的几种实现:

01. float + margin

上代码:

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

        p background: #666;}
        .right > p {background: #999;}
        .left {float: left;width: 100px;}
        .right {margin-left: 120px;}

效果为:左侧定宽100px,右侧宽度自适应;

02. float + overflow

上代码:

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

p {background: #666;}
.right > p {background: #999;}
.left {float: left;width: 100px;margin-right: 20px;}
.right {overflow: hidden;}

03. table

上代码:

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

p {background: #666;}
.right > p {background: #999;}
.partent {display: table;width: 100%; /*table宽度受内容影响,需给定宽度*/
          table-layout: fixed;/*设置为布局优先,特性为下面的td元素为等宽*/}
.left,.right {display: table-cell;/*div这样设置相当于td元素*/}
.left {width: 100px;padding-right: 20px;/*td无法设置margin值*/}

04. flex

上代码:

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

p {background: #666;}
.right > p {background: #999;}
.parent {display: flex;}
.left {width: 100px;margin-right: 20px;}
.right {flex: 1;}

以上代码实现效果:
这里写图片描述

不定宽 + 自适应布局的几种实现:

01. float + overflow

上代码:

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

p {background: #666;}
.right > p {background: #999;}
.left {float: left;margin-right: 20px;}
.left > p {width: 150px;} /*此处可不加,只是为了说明左侧的宽度受内容影响*/
.right {overflow: hidden;}

02. table

上代码:

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

p {background: #666;}
.right > p {background: #999;}
.left > p {width: 150px;}/*此处可不加,只是为了说明左侧的宽度受内容影响*/
.parent {display: table;width: 100%;}
.left,.right {display: table-cell;}
.left {width: 0.1%;padding-right: 20px; }/*table下,单元格的宽度受内容影响*/

03. flex

上代码:

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

p {background: #666;}
.right > p {background: #999;}
.left > p {width: 150px;}/*此处可不加,只是为了说明左侧的宽度受内容影响*/
.parent {display: flex;}
.left {margin-right: 20px;}
.right {flex: 1; /*flex特性将剩余的部分分配给此元素*/}

以上代码实现效果:

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值