2014-12-05 96 views
2

有没有办法在HTML5中始终在iframe上显示滚动条,即使内容不溢出? “scrolling="yes”属性在HTML5中不起作用有没有使用CSS的方法?如何始终在HTML5中的iframe中显示滚动条

+1

我不太清楚,但我认为设置CSS'overflow'属性为'scroll'会做到这一点 – redelschaap 2014-12-05 23:47:58

+1

感谢您的回复,但设置溢出滚动iframe标记不起作用。就像下面的答复者所建议的那样,在嵌入式文档上设置body {overflow:scroll}可以使其工作。 – nparabz 2014-12-06 14:16:50

+0

哦,是的,这是正确的,以及我在正确的方向,然后:) – redelschaap 2014-12-07 11:12:04

回答

3

看来scrolling="yes"只被一些早期的浏览器所支持,从IE11旧版本的模拟来看,似乎IE8掉线支持:尽管属性被识别,但值yes不是滚动条仅在内容不适合时才显示。

这是浏览器惯例的变化,它与HTML5无关。实际上,HTML5 describes属性scrolling="yes"作为映射到CSS设置overflow: scroll,这有点误导。

现代浏览器实现iframe,以便滚动条存在,如果需要访问所有内容,则不会以其他方式访问。使用scrolling=nooverflow: hidden,可以防止出现滚动条,但如果内容适合(不存在溢出),则不会显示滚动条。

要使滚动条出现,您需要使嵌入式文档对其进行设置,例如,通过在其中使用body { overflow: scroll }。那么iframe元素说什么都没有关系。当内容实际适合时,滚动条将是被动的(并且是浅灰色的),但是它们将占据空间,并且随着内容扩展而变为活动滚动条以致它不适合。在下面的例子中,我植入,设置body { overflow: scroll }并有一个可编辑body元素的网页,让您可以添加行,看看吧如何变化:

<iframe src="http://www.cs.tut.fi/~jkorpela/hello.html"></iframe>

+0

完美的工作。谢谢你的详细回复。 – nparabz 2014-12-06 14:13:46

1

只是作为一个附加如果你只想让滚动条在一个方向上显示,而不是你可以使用特定的y和x css。

我想要一个垂直滚动条显示所有时间的外观,但不是水平的,因为宽度从未改变过。

所以我用:

{溢出-Y:滚动;}

另外一个(在这种情况下,溢出-X)将默认为自动,只在需要时显示。