• CSS布局


    一 居中布局

             1水平居中,需求:里面元素宽度不定外面元素宽度不定

             <div class="parent">

                      <div class="child">DEMO</div>

    </div>

             方案一:

    .parent{text-align: center;}

                      .child{display: inline-block;} //宽度根据内容而定

             方案二:

    .child{display: table;margin: 0 auto;} //display位table的元素宽度也跟着内容定

             方案三:

    .parent{height:1.5em;}

                      .parent{position: relative;}

                      .child{position: absolute;left: 50%;transform: translateX(-50%);}

                       // 绝对定位宽度由内容撑开

             方案四:

    .parent{display: flex;justify-content: center;}

    .child{margin: 0 auto;} //flex宽度由内容撑开

     

             2垂直居中,需求:父容器高度不固定,子容器高度不固定

    方案一:

    .parent{4em;height:500px;}

                      .child{100%;}

                      .parent{display: table-cell;vertical-align: middle;} 

    方案二:

    .parent{4em;height:500px;}

             .child{100%;}

             .parent{position: relative;}

             .child{position: absolute;top: 50%;transform: translateY(-50%)};

             方案三:

    .parent{4em;height:500px;}

                      .child{100%;}

                      .parent{position: relative;}

                      .child{position: absolute;top: 50%;transform: translateY(-50%);}

     

             3水平和垂直都居中,需求:父子宽高未定

    方案一:

             .parent{200px;height:300px;}

             .parent{text-align: center;display: table-cell;vertical-align: middle;}

             .child{display: inline-block;}

    方案二:

             .parent{200px;height:300px;}

             .parent{position: relative;}

             .child{position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);}

             方案三:

             .parent{200px;height:300px;}

             .parent{display: flex;justify-content: center;align-items: center;}

     

     

    二:多列布局

             需求1:定宽 + 自适应

    <div class="parent">

             <div class="left">

                       <p>left</p>

             </div>

             <div class="right">

                       <p>right</p>

                       <p>right</p>

             </div>

    </div>

    1

             .left{float: left; 100px;}

             .right{margin-left: 120px;}

    2

             .left{float: left; 100px;position: relative;}

             .right-fix{float: right; 100%;margin-left: -100px;}

             .right{margin-left: 120px;}

    3

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

             .right{overflow: hidden;}

    4

             .parent{display: table; 100%;table-layout: fixed;}

             .left,.right{display: table-cell;}

             .left{ 100px;padding-right: 20px;}

     

    需求2:两列定宽和一列自适应

             解决方案和一列定宽和一列自适应一样

     

    需求3:一列不定款一列自适应

    1

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

             .right{overflow: hidden;}

             .left p{ 200px;}

    2

             .parent{display: table; 100%;}

             .left,.right{display: table-cell;}

             .left{ 0.1%;padding-right: 20px;}

             .left p{200px;}

    3

             .parent{display: flex;}

             .left{margin-right: 20px;}

             .right{flex: 1;}

             .left p{ 200px;}

    4

             .left,.center{float: left;margin-right: 20px;}

             .right{overflow: hidden;}

             .left p,.center p{ 100px;}

     

    需求4:等分布局

    <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>

    1

             .parent{margin-left: -20px;}

             .column{float: left; 25%;padding-left: 20px;box-sizing: border-box;}

    2

             .parent-fix{margin-left: -20px;}

             .parent{display: table;100%;table-layout: fixed;}

             .column{display: table-cell;padding-left: 20px}

    3

             .parent{display: flex;}

             .column{flex: 1;}

             .column+.column{margin-left:20px;}

    剑还未备好,身已在江湖
  • 相关阅读:
    wikiquote
    zz 勵志貼,成功是努力加对的方向
    # 电纸书
    # 崔寶秋
    好的程序員
    深度学习引擎
    再见乱码:5分钟读懂MySQL字符集设置
    Linux基础:用tcpdump抓包
    Linux基础:文件查找find
    Linux基础:xargs命令
  • 原文地址:https://www.cnblogs.com/cjie/p/6088804.html
Copyright © 2020-2023  润新知