兼容xhtml

Posted on

兼容xhtml,html,ff,ie的滚动条css样式一览-div+css设计网

DIV- CSS.Net

Div+css入门教程

Div+css高级技术 Div+css布局

Web 标准化 浏览器兼容

SEO新手入门教程

SEO高级技术 Google SEO优化技术

百度SEO优化技术 SEO搜索引擎优化精华

SEM网站营销

相关内容

最新发布

首页 > Div+css高级技术

正文:兼容xhtml,html,ff,ie的滚动条css样式一览

日期:2009-7-8 12:15:16 | 来源 | 浏览次数 1423 | 复制网址 | 转发朋友 | 打印 | 评论

ID 7402 在用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)

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/keyunq/archive/2009/05/26/4217934.aspx 热门标签 滚动条,css样式,兼容,xhml,html,firefox,

上一篇: 防止网页被框架显示

下一篇: div滚动条样式一览 回复:

日期:2009-8-29 | 作者:匿名 | IP 61.136.225//

回复:

日期:2009-10-21 | 作者:匿名 | IP 113.205.25// ff 没有滚动条样式, 这个怎么兼容FF 呀? 回复:兼容xhtml,html,ff,ie的滚动条css样式一览

友情连接:

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途
本文链接: 兼容xhtml