1. 程式人生 > 實用技巧 >使用CSS實現無滾動條滾動

使用CSS實現無滾動條滾動

我們都知道,擼頁面的時候當我們的內容超出了我們的div,往往會出現滾動條,影響美觀。

尤其是當我們在做一些導航選單的時候。滾動條一出現就破壞了UI效果。 我們不希望出現滾動條,也不希望超出去的內容被放逐,就要保留滑鼠滾動的效果。我們都知道overflow:hidden是可以隱藏滾動條的,但存在的問題是:頁面或元素失去了滾動的特性,進而溢位內容也變得不可見,這樣肯定是不可取的。百度下大部分都是在說overflow:hidden或者overflow-y: no可以解決問題,但是並不能很好的解決我們的問題,那麼怎麼辦呢?

第一種:偽物件選擇器

在webkit核心的瀏覽器裡可以定義滾動條樣式。在css初始處定義

::-webkit-scrollbar{
    display:none;(或者是width: 0;)
}

  

不過目前本方法只在webkit核心瀏覽器中有效(Chrome,Safari)。

pixabayhttps://www.wode007.com/sites/73237.html wallhavenhttps://www.wode007.com/sites/73236.html

第二種:變相隱藏

大體思路是在div外面再套一個div。這個div設定overflow:hidden。而內容div設定 overflow-x: hidden;overflow-y: scroll;然後再設定外層div的width小於內容div的width,就是用一個無滾動條的div包裹另一個有滾動條的div,從而實現隱藏滾動條的效果。

例子:

<!DOCTYPE html>
<html>
 
    <head>
        <title>使用css實現無滾動條滾動</title>
 
        <meta charset="UTF-8">
        <style type="text/css">
            body,html {
                margin: 0;
                padding: 0;
                height: 100%;
                overflow: hidden;
            }
            ul,li {
                margin: 0;
                padding: 0;
                list-style: none;
            }
            .box_wrap {
                margin: 20px auto;
                width: 200px;
                height: 400px;
                border: 1px solid #ccc;
                overflow: hidden;
            }
            .box_wrap ul  {
                width: 220px;/* 多出20畫素是滾動條的位置,會被父容器蓋住就看不到了 */
                height: 100%;
                overflow-x: hidden;
                overflow-y: auto;
            }
            .box_wrap ul li {
                width: 200px;
                height: 40px;
                line-height: 40px;
                border-bottom: 1px solid #ccc;
                font-size: 12px;
                text-align: center;
            }
        </style>
    </head>
 
    <body>
        <div class="box_wrap">
            <ul>
                <li>測試資料1</li>
                <li>測試資料2</li>
                <li>測試資料3</li>
                <li>測試資料4</li>
                <li>測試資料5</li>
                <li>測試資料6</li>
                <li>測試資料7</li>
                <li>測試資料8</li>
                <li>測試資料9</li>
                <li>測試資料10</li>
                <li>測試資料11</li>
                <li>測試資料12</li>
                <li>測試資料13</li>
                <li>測試資料14</li>
                <li>測試資料15</li>
                <li>測試資料16</li>
                <li>測試資料17</li>
                <li>測試資料18</li>
                <li>測試資料19</li>
                <li>測試資料20</li>
                <li>測試資料21</li>
                <li>測試資料22</li>
                <li>測試資料23</li>
                <li>測試資料24</li>
                <li>測試資料25</li>
                <li>測試資料26</li>
                <li>測試資料27</li>
                <li>測試資料28</li>
                <li>測試資料29</li>
                <li>測試資料30</li>
            </ul>
        </div>
    </body>
 
</html>