說說我在最近項目中碰到的css問題吧,做爲問題知識集合總結筆記:css
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> table tbody { display: block; height: 200px; overflow-y: scroll; } table thead, table tbody tr { display: table; width: 100%; table-layout: fixed; /**表格列的寬度由表格寬度決定,不禁內容決定*/ text-align: center; } thead th, tbody td { width: 50px; } table thead { width: calc( 100% - 1em);/*表頭與表格垂直對齊*/ } </style> </head> <body> <div style="width: 800px;"> <div class="table-head"> <table align="center"> <thead> <tr> <th>序號</th> <th>內容</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>我只是用來測試的</td> </tr> <tr> <td>2</td> <td>我只是用來測試的</td> </tr> <tr> <td>3</td> <td>我只是用來測試的</td> </tr> <tr> <td>4</td> <td>我只是用來測試的</td> </tr> <tr> <td>5</td> <td>我只是用來測試的</td> </tr> <tr> <td>6</td> <td>我只是用來測試的</td> </tr> <tr> <td>7</td> <td>我只是用來測試的</td> </tr> <tr> <td>8</td> <td>我只是用來測試的</td> </tr> </tbody> </table> </div> </div> </body> </html>
順便作作筆記說說px、em、rem的區別:html
px是固定的像素,一旦設置了就沒法由於適應頁面大小而改變。web
em和rem相對於px更具備靈活性,他們是相對長度單位,意思是長度不是定死了的,更適用於響應式佈局。瀏覽器
對於em和rem的區別一句話歸納:em相對於父元素大小,rem相對於根元素大小(html元素)。佈局
rem中的r意思是root(根源),這也就不難理解了。測試
em/rem:用於作響應式頁面,不過我更傾向於rem,由於em不一樣元素的參照物不同(都是該元素父元素),因此在計算的時候不方便,相比之下rem就只有一個參照物(html元素),這樣計算起來更清晰。.net
webkit支持擁有overflow屬性的區域,列表框,下拉菜單,textarea的滾動條自定義樣式,因此用處仍是挺大的。固然,兼容全部瀏覽器的滾動條樣式目前是不存在的。htm
css美化瀏覽器默認滾動條樣式:對象
::-webkit-scrollbar {//滾動條的寬度 width:9px; height:9px; } ::-webkit-scrollbar-thumb {//滾動條的設置 background-color:#dddddd; background-clip:padding-box; /*背景被裁剪到內邊距框 content-box 背景裁剪到內容框*/ min-height:28px; } ::-webkit-scrollbar-thumb:hover { background-color:#bbb; } ::-webkit-scrollbar-track-piece { //滾動條凹槽的顏色,還能夠設置邊框屬性 background-color:#f8f8f8; }
給某個div加滾動條設置:blog
.test1::-webkit-scrollbar { width: 8px; } .test1::-webkit-scrollbar-track { background-color:red; -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius:2em; } .test1::-webkit-scrollbar-thumb { background-color:green; -webkit-border-radius: 2em; -moz-border-radius: 2em; border-radius:2em; }
demo樣例:
/*定義滾動條高寬及背景 高寬分別對應橫豎滾動條的尺寸*/ ::-webkit-scrollbar { width: 16px; height: 16px; background-color: #F5F5F5; } /*定義滾動條軌道 內陰影+圓角*/ ::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px; background-color: #F5F5F5; } /*定義滑塊 內陰影+圓角*/ ::-webkit-scrollbar-thumb { border-radius: 10px; -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); background-color: #555; }
具體更多樣例能夠參照https://blog.csdn.net/hanshileiai/article/details/40398177
:horizontal //horizontal僞類適用於任何水平方向上的滾動條 :vertical //vertical僞類適用於任何垂直方向的滾動條 :decrement //decrement僞類適用於按鈕和軌道碎片。表示遞減的按鈕或軌道碎片,例如可使區域向上或者向右移動的區域和按鈕 :increment //increment僞類適用於按鈕和軌道碎片。表示遞增的按鈕或軌道碎片,例如可使區域向下或者向左移動的區域和按鈕 :start //start僞類適用於按鈕和軌道碎片。表示對象(按鈕 軌道碎片)是否放在滑塊的前面 :end //end僞類適用於按鈕和軌道碎片。表示對象(按鈕 軌道碎片)是否放在滑塊的後面 :double-button //double-button僞類適用於按鈕和軌道碎片。判斷軌道結束的位置是不是一對按鈕。也就是軌道碎片緊挨着一對在一塊兒的按鈕。 :single-button //single-button僞類適用於按鈕和軌道碎片。判斷軌道結束的位置是不是一個按鈕。也就是軌道碎片緊挨着一個單獨的按鈕。 :no-button no-button僞類表示軌道結束的位置沒有按鈕。 :corner-present //corner-present僞類表示滾動條的角落是否存在。 :window-inactive //適用於全部滾動條,表示包含滾動條的區域,焦點不在該窗口的時候。 ::-webkit-scrollbar-track-piece:start { /*滾動條上半邊或左半邊*/ } ::-webkit-scrollbar-thumb:window-inactive { /*當焦點不在當前區域滑塊的狀態*/ } ::-webkit-scrollbar-button:horizontal:decrement:hover { /*當鼠標在水平滾動條下面的按鈕上的狀態*/ }
僞類與僞元素區別: