CSS布局

作者: sxfshdf | 来源:发表于2018-08-29 00:47 被阅读0次

    水平居中

    1. 行内元素的居中

    对父元素设置 text-align:center;

    .parent {
      text-align: center;
    }
    
    2. 块状元素居中
    • 已定宽块状元素,设置左右 margin值为 auto;
    .parent {
      height: 100px;
      width: 400px;
      background: black;
    }
    
    .child {
      width: 100px;
      height: 100px;
      background: #4fc08d;
      margin: 0 auto;
    }
    
    • 未定宽块状元素,设置子元素为display:inline,然后在父元素上设置text-align:center;
    .parent {
      height: 100px;
      width: 400px;
      background: black;
      text-align: center;
    }
    
    .child {
      width: 100px;
      height: 100px;
      background: #4fc08d;
      display: inline-block;
    }
    

    垂直居中

    1. 内联元素
    • 父元素一定,子元素为单行内联文本:设置父元素的height等于行高line-height;
    .parent {
      height: 40px;
      line-height:40px;
    }
    
    • 父元素一定,子元素为多行内联文本:设置父元素的display:table-cell或inline-block,再设置vertical-align:middle;
    .parent {
      height: 80px;
      width: 200px;
      display: table-cell;
      vertical-align: middle;
      background-color: red;  
    }
    
    2. 块状元素

    设置子元素position:fixed(absolute),然后设置margin:auto;

    左右布局

    1. 左右固定宽度
    • 子元素宽度总和不能大于父元素的宽度。
    <body>
      <div>
        <div class="left"></div>
        <div class="right"></div>  
      </div>
    </body>
    </html>
    
    div {
      width: 600px;
      height: 100%;
      background-color: #efefef;
    }
    .left {
      background-color: lightblue;
      width: 180px;
      height: 100%;
      float: left;
    }
    .right {
      background-color: lightgreen;
      width: 400px;
      height: 100%;
      float: left;
      margin-left: 20px;  
      }
    
    2. 左侧固定宽度,右侧自适应
    • 左侧设置固定宽度并设置浮动float:left;
    • 右侧不设置宽度,只间距margin-left(左侧栏宽度+左右栏之间间距)。
    <body>
      <div>
        <div class="left"></div>
        <div class="right"></div>  
      </div>
    </body>
    </html>
    
    div {
      width: 600px;
      height: 100%;
      background-color: #efefef;
    }
    .left {
      background-color: lightblue;
      width: 180px;
      height: 100%;
      float: left;
    }
    .right {
      background-color: lightgreen;
      height: 100%;
      margin-left: 190px;  
    }
    
    3. 左右自适应
    • 不要使用固定值,用百分比来设置宽度
    <body>
      <div>
        <div class="left"></div>
        <div class="right"></div>  
      </div>
    </body>
    </html>
    
    div {
      width-max: 600px;
      height: 100%;
      background-color: #efefef;
    }
    .left {
      background-color: lightblue;
      width: 20%;
      height: 100%;
      float: left;
    }
    .right {
      background-color: lightgreen;
      height: 100%;
      margin-left: 22%;
    }
    

    效果截图


    左中右布局

    1. 左右固定宽度,中间宽度自适应
    • 使用浮动来布局
    <body>
      <div>
        <div class="left"></div>
        <div class="right"></div>  
        <div class="middle"></div>
      </div>
    </body>
    </html>
    
    div {
      width: 600px;
      height: 100%;
      background-color: #efefef;
    }
    .left {
      background-color: lightblue;
      width: 100px;
      height: 100%;
      float: left;
    }
    .middle {
      background-color: orange;
      height: 100%;
    }
    .right {
      background-color: lightgreen;
      width: 100px;
      height: 100%;
      float: right;
    }
    

    效果截图


    相关文章

      网友评论

          本文标题:CSS布局

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