css小細節羅列,css細節羅列

來源:互聯網
上載者:User

css小細節羅列,css細節羅列

 

有空時候把一些常見可能不是每個人都知道的css小細節總結了下,共勉。

1.line-height

眾多周知,line-height是行高的意思,我們時常會使用類似line-height:24px;這樣的代碼來設定絕對的行高。但是當我們的需求改變,字型大小變動的時候,可能我們還需要再次改動行高,那麼現在我們可以使用直接設定數字來設定行高,當我們使用純數字來設定行高的時候,它相對於的是字型大小的倍數,也就是說下面的h4其實設定的行高也是12*2px就是24px。這樣設定的好處是當我們在改變字型大小的時候,行高會自動進行改變。

p{ font-size:12px; line-height:24px; }h4{ font-size:12px; line-height:2; }

 

2.backgroud-clip和backgroud-origin

background-clip: border-box|padding-box|content-box;

該屬性指定了背景在哪些地區可以顯示,但與背景開始繪製的位置無關,背景的繪製的位置可以出現在不顯示背景的地區,這時就相當於背景圖片被不顯示背景的地區裁剪了一部分一樣。簡單來說:它指定了背景可以覆蓋到哪個位置。

background-origin: padding-box|border-box|content-box;

該屬性指定了背景從哪個地區(邊框、補白或內容)開始繪製,但也僅僅能控制背景開始繪製的位置,你可以用這個屬性在邊框上繪製背景,但邊框上的背景顯不顯示出來那就要由background-clip來決定了。簡單來說:它指定了背景從哪個位置開始展示。

 3.border-radius

大家都會使用border-radius來製作圓角或者球形狀,但是很少有人知道它是可以指定角度的水平和垂直半徑,只需要我們使用 / 來分開兩個值。這樣的話我們可以輕鬆實現一個橢圓形。

.div1{width: 200px; height: 150px;border-radius: 100px/75px;background-color:#000;}

  

並且當我們使用百分比進行值的設定的時候,他會基於元素自身的寬高進行解析,也就是說其實上面的代碼可以這麼寫。

.div1{width: 200px; height: 150px;border-radius: 50%/50%;
     /* border-radius: 50%; */background-color:#000;}

  

4.animation-delay

在w3c我們可以瞭解到animation-delay 屬性定義動畫何時開始。animation-delay 值以秒或毫秒計。

並且:它提示了我們可以用負值定義這個屬性,類似當我們使用-2s定義這個屬性的時候,好像動畫開始的時候已經播放了兩秒。

 

5.box-shadow

我們都會使用box-shadow來為我們的盒子加上陰影類似這樣:box-shadow:3px 3px 4px rgba(0,0,0,.3);

但是當我們的需求是只有一個方向有陰影的時候,可能我們再加上一層結構使用溢出隱藏來實現。其實box-shadow有一個第四個個長度的參數,稱為擴張半徑,並且我們可以使用負值來對我們的模糊半徑進行反向抵消,我們看這兩個效果。

.div1{width: 200px; height: 150px;
     border: 1px solid #ddd;
box-shadow: 0 5px 4px #000;
}

  

.div1{width: 200px; height: 150px;border: 1px solid #ddd;box-shadow: 0 5px 4px -4px #000;}

  

這樣使用第四個長度參數,我們就輕鬆實現了單側陰影。而且我們還可以想到對邊兩側陰影的實現

.div1{width: 200px; height: 150px;border: 1px solid #ddd;box-shadow: 0 5px 4px -4px #000,0 -5px 4px -4px #000;}

  

 

 

 6.css三角形

 三角形是在頁面中常用的一項。有時候我們會切圖來做,但是其實類似類比下拉的那種下拉我們是可以使用簡單的css來實現的,並且數學好的話,各種角度都不在話下。

        i{ width: 0; height: 0; float: left; margin:20px; }        .up {            border-left: 20px solid transparent;            border-right: 20px solid transparent;            border-bottom: 40px solid #000;        }        .down {            border-left: 20px solid transparent;            border-right: 20px solid transparent;            border-top: 40px solid #000;        }        .left {            border-top: 20px solid transparent;            border-bottom: 20px solid transparent;            border-right: 40px solid #000;        }        .right {            border-top: 20px solid transparent;            border-bottom: 20px solid transparent;            border-left: 40px solid #000;        }        .top-left {            border-top: 40px solid #000;            border-right: 40px solid transparent;        }        .top-right {            border-top: 40px solid #000;            border-right: 40px solid transparent;        }        .bottom-left {            border-bottom: 40px solid #000;            border-right: 40px solid transparent;        }        .bottom-right {            border-bottom: 40px solid #000;            border-right: 40px solid transparent;        }        

角度來的話從下面的中就可以瞭解了。三角形的角度。。。我這裡就不多說了。。。

 

7.cursor

這裡要說的是cursor的值可不僅僅是pointer。我們可以根據不同的情境使用不同的游標,大家可以嘗試下,下方來自w3c:

描述
url

需使用的自訂游標的 URL。

注釋:請在此列表的末端始終定義一種普通的游標,以防沒有由 URL 定義的可用游標。

default 預設游標(通常是一個箭頭)
auto 預設。瀏覽器設定的游標。
crosshair 游標呈現為十字線。
pointer 游標呈現為指示連結的指標(一隻手)
move 此游標指示某對象可被移動。
e-resize 此游標指示矩形框的邊緣可被向右(東)移動。
ne-resize 此游標指示矩形框的邊緣可被向上及向右移動(北/東)。
nw-resize 此游標指示矩形框的邊緣可被向上及向左移動(北/西)。
n-resize 此游標指示矩形框的邊緣可被向上(北)移動。
se-resize 此游標指示矩形框的邊緣可被向下及向右移動(南/東)。
sw-resize 此游標指示矩形框的邊緣可被向下及向左移動(南/西)。
s-resize 此游標指示矩形框的邊緣可被向下移動(南)。
w-resize 此游標指示矩形框的邊緣可被向左移動(西)。
text 此游標指示文本。
wait 此游標指示程式正忙(通常是一隻表或沙漏)。
help 此游標指示可用的協助(通常是一個問號或一個氣球)。

 

 8.box-shadow遮罩層

如何簡單不增加元素和太多代碼的情況下實現一個遮罩層(此方案遮罩層並不能添加事件)。

    .div1{            position: absolute;            top: 50%;            left: 50%;            transform: translate(-50%, -50%);            width: 100px;            height: 100px;            background-color:#fff;            box-shadow: 0 0 0 999px rgba(0, 0, 0, 0.8);        }

 

9.steps()

steps()是一個timing function,允許我們將動畫或者過渡分割成段,而不是從一種狀態持續到另一種狀態的過渡。

steps 有兩個參數

第一個肯定是分幾步執行完

第二個有兩個值

1.start 第一幀是第一步動畫結束

2.end 第一幀是第一步動畫開始

他在我們做動畫的時候用處是十分大的,如果有興趣的同學可以移步【譯】css動畫裡的steps()用法詳解

我這裡自己也根據網上的內容做了個小demo:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style>    body{ font-family:'宋體'; }    @keyframes typing{        from { width: 0; }    }    @keyframes caret{        50%{ border-color: transparent; }    }    body{ text-align: center; }    h1{ width: 12ch; overflow: hidden; white-space: nowrap; border-right: 0.5em solid; animation: typing 3s steps(12),caret 1s steps(1) infinite; }    </style></head><body>    <h1>hello world!</h1></body></html>

 未完待續~~~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.