我們都知道,擼頁面的時候當我們的內容超出了我們的div,往往會出現滾動條,影響美觀。
尤其是當我們在做一些導航菜單的時候。滾動條一出現就破壞了UI效果。 我們不希望出現滾動條,也不希望超出去的內容被放逐,就要保留鼠標滾動的效果。我們都知道overflow:hidden
是可以隱藏滾動條的,但存在的問題是:頁面或元素失去了滾動的特性,進而溢出內容也變得不可見,這樣肯定是不可取的。百度下大部分都是在說overflow:hidden
或者overflow-y: no
可以解決問題,但是並不能很好的解決我們的問題,那么怎么辦呢?
接下來小萌介紹幾種簡單的方法,但是也不是完美的解決問題了,各求所需吧
第一種:偽對象選擇器
在webkit內核的瀏覽器里可以定義滾動條樣式。在CSS初始處定義
1 ::-webkit-scrollbar{ 2 display:none;(或者是width: 0;) 3 }
不過目前本方法只在webkit內核瀏覽器中有效(Chrome,Safari)。
第二種:變相隱藏
大體思路是在div外面再套一個div。這個div設置overflow:hidden
。而內容div設置 overflow-x: hidden;overflow-y: scroll;
然后再設置外層div的width小於內容div的width,就是用一個無滾動條的div包裹另一個有滾動條的div,從而實現隱藏滾動條的效果。
例子:
1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <title>使用CSS實現無滾動條滾動</title> 6 7 <meta charset="UTF-8"> 8 <style type="text/css"> 9 body,html { 10 margin: 0; 11 padding: 0; 12 height: 100%; 13 overflow: hidden; 14 } 15 ul,li { 16 margin: 0; 17 padding: 0; 18 list-style: none; 19 } 20 .box_wrap { 21 margin: 20px auto; 22 width: 200px; 23 height: 400px; 24 border: 1px solid #ccc; 25 overflow: hidden; 26 } 27 .box_wrap ul { 28 width: 220px;/* 多出20像素是滾動條的位置,會被父容器蓋住就看不到了 */ 29 height: 100%; 30 overflow-x: hidden; 31 overflow-y: auto; 32 } 33 .box_wrap ul li { 34 width: 200px; 35 height: 40px; 36 line-height: 40px; 37 border-bottom: 1px solid #ccc; 38 font-size: 12px; 39 text-align: center; 40 } 41 </style> 42 </head> 43 44 <body> 45 <div class="box_wrap"> 46 <ul> 47 <li>測試數據1</li> 48 <li>測試數據2</li> 49 <li>測試數據3</li> 50 <li>測試數據4</li> 51 <li>測試數據5</li> 52 <li>測試數據6</li> 53 <li>測試數據7</li> 54 <li>測試數據8</li> 55 <li>測試數據9</li> 56 <li>測試數據10</li> 57 <li>測試數據11</li> 58 <li>測試數據12</li> 59 <li>測試數據13</li> 60 <li>測試數據14</li> 61 <li>測試數據15</li> 62 <li>測試數據16</li> 63 <li>測試數據17</li> 64 <li>測試數據18</li> 65 <li>測試數據19</li> 66 <li>測試數據20</li> 67 <li>測試數據21</li> 68 <li>測試數據22</li> 69 <li>測試數據23</li> 70 <li>測試數據24</li> 71 <li>測試數據25</li> 72 <li>測試數據26</li> 73 <li>測試數據27</li> 74 <li>測試數據28</li> 75 <li>測試數據29</li> 76 <li>測試數據30</li> 77 </ul> 78 </div> 79 </body> 80 81 </html>
感覺大家閱讀到這里~~~