如果要兼容 PC 其他瀏覽器(IE、Firefox 等),國(guó)外一位才人 John Kurlak 也研究出了一種辦法。在容器外面再嵌套一層 overflow:hidden 內(nèi)部?jī)?nèi)容再限制尺寸和外部嵌套層一樣,就變相隱藏了。.element::-webkit-scrollbar {display:none}
<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:
原理:強(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:(推薦采用)
原理:隱藏橫向滾動(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:
原理:這會(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)條
但是同樣的代碼,我們應(yīng)用在 xhtml下就不起作用了,我相信好多好朋友也遇到過同樣的問題
那么怎么才能在xhtml下應(yīng)用滾動(dòng)條樣式呢?看下列代碼
這段代碼和上一段唯一的不同就是在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"換成"*",
在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)入論壇