CSS之常见布局解决方案

分享一下我一年前端自学路上的学习笔记。若有侵权,请联系我,我立即删除或标明出处。


CSS布局是每个前端开发工程师的基本功。下面我列出一些常见布局及解决方案。代码不完整,我只写出重要代码。


水平居中布局

//简单的写一下HTML结构
<div class="parent">
    <div class="child">水平居中布局</div>
</div>
  1. margin+定宽 .child{width: 100px; margin: 0 auto;}
  2. table+margin .child{display: table; margin: 0 auto;}
  3. inline-block+text-align .parent{text-align: center;} .child{display: inline-block}
  4. absolute+margin-left .parent{position: relative;} .child{position: absolute; left: 50%; width: 100px; margin-left: -50px;}
  5. absolute+transform .parent{position: relative;} .child{position: absolute; left: 50%; transform: translateX(-50%);}
  6. flex+justify-content .parent{display: flex; justify-content: center;}

垂直居中布局

//简单的写一下HTML结构
<div class="parent">
    <div class="child">垂直居中布局</div>
</div>
  1. table-cell+vertical-align .parent{display: table-cell; vertical-align: middle;}
  2. absolute+transform .parent{position: relative;} .child{position: absolute; top: 50%; transform: translateY(-50%);}
  3. flex+align-items .parent{display: flex; align-items: center;}

水平垂直居中

//简单的写一下HTML结构
<div class="parent">
    <div class="child">水平居中布局</div>
</div>
  1. absolute+transfrom .parent{position: relative;} .child{position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);}
  2. inline-block+text-align+table-cell+vertical-align .parent{text-align: center; display: table-cell; vertical-align: middle;} .child{display: inline-block;}
  3. flex+justify-content+align-items .parent{display: flex; justify-content: center; align-items: center;}

两栏布局,一列定宽,一列自适应

//简单的写一下HTML结构
<div class="parent">
    <div class="left">一列定宽</div>
    <div class="right">一列自适应</div>
</div>
  1. float+margin .left{float: left; width: 100px;} .right{margin-left: 100px;}
  2. float+overflow .left{float: left; width: 100px;} .right{overflow: hidden;}
  3. table .parent{distable: table; width: 100%; table-layout: fixed;} .left{display: table-cell; width: 100px;} .right{display: table-cell;}
  4. flex .parent{display: flex;} .left{width: 100px;} .right{flex: 1;}

三栏布局,左右宽度固定,中间只适应

//简单的写一下HTML结构
<div class="parent">
    <div class="child">左右定宽</div>
    <div class="center">中间自适应</div>
    <div class="right">左右定宽</div>
</div>

  1. float .left{float: left; width: 100px;} .right{float: right; width: 100px;}
  2. absolute .parent{position: relative;} .left{position: absolute; left: 0; width: 100px;} .center{position: absolute; left: 300px; right: 300px;} .right{position: absolute; right: 0; width: 100px;}
  3. table .parent{diaplay: table; width: 100%} .left{display: table-cell; width: 100px;} .right{display: table-cell; width: 100px;}
  4. flex .parent{display: flex} .left{width: 100px;} .center{flex: 1;} .right{width: 100px;}
  5. grid .parent{display: grid; grid-template-columns: 300px auto 300px;}

上面就是一些常见布局及解决方案,但要注意兼容性从而选择最合适的方案解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值