CSS Secrect筆記

精簡CSS

  1. 代碼如何精簡?

    • 從簡單例子彈起,最簡單的一個btn
    .btn{
        padding:4px 10px;
        border:1px solid #ddd;
        background:#59a linear-gradient(#77a0bb,#58a);
        broder-radius:5px;
        box-shadow:0 1px 5px gray;
        color: white;
        text-shadow: 0 -1px 1px #335166;
        font-size: 20px;
        line-height: 30px;
    }
    
    • 如果我們現在想改字體大小?面臨的問題是什么?
    • 可能字體變大后,line-height也會變化,看起來并不是等比放大或縮小
    • 那么我們可以用比例來控制line-height:1.5
    • 如果我們想更好的擴展該如何做,那就要搬出em或者rem了,我們可以這么寫
    padding: .3em .8em;
    border: 1px solid #446d88;
    background: #58a linear-gradient(#77a0bb, #58a);
    border-radius: .2em;
    box-shadow: 0 .05em .25em gray;
    color: white;
    text-shadow: 0 -.05em .05em #335166;
    font-size: 125%;
    line-height: 1.5;
    
  2. 合理使用簡寫

    • background和background-color的區別?其實我們上面已經看到了background-color屬性可能會被background-image屬性覆蓋
  3. 背景與邊框小知識,默認情況下,border的顏色是浮在background之上的

    盡管看起來并不像那么回事,但我們的邊框其實是存在的。默認情況下,
    背景會延伸到邊框所在的區域下層。這一點很容易驗證,給一個有背景的元
    素應用一道老土的虛線邊框,就可以看出來(參見圖 2-3)。即使你使用的是
    不透明的實色邊框,這個事實也不會有任何改變。只不過在上面的例子中,
    這個特性完全打破了我們的設計意圖。我們所做的事情并沒有讓 body 的背景
    從半透明白色邊框處透上來,而是在半透明白色邊框處透出了這個容器自己
    的純白實色背景,這實際上得到的效果跟純白實色的邊框看起來完全一樣。
    在 CSS 2.1 中,這就是背景的工作原理。我們只能接受它并且向前看。
    謝天謝地,從背景與邊框(第三版)(http://w3.org/TR/css3-background)開
    始,我們可以通過 background-clip 屬性來調整上述默認行為所帶來的不
    便。這個屬性的初始值是 border-box,意味著背景會被元素的 border box
    (邊框的外沿框)裁切掉。如果不希望背景侵入邊框所在的范圍,我們要做
    的就是把它的值設為 padding-box,這樣瀏覽器就會用內邊距的外沿來把背
    景裁切掉。

    默寫三遍,background-clip:border-box/padding-box
    demo

  4. 多邊框,我能想到的只有多個元素了,書中采用了 box-shadow,簡直 666啊
    回憶一下 box-shadow:x y 模糊 擴張半徑

    background: yellowgreen;
    box-shadow: 0 0 0 10px #655, 0 0 0 15px deeppink;
    

    box-shadow 是層層疊加的,第一層投影位于最頂
    層,依次類推。因此,你需要按此規律調整擴張半徑。比如說,在前面的代
    碼中,我們想在外圈再加一道 5px 的外框,那就需要指定擴張半徑的值為

    15px(10px+5px)。

    box-shadow 使用技巧2,如何設置單陰影,第四個參數表示擴張半徑,如果設置單負數,表示橫向或者縱向壓縮多少
    最終的解決方案來自 box-shadow 鮮為人知的第四個長度參數。它排在
    模糊半徑參數之后,稱作擴張半徑。這個參數會根據你指定的值去擴大或
    (當指定負值時)縮小投影的尺寸。舉例來說,一個 -5px 的擴張半徑會把投
    影的寬度和高度各減少 10px(即每邊各 5px)。
    從邏輯上來說,如果我們應用一個負的擴張半徑,而它的值剛好等于模
    糊半徑,那么投影的尺寸就會與投影所屬元素的尺寸完全一致。除非用偏移
    量(前兩個長度參數)來移動它,我們將完全看不見任何投影。因此,如果
    給投影應用一個正的垂直偏移量,我們就會在元素的底部看到一道投影,而
    元素的另外三側是沒有投影的,這正是我們一直苦苦追尋的效果

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、垂直對齊 如果你用CSS,則你會有困惑:我該怎么垂直對齊容器中的元素?現在,利用CSS3的Transform,...
    kiddings閱讀 3,195評論 0 11
  • 1、屬性選擇器:id選擇器 # 通過id 來選擇類名選擇器 . 通過類名來選擇屬性選擇器 ...
    Yuann閱讀 1,655評論 0 7
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,788評論 0 2
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,327評論 0 11
  • 長嘆此生多病疾,但愿來世不為人。 冥冥之中若神主,自在逍遙法度外。
    湘江隱士閱讀 269評論 0 0