五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > CSS 實(shí)現(xiàn)隱藏滾動(dòng)條同時(shí)又可以滾動(dòng)的代碼

CSS 實(shí)現(xiàn)隱藏滾動(dòng)條同時(shí)又可以滾動(dòng)的代碼

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):607    更新時(shí)間:2018-04-06 12:58   參與評(píng)論
移動(dòng)端頁(yè)面為了更接近原生的體驗(yàn),是否可以隱藏滾動(dòng)條,同時(shí)又保證頁(yè)面可以滾動(dòng)?

使用 overflow:hidden 隱藏滾動(dòng)條,但存在的問題是:頁(yè)面或元素失去了滾動(dòng)的特性。
由于只需要兼容移動(dòng)瀏覽器(Chrome 和 Safari),于是想到了自定義滾動(dòng)條的偽對(duì)象選擇器
::-webkit-scrollbar。


應(yīng)用如下 CSS 可以隱藏滾動(dòng)條:

.element::-webkit-scrollbar {display:none}

如果要兼容 PC 其他瀏覽器(IE、Firefox 等),國(guó)外一位才人 John Kurlak 也研究出了一種辦法。在容器外面再嵌套一層 overflow:hidden 內(nèi)部?jī)?nèi)容再限制尺寸和外部嵌套層一樣,就變相隱藏了。

<div class="outer-container">
     <div class="inner-container">
        <div class="content">
            ......
        </div>
     </div>
</div>
.outer-container,.content {
    width: 200px; height: 200px;
}
.outer-container {
    position: relative;
    overflow: hidden;
}
.inner-container {
    position: absolute; left: 0;
    overflow-x: hidden;
    overflow-y: scroll;
}

/* for Chrome */
.inner-container::-webkit-scrollbar {
    display: none;
}



其它資料:

xhtml中隱藏滾動(dòng)條
在用ie6瀏覽有框架的xhtml頁(yè)面的時(shí)候,默認(rèn)會(huì)水平和垂直滾動(dòng)條會(huì)一起出現(xiàn),這是ie6的一個(gè)bug,在firefox上是正常的,出現(xiàn)的原因是其對(duì)XHTML 1.0 transitional doctype的解釋缺陷.對(duì)于這個(gè)bug一般有3種解決方案,
方法1:

代碼如下:

html { overflow-y: scroll; }


原理:強(qiáng)制顯示ie的垂直滾動(dòng)條,而忽略水平滾動(dòng)條
優(yōu)點(diǎn):完全解決了這個(gè)問題, 允許你保持完整的XHTML doctype.
缺點(diǎn):即使頁(yè)面不需要垂直滾動(dòng)條的時(shí)候也會(huì)出現(xiàn)垂直滾動(dòng)條。
方法2:(推薦采用)

代碼如下:

html { overflow-x: hidden; overflow-y: auto; }


原理:隱藏橫向滾動(dòng),垂直滾動(dòng)根據(jù)內(nèi)容自適應(yīng)
優(yōu)點(diǎn):在視覺上解決了這個(gè)問題.在不必要的時(shí)候, 未強(qiáng)制垂直滾動(dòng)條出現(xiàn).
缺點(diǎn):只是隱藏了水平滾動(dòng)條,如果頁(yè)面真正需要水平滾動(dòng)條的時(shí)候,
屏幕以外的內(nèi)容會(huì)因?yàn)橛脩魺o(wú)法水平滾動(dòng),而看不到。
方法3:

代碼如下:

body { margin-right: -15px; margin-bottom: -15px; }


原理:這會(huì)在margin的水平和垂直方向上添加一個(gè)負(fù)值, IE添加了該精確數(shù)值后, 便會(huì)去除對(duì)滾動(dòng)條的需求假象.
優(yōu)點(diǎn):在視覺上解決了這個(gè)問題.,垂直滾動(dòng)根據(jù)內(nèi)容自適應(yīng)
缺點(diǎn):由于"人為創(chuàng)建"了15px的外邊距(margin), 所以無(wú)法使用該填充過的屏幕區(qū)域.
------------------------------------
設(shè)置樣式
在原來(lái)的html的時(shí)候,我們可以這樣定義整個(gè)頁(yè)面的滾動(dòng)條
 

