overflow:auto的用法和实现弹性盒横向滚动

Posted 陌一一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了overflow:auto的用法和实现弹性盒横向滚动相关的知识,希望对你有一定的参考价值。

1.  前言引入:

overflow:auto含义是:如果高度撑开了原有设定的高度,那么可以添加这个属性,让它出现滚动条滚动显示。

举例说明:

我们做一个京东移动端,以iphone-XE分辨率为准的例子,让内容滚动显示,见下图要做的页面:

 思路:分为三个板块,header、section、footer三个部分,也就是上面搜索栏部分、中间产品部分和下面按钮部分;section部分又分为两个部分,左边导航栏和右边图片部分,思路理清楚了,我们就开始做吧。

代码:

 

 结果:

 看红色框里的代码,刚开始我给header和footer部分都设置了固定的高度,然后利用弹性盒的性质,让中间的section部分自适应,也就是flex:1;这个属性的体现,然后我在section部分加入了ul列表标签,li标签一共有12个,现在看结果是正常显示,当我增加li标签的个数时,看下面结果会发生什么变化,结果如下:

不拉滚动条:

向上来滚动条:

结果发现header和footer部分不见了,当我们向上或者向下拉滚动条时,才能看见header或者footer部分,,,这样子其实很不方便,我们一般见到的页面都是headerfooter部分是固定在页面上的,中间部分如果内容多的话,只有中间部分可以拉滚动条滚动,上面和下面是不滚动的,所以这个时候就要用到:overflow:auto;这个属性啦,,,

2.  overflow:auto;属性的用法:

因为我们只想实现section部分的滚动,所以我们要在section的css属性中加上这个属性,但是因为如果我们只在section中加了这个属性,那么我们拉滚动条是中间全部部分都滚动,那我们想单独实现左边ul列表部分的滚动,所以也同时咋ul的css里加上overflow:auto这个属性;

代码如下:

结果:

 我们也可以使用属性来隐藏这个滚动条,属性是:“ : : -webkit-scrollbar”;

代码如下:我们加入这样一个css属性可以隐藏滚动条

3. 实现弹性盒横向出现滚动条:

属性:flex-shrink:0;

可以配合overflow:auto;一起用

html 自动显示横向滚动条

假设一个页面上有一个DIV,他的宽度设为了width:70%;怎样实现当html页面的拖动宽度缩小到小于70%屏幕宽时出现横向滚动条

overflow:scroll; /*任何时候都强制显示滚动条*/
overflow:auto; /*需要的时候会出现滚动条*/
overflow-x:auto; /*控制X方向的滚动条*/
overflow-y:auto; /*控制Y方向的滚动条*/
示例:
<HTML>
<HEAD>
<TITLE>测试表格内的滚动条</TITLE>
</HEAD>
<BODY>
<table>
<tr>
<td>表格内的滚动条:</td>
<td>
<div id="wins"
style="position:absolute;height:200;width:200;overflow:auto;background:#EEEEEE;">
<p>pppppppppppppppppppppppppppppppppppppppppppppppppp </p>
<p>pppppppppppppppppppppppppppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
<p>ppppppppppppppppppppppppp </p>
</div>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<span onmouseover=\'scrollb=setInterval("wins.scrollLeft-=10",100)\'
onmouseout=clearInterval(scrollb)>向左</span>
<span onmouseover=\'scrollb=setInterval("wins.scrollTop-=10",100)\'
onmouseout=clearInterval(scrollb)>向上</span>
<span onmouseover=\'scrollb=setInterval("wins.scrollLeft+=10",100)\'
onmouseout=clearInterval(scrollb)>向右</span>
<span onmouseover=\'scrollb=setInterval("wins.scrollTop+=10",100)\'
onmouseout=clearInterval(scrollb)>向下</span>
</td>
</tr>
</table>
</BODY>
</HTML>
参考技术A 那需要自适应 要写js代码 当改变浏览器大小时 触发此事件 并且div中最好放一个iframe 并且设置 允许scrolling

当div的width变小时 iframe就会出现滚动条

以上是关于overflow:auto的用法和实现弹性盒横向滚动的主要内容,如果未能解决你的问题,请参考以下文章

怎样实现表格宽度太宽时,浏览器底部出现横向滚动条

弹性布局(flex)

[前端][CSS] 纯css实现纵向滚动固定表头与横向内容滚动

弹性盒布局的属性和属性值

弹性盒布局的属性和属性值

CSS弹性盒子布局flex