[!NOTE]
CSS選擇器的優先級:!important > 行內樣式 > ID選擇器 > 類選擇器 > 標籤選擇器 > 其餘css
<style> a{color: yellow;} /*權值:0,0,0,1*/ div a{color: green;} /*權值:0,0,0,2*/ .demo a{color: black;} /*權值:0,0,1,1*/ .demo input[type="text"]{color: blue;} /*權值:0,0,2,1*/ .demo *[type="text"]{color: grey;} /*權值:0,0,2,0*/ #demo a{color: orange;} /*權值:0,1,0,1*/ div#demo a{color: red;} /*權值:0,1,0,2*/ </style> <body> <a href="">第一條應該是黃色</a> <!-適用第1行規則-> <div class="demo"> <input type="text" value="第二條應該是藍色" /><!-適用第四、5行規則,第4行優先級高-> <a href="">第三條應該是黑色</a><!-適用第二、3行規則,第3行優先級高-> </div> <div id="demo"> <a href="">第四條應該是紅色</a><!-適用第五、6行規則,第6行優先級高-> </div> </body>
[!NOTE]
減小HTTP的請求次數,提升加載的性能
在一些狀況下能夠減小圖片的大小
關鍵在於對background-position概念的理解和使用html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>購物車特效</title> <style type="text/css"> *{ margin: 0; padding: 0; } .select{ margin: 0 auto; display: block; width: 1000px; height: 35px; background-color:#F5FFFA; } div{ width: 42px; height: 34px; background-image: url(amazon-sprite_.png); background-repeat: no-repeat; background-position: -8px -335px; } div:hover{ background-image: url(amazon-sprite_.png); background-repeat: no-repeat; background-position: -55px -335px; } </style> </head> <body> <a href="https://www.baidu.com" target='_blank' class="select"> <div></div> </a> </body> </html>
[!NOTE]
宣傳/品牌/banner等固定文案
字體圖標中使用css3
<style> @font-face{ font-family: '字體名稱隨便起'; src: url('../font/字體名稱.eot'); src:url('../font/字體名稱.woff') format('woff'), url('../font/字體名稱.ttf') format('truetype'), url('../font/字體名稱.svg') format('svg'); } /* 使用方法:html中的代碼中加一個h1或者其餘的,裏面寫你本身想要的特殊文字 */ h1{ font-size:36px; color:#ccc; font-family: "字體名稱隨便起"; } </style>
Base64就是一種基於64個可見字符(26個大寫字母,26個小寫字母,10個數字,1個+,一個 / 恰好64個字符)來表示二進制數據的表示方法。web
[!NOTE]
擴展:不可見字符其實並非不顯示,只是這些字符在屏幕上顯示不出來,好比:換行符、回車、退格......字符。svg
Base64字符表中的字符本來用6個bit就能夠表示,如今前面添加2個0,變爲8個bit,會形成必定的浪費。所以,Base64編碼以後的文本,要比原文大約三分之一性能
[!NOTE]
兩個字節:兩個字節共16個二進制位,依舊按照規則進行分組。此時總共16個二進制位,每6個一組,則第三組缺乏2位,用0補齊,獲得三個Base64編碼,第四組徹底沒有數據則用「=」補上。所以,上圖中「BC」轉換以後爲「QKM=」;
一個字節:一個字節共8個二進制位,依舊按照規則進行分組。此時共8個二進制位,每6個一組,則第二組缺乏4位,用0補齊,獲得兩個Base64編碼,然後面兩組沒有對應數據,都用「=」補上。所以,上圖中「A」轉換以後爲「QQ==」;字體
<style> li:first-child { height: 20px; width: 100px; background-color: #139aff; } li:last-child { height: 60px; width: 100px; background-color: #89ff56; line-height: 60px; } p:first-of-type { background-color: red; } p:last-of-type { background-color:deeppink; } /*每一個p標籤以前新增一個Hello文本*/ .container p::before { content: 'Hello'; } .container p::after { content: 'Thanks'; } .container p::first-letter { font-size: 32px; } .container p::first-line { background-color: #f1ffad; } /*全部選中的元素會變色*/ .container p::selection { background-color: #1025ff; color: red; } </style> <body> <ul> <li>111</li> <li>222</li> <li>333</li> <li>444</li> <li>555</li> </ul> <div> <h1>h1文本</h1> <p>p文本1</p> <p>p文本2</p> <p>p文本3</p> <p>p文本4</p> </div> <div class="container"> <p> css1 </p> <p> css2 </p> <p> css3 </p> <p>我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素,我在學僞元素</p> </div> </body> </html>
[!NOTE]編碼
- label[for]和id
- 隱藏原生的input
- :checked + label 選擇器
<style> #value1{ display: none; } #value1:checked+label{ color:blue; background: #4cda60; } #value1:checked+label:before{ left:31px; } #value1+label{ cursor: pointer; color:red; display: block; width:60px; height: 30px; background: #fafbfa; border-radius: 15px; position: relative; box-shadow:inset 0 0 0 0 #eee,0 0 1px rgba(0,0,0,0.4); transition: background 0.1s; -webkit-transition: background 0.1s; -moz-transition: background 0.1s; -o-transition: background 0.1s; } #value1+label:before{ content:''; position: absolute; background: #fff; top:1px; left:1px; width: 28px; height: 28px; border-radius: 50%; box-shadow:0 3px 1px rgba(0,0,0,0.05), 0 0 1px rgba(0,0,0,0.3); transition: left 0.1s; -webkit-transition: left 0.1s; -moz-transition: left 0.1s; -o-transition: left 0.1s; } </style> <body> <input type="checkbox" name="timeType" value="1" id="value1" checked="checked"/> <label for="value1"></label> </body>