CSS中隐藏滚动条的简单实现方法

xhtml中隐藏滚动条

在用ie6浏览有框架的xhtml页面的时候,默认会水平和垂直滚动条会一起出现,这是ie6的一个

bug,在firefox上是正常的,出现的原因是其对XHTML 1.0 transitional doctype的解释缺陷.

对于这个bug一般有3种解决方案,

方法1:

代码:

程序代码

html { overflow-y: scroll; }

原理:强制显示ie的垂直滚动条,而忽略水平滚动条

优点:完全解决了这个问题, 允许你保持完整的XHTML doctype.

缺点:即使页面不需要垂直滚动条的时候也会出现垂直滚动条。

方法2:(推荐采用)

代码:

程序代码

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

原理:隐藏横向滚动,垂直滚动根据内容自适应

优点:在视觉上解决了这个问题.在不必要的时候, 未强制垂直滚动条出现.

缺点:只是隐藏了水平滚动条,如果页面真正需要水平滚动条的时候,

屏幕以外的内容会因为用户无法水平滚动,而看不到。

方法3:

代码:

程序代码

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

原理:这会在margin的水平和垂直方向上添加一个负值, IE添加了该精确数值后, 便会去除对滚动条的需求假象.

优点:在视觉上解决了这个问题.,垂直滚动根据内容自适应

缺点:由于"人为创建"了15px的外边距(margin), 所以无法使用该填充过的屏幕区域.

------------------------------------

设置样式

在原来的html的时候,我们可以这样定义整个页面的滚动条

程序代码

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:#;/*- 滑道 -*/

}

  

但是同样的代码,我们应用在 xhtml下就不起作用了,我相信好多好朋友也遇到过同样的问题

那么怎么才能在xhtml下应用滚动条样式呢?看下列代码

程序代码

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定义的元素上,一个是body一个是html。我们再测试一下,把html页面的

"body"修改成"html"测试一下,发现依然可以实现效果。那到底是为什么呢?

从字面上来看,xhtml比html多一个x,那么这个x其实也就是xml,为什么要加一个xml在里面?其实最根本的原因就是要让html更加结构化标准化(因为html实在是太烂)。

我们在html里面定义的是body,因为html不是很标准所以这样可以生效,而在xhtml里面这样就不行了,

我看看那个图很明显,body标签本身不是根元素,只有html才是根元素,而页面的滚动条也是属于根元素的,所以这就是我们为什么定义body没有效果的原因,因为我们定义的只是一个子原素。ok,我们知道了原理,来做一个试验如果把定义"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都通过,因为*就是定义页面上的任何标签当然也包括了“html”这个标签。

(ps:其实与其说是html与xhtml的区别到不如说是有无XHTML 1.0 transitional doctype的区别,但是如果你把页面的XHTML 1.0 transitional doctype去掉的话,那么这个页面就没有doctype,默认的显示方式就是html4.01,不过你要把XHTML 1.0 transitional doctype修改成HTML 4.01 doctype同样页面定义body也不会有效果的,虽然这个页面的标准是html 4.01)

时间: 2024-10-19 03:29:18

CSS中隐藏滚动条的简单实现方法的相关文章

CSS中隐藏内容的3种方法

CSS中隐藏内容的3种方法 一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等. 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">隐藏内容</div> 值 描述 none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. i

CSS中隐藏滚动条的方法

xhtml中隐藏滚动条 在用ie6浏览有框架的xhtml页面的时候,默认会水平和垂直滚动条会一起出现,这是ie6的一个 bug,在firefox上是正常的,出现的原因是其对XHTML 1.0 transitional doctype的解释缺陷. 对于这个bug一般有3种解决方案, 方法1: 代码: 程序代码 html { overflow-y: scroll; } 原理:强制显示ie的垂直滚动条,而忽略水平滚动条 优点:完全解决了这个问题, 允许你保持完整的XHTML doctype. 缺点:即

CSS中隐藏内容的3种方法及属性值

在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等等. 使用CSS即可使以上提到的内容隐藏起来,几种隐藏内容的方法: 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">我不占地儿,你看不见我:</div>

CSS 实现隐藏滚动条同时又可以滚动

移动端页面为了更接近原生的体验,是否可以隐藏滚动条,同时又保证页面可以滚动? 使用 overflow:hidden 隐藏滚动条,但存在的问题是:页面或元素失去了滚动的特性.由于只需要兼容移动浏览器(Chrome 和 Safari),于是想到了自定义滚动条的伪对象选择器::-webkit-scrollbar. 关于这个选择器的介绍可以参考:Styling ScrollbarsCustom Scrollbars in WebKit 应用如下 CSS 可以隐藏滚动条: .element::-webki

关于CSS中隐藏内容方法的思考

正在读<精通CSS>,很多样式需要用到内容隐藏,比如平时无内容,鼠标悬停时显示出内容.书中常用的方法是用text-indent:-1000em.margin-left:-1000em将元素隐藏到屏幕边缘之外,而display:none和visibility:hidden.overflow:hidden也可以做到隐藏,那么这几种用法有哪些利弊呢? 1.display:none; 搜索引擎可能认为被隐藏的元素属于垃圾信息而忽略,不利于SEO:屏幕阅读器会忽略被隐藏的元素. 2.visibility

HTML和CSS设置动态导航以及CSS中伪元素的简单说明

HTML页面代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Test</title> 5 <meta charset="utf-8"> 6 <link rel="stylesheet" type="text/css" href="style.css"> 7 <script type=&qu

CSS中元素水平居中和垂直居中的方法

#CSS中水平居中和垂直居中的方法 一. 水平居中 1.行内元素(文本,图片等) 如果被设置元素为文本.图片等行内元素时,可以通过给父元素设置` text-align:center;` 来实现 2.定宽块级元素 可以通过设置“左右margin”值为“auto”来实现居中 常用的有 `margin:0 auto; ` 也可以写成`margin-left:auto;margin-right:auto;` 3.不定宽块级元素 有三种实现方法: * 加入 table 标签   为需要设置的居中的元素外面

关于html与css中隐藏一个元素的几种方法

1,将元素的display属性设为none <div style="display:none">看不见我</div> 2,<input>标签元素的type属性设为hidden <input type="hidden" name="看不见我"> 3,将元素的width和heigth都设为0 <div style="width:0:heigth:0:background-color:re

CSS中清楚浮动的几种方法

清除浮动的几种方法 2017-02-16  19:03:17 当某元素的子元素设置浮动时,该元素就会产生塌陷,无法自适应高度.这种情况的出现严重影响了网页排版,因此我们必须要清除浮动来避免浮动溢出,父元素塌陷的发生.以下有几种清除浮动的方法: 方法和描述 代码示范 优弊 一.浮动后在结尾加一个空的标签(如:<div>.<p>等),设置属性clear:both; 这样可以让父级元素自动获得高度 <!-----HTML代码----> <div> <div