代碼如下:

body{
scrollbar-3dlight-color:#D4D0C8; /*- 最外左 -*/
scrollbar-highlight-color:#fff; /*- 左二 -*/
scrollbar-face-color:#E4E4E4; /*- 面子 -*/
scrollbar-arrow-color:#666; /*- 箭頭 -*/
scrollbar-shadow-color:#808080; /*- 右二 -*/
scrollbar-darkshadow-color:#D7DCE0; /*- 右一 -*/
scrollbar-base-color:#D7DCE0; /*- 基色 -*/
scrollbar-track-color:#;/*- 滑道 -*/
}

 

但是同樣的代碼,我們應(yīng)用在 xhtml下就不起作用了,我相信好多好朋友也遇到過同樣的問題
那么怎么才能在xhtml下應(yīng)用滾動(dòng)條樣式呢?看下列代碼

代碼如下:

html{
scrollbar-3dlight-color:#D4D0C8; /*- 最外左 -*/
scrollbar-highlight-color:#fff; /*- 左二 -*/
scrollbar-face-color:#E4E4E4; /*- 面子 -*/
scrollbar-arrow-color:#666; /*- 箭頭 -*/
scrollbar-shadow-color:#808080; /*- 右二 -*/
scrollbar-darkshadow-color:#D7DCE0; /*- 右一 -*/
scrollbar-base-color:#D7DCE0; /*- 基色 -*/
scrollbar-track-color:#;/*- 滑道 -*/
}

 

這段代碼和上一段唯一的不同就是在css定義的元素上,一個(gè)是body一個(gè)是html。我們?cè)贉y(cè)試一下,把html頁(yè)面的
"body"修改成"html"測(cè)試一下,發(fā)現(xiàn)依然可以實(shí)現(xiàn)效果。那到底是為什么呢?
從字面上來(lái)看,xhtml比html多一個(gè)x,那么這個(gè)x其實(shí)也就是xml,為什么要加一個(gè)xml在里面?其實(shí)最根本的原因就是要讓html更加結(jié)構(gòu)化標(biāo)準(zhǔn)化(因?yàn)閔tml實(shí)在是太爛)。
我們?cè)趆tml里面定義的是body,因?yàn)閔tml不是很標(biāo)準(zhǔn)所以這樣可以生效,而在xhtml里面這樣就不行了,
我看看那個(gè)圖很明顯,body標(biāo)簽本身不是根元素,只有html才是根元素,而頁(yè)面的滾動(dòng)條也是屬于根元素的,所以這就是我們?yōu)槭裁炊xbody沒有效果的原因,因?yàn)槲覀兌x的只是一個(gè)子原素。ok,我們知道了原理,來(lái)做一個(gè)試驗(yàn)如果把定義"body"或"xhtml"換成"*",

代碼如下:

*{ 
scrollbar-3dlight-color:#D4D0C8; /*- 最外左 -*/
scrollbar-highlight-color:#fff; /*- 左二 -*/
scrollbar-face-color:#E4E4E4; /*- 面子 -*/
scrollbar-arrow-color:#666; /*- 箭頭 -*/
scrollbar-shadow-color:#808080; /*- 右二 -*/
scrollbar-darkshadow-color:#D7DCE0; /*- 右一 -*/
scrollbar-base-color:#D7DCE0; /*- 基色 -*/
scrollbar-track-color:#;/*- 滑道 -*/
}

 

在html和xhtml都通過,因?yàn)?就是定義頁(yè)面上的任何標(biāo)簽當(dāng)然也包括了“html”這個(gè)標(biāo)簽。

(ps:其實(shí)與其說(shuō)是html與xhtml的區(qū)別到不如說(shuō)是有無(wú)XHTML 1.0 transitional doctype的區(qū)別,但是如果你把頁(yè)面的XHTML 1.0 transitional doctype去掉的話,那么這個(gè)頁(yè)面就沒有doctype,默認(rèn)的顯示方式就是html4.01,不過你要把XHTML 1.0 transitional doctype修改成HTML 4.01 doctype同樣頁(yè)面定義body也不會(huì)有效果的,雖然這個(gè)頁(yè)面的標(biāo)準(zhǔn)是html 4.01)

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (607人查看,0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)