我們都知道,擼頁面的時候當(dāng)我們的內(nèi)容超出了我們的div,往往會出現(xiàn)滾動條,影響美觀。
尤其是當(dāng)我們在做一些導(dǎo)航菜單的時候。滾動條一出現(xiàn)就破壞了UI效果。 我們不希望出現(xiàn)滾動條,也不希望超出去的內(nèi)容被放逐,就要保留鼠標(biāo)滾動的效果。我們都知道overflow:hidden是可以隱藏滾動條的,但存在的問題是:頁面或元素失去了滾動的特性,進(jìn)而溢出內(nèi)容也變得不可見,這樣肯定是不可取的。百度下大部分都是在說overflow:hidden或者overflow-y: no可以解決問題,但是并不能很好的解決我們的問題,那么怎么辦呢?
接下來小萌介紹幾種簡單的方法,但是也不是完美的解決問題了,各求所需吧
第一種:偽對象選擇器
在webkit內(nèi)核的瀏覽器里可以定義滾動條樣式。在CSS初始處定義
::-webkit-scrollbar{
display:none;(或者是width: 0;)
}不過目前本方法只在webkit內(nèi)核瀏覽器中有效(Chrome,Safari)。
第二種:變相隱藏
大體思路是在div外面再套一個div。這個div設(shè)置overflow:hidden。而內(nèi)容div設(shè)置 overflow-x: hidden;overflow-y: scroll;然后再設(shè)置外層div的width小于內(nèi)容div的width,就是用一個無滾動條的div包裹另一個有滾動條的div,從而實現(xiàn)隱藏滾動條的效果。
例子:
<!DOCTYPE html>
<html>
<head>
<title>使用CSS實現(xiàn)無滾動條滾動</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>測試數(shù)據(jù)1</li>
<li>測試數(shù)據(jù)2</li>
<li>測試數(shù)據(jù)3</li>
<li>測試數(shù)據(jù)4</li>
<li>測試數(shù)據(jù)5</li>
<li>測試數(shù)據(jù)6</li>
<li>測試數(shù)據(jù)7</li>
<li>測試數(shù)據(jù)8</li>
<li>測試數(shù)據(jù)9</li>
<li>測試數(shù)據(jù)10</li>
<li>測試數(shù)據(jù)11</li>
<li>測試數(shù)據(jù)12</li>
<li>測試數(shù)據(jù)13</li>
新聞熱點
疑難解答