您现在的位置: 365建站网 > 365文章 > iframe页面滚动条显示隐藏控制和滚动条颜色的方法

iframe页面滚动条显示隐藏控制和滚动条颜色的方法

文章来源:365jz.com     点击数:2526    更新时间:2017-12-06 09:31   参与评论
<iframe> 标签规定一个内联框架。

一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。
 

属性

New :HTML5 中的新属性。

属性 描述
align left
right
top
middle
bottom
HTML5 不支持。HTML 4.01 已废弃。 规定如何根据周围的元素来对齐 <iframe>。
frameborder 1
0
HTML5 不支持。规定是否显示 <iframe> 周围的边框。
height pixels 规定 <iframe> 的高度。
longdesc URL HTML5 不支持。规定一个页面,该页面包含了有关 <iframe> 的较长描述。
marginheight pixels HTML5 不支持。规定 <iframe> 的顶部和底部的边距。
marginwidth pixels HTML5 不支持。规定 <iframe> 的左侧和右侧的边距。
name name 规定 <iframe> 的名称。
sandboxNew ""
allow-forms
allow-same-origin
allow-scripts
allow-top-navigation
对 <iframe> 的内容定义一系列额外的限制。
scrolling yes
no
auto
HTML5 不支持。规定是否在 <iframe> 中显示滚动条。
seamlessNew seamless 规定 <iframe> 看起来像是父文档中的一部分。
src URL 规定在 <iframe> 中显示的文档的 URL。
srcdocNew HTML_code 规定页面中的 HTML 内容显示在 <iframe> 中。
width pixels 规定 <iframe> 的宽度。

 body{overflow:hidden},这样也可以将滚动条去掉,而且这也是当我们只想去掉某一个滚动条所使用的属性。



  二:去掉右边的滚动条且保留底下的滚动条

       如果只想保留底下的滚动条,那么可以在嵌入的页面里设置 body{overflow-x:auto ; overflow-y:hidden;}



  三:去掉底下的滚动条且保留右边的滚动条

      在嵌入的页面里设置 body{overflow-x:hidden;overflow-y:auto;}

    

      我们已经知道了这两个属性都可以设置滚动条的显示和隐藏,那么当两个同时设置时,会出现哪个效果呢?

      通过检测,我发现当 scrolling = " auto "  或者 " yes " 时,如果设置了 body,那么就会使用body里的设置;当 scrolling = " no " 时,不管body设置了什么,都会使用 scrolling 的设置,即全部的滚动条都被去掉了。


iframe的滚动条问题:显示/隐藏滚动条:

XHTML 1.0 Transitional 标准不能显示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

父页面:修改为
HTML 4.01 Transitional 标准

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

子页面不要表头

****** 去掉 iframe 横向滚动条或竖条

1. 在主页面加 iframe scrolling="yes" 或 "auto"

2. css 文件

body {
     overflow-x : hidden;   去掉横条
     overflow-y : hidden;   去掉竖条
}

父页面和子页面链接入 css 文件

3. 去掉子页面里的
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
(即不要表头)

4. 两个都去掉
<iframe scrolling="no">

**********************************************
资料:
http://fangbubu.javaeye.com/blog/155091

GOOGLE到一些有用的资料:

[DIV+CSS]XHTML下的滚动条问题
1.xhtml下滚动条的颜色问题?

在原来的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"测试一下,发现依然可以实现效果。那到底是为什么呢?

在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)


2.xhtml下frame页面横向滚动条的问题?

在用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), 所以无法使用该填充过的屏幕区域.

以上摘自:http://hi.baidu.com/sandmax/blog/item/43fd0e4668dbc6096b63e59f.html


附:强制的滚动条:

问题中的"修复"该bug的技术, 同样可以用于其它目的. 利用CSS, 你可以有效地在Mozilla Firefox和Internet Explorer中显示或者隐藏垂直及水平滚动条.

强制显示滚动条:

html { overflow: scroll; }

强制隐藏滚动条:

html { overflow: hidden; }

隐藏IE的水平滚动条:

html { overflow-x: hidden; }

隐藏IE的垂直滚动条:

html { overflow-y: hidden; }

强制显示IE的水平滚动条:

html { overflow-x: scroll; }

强制显示IE的垂直滚动条:

html { overflow-y: scroll; }

强制显示Mozilla的水平滚动条:

html { overflow:-moz-scrollbars-horizontal; }

注意: 仅仅强制显示水平滚动条. 也就是说, 即使需要显示垂直滚动条时, 垂直滚动条也不会出现.

强制显示Mozilla的垂直滚动条:

html { overflow:-moz-scrollbars-vertical; }

注意: 仅仅强制显示垂直滚动条. 也就是说, 即使需要显示水平滚动条时, 水平滚动条也不会出现.  


谷歌浏览器修改滚动条样式:
在iframe外层包一层div,添加如下样式:
style="-webkit-overflow-scrolling:touch;overflow:auto;"
代码如下:
<div  style="width:100%;-webkit-overflow-scrolling:touch;overflow:auto;"><iframe name="main" id="main" src="../demo.html" width="100%"  height="100%" frameborder="0" vspace="0" scrolling="yes" ></iframe></div>


谷歌修改滚动条样式
html {
                        overflow: auto;
                        min-width: 0px;
                }
                body {
                        position: absolute;
                        top: 1px;
                        /*left: 10%;*/
                        bottom: 1px;
                        /*right: 20px;*/
                        padding: 1px;
                        overflow-y: scroll;
                        overflow-x: hidden;
                        width: 95%;
                }

                /* Let's get this party started */
                ::-webkit-scrollbar {
                        width: 12px;
                }

                /* Track */
                ::-webkit-scrollbar-track {
                        -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
                        -webkit-border-radius: 10px;
                        border-radius: 10px;
                }

                /* Handle */
                ::-webkit-scrollbar-thumb {
                        -webkit-border-radius: 10px;
                        border-radius: 10px;
                        background: rgba(144,24,53,0.7);
                        -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
                }
                ::-webkit-scrollbar-thumb:window-inactive {
                        background: rgba(255,0,0,0.4);
                }

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (2526人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号