css 新單位 fr


fr是css剛出的一個新的單位,目前經過測試在chrome和firefox是可以支持的

舉個案列,拿一個網格布局來說吧

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }
        .grid {
            height: 500px;
            width: 500px;
            background: #ccc;
            margin: 20px auto;
            overflow: auto;
            display: grid;
            grid-template-columns: repeat(4, 25%);
            grid-column-gap: 10px;
        }
        .column {
            background: #f66;
        }
    </style>
</head>
<body>
    <div class="grid">
        <div class="column">1</div>
        <div class="column">2</div>
        <div class="column">3</div>
        <div class="column">4</div>
    </div>
</body>
</html>

看一下效果

這時會發現下面出現了滾動條,如果不是4個網格而是11個網格呢,那計算起來就非常麻煩了,那個網格布局還提供了另一種寫法,就是把算數交給計算機來處理,那就改成這樣

grid-template-columns: repeat(4, calc(100%/4));

這樣還是有滾動條,那就再進一步優化

grid-template-columns: repeat(4, calc((100% - 10px * 3)/ 4));

這樣寫就可以消除滾動條,這只是對於少量的網格布局適用,對於無數個網格怎么辦呢,這時我們的 fr 單位就出場了

我們來看一個復雜的列子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }
        .grid {
            height: 500px;
            width: 500px;
            background: #ccc;
            margin: 20px auto;
            overflow: auto;
            display: grid;
            grid-template-columns: 100px repeat(11, 1fr);
            grid-column-gap: 10px;
        }
        .column {
            background: #f66;
        }
    </style>
</head>
<body>
    <div class="grid">
        <div class="column">1</div>
        <div class="column">2</div>
        <div class="column">3</div>
        <div class="column">4</div>
        <div class="column">5</div>
        <div class="column">6</div>
        <div class="column">7</div>
        <div class="column">8</div>
        <div class="column">9</div>
        <div class="column">10</div>
        <div class="column">11</div>
        <div class="column">12</div>
    </div>
</body>
</html>

看一下效果

用了fr 這個單位就不用去計算了,瀏覽器會自動去適配,是不是很人性化


免責聲明!

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



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