CSS之垂直居中、比border更細的線、浮動清除


. 垂直居中

  寫頁面的時候,尤其像提示信息類,為了更好的視覺體驗,要求是垂直居中。列出以下三種實現方式:

  第一種:居中的部分絕對定位並平移本身寬高的各一半

    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%, -50%);

  注意:由於僅僅absolute的定位會引起脫離文檔流,如果居中部分的父元素不是占滿整個可視區域,不要忘記對父元素做相對定位或絕對定位的處理(即position:relative;或者position:absolute;)。

  第二種:采用彈性布局與外邊距的方式

    父元素:

      display: flex;

    子元素:

      margin: auto;

  第三種:采用彈性布局的方式, 並設置父元素的主軸 與交叉軸均為居中   

    父元素:  

      display: flex;
      justify-content: center;
      align-items: center;

. 比border更細的線

  在一些頁面的分界線,使用border設置即便設寬度為1px,仍顯得粗。解決方法如下:  

  .element:after {
    content:"";
    width:200%;//由於整體縮為原來的一半,寬度采用原先的2倍
    height:200px;
    position:absolute;
    top:0;
    left:0;
    border-bottom:1px solid #666;
    box-sizing:border-box;
    -webkit-transform:scale(0.5);
    -webkit-transform-origin:0 0;
    transform:scale(0.5);
    transform-origin:0 0;
  }        

  注意:結合父元素的是否完全占據整個頁面,設置父元素的定位。

.  浮動清除

  在設置元素float:left;或者float:right;時會引起元素脫離文檔流。可采用以下四種方式來解決:

  第一種:為父元素設置高度,需要知道設置成浮動的子元素 的高度。       

  第二種:父元素設置溢出隱藏,overflow:hidden;

  第三種:在設置浮動的元素新添加同級,並設置clear:both;   

  第四種:為浮動元素的父元素添加偽元素(:after)

    .parent:after {

         content: "";

        display: block;

         height: 0;

        clear: both;

         visibility: hidden;    

       }

    .parent{

      zoom:1;

    }

        

 提示:在上述的內容中,有些兼容的部分沒有一一列出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM