CSS隐藏滚动条但还可以滚动

合集下载

CSS滚动条

CSS滚动条

CSS滚动条前⾯的话 滚动条在⽹页中经常见到,却并没有受到⾜够的重视。

只有当因为滚动条的问题需要处理兼容性时,才进⾏调试操作。

本⽂就滚动条的常见内容进⾏梳理条件 滚动条和overflow是紧密相关的。

只有当⽗级的overflow的值是auto或scroll,并且元素的内容超出元素区域时,才有可能出现滚动条测试内容默认 ⽆论什么浏览器,默认滚动条均来⾃<html>,⽽不是<body>。

因为<body>元素默认有8px的margin。

若滚动条来⾃<body>元素,则滚动条与页⾯则应该有8px的间距,实际上并没有间距,所以滚动条来⾃<html>元素尺⼨ 通过以下代码可得出滚动条会占⽤浏览器的可⽤宽度为:chrome/firefox/IE 17pxsafari 21px.box{width: 400px;overflow: scroll;}.in{*zoom: 1;}<div class="box"><div id="in" class="in"></div></div>console.log(400-document.getElementById('in').clientWidth);兼容【1】默认情况下IE7-浏览器默认有⼀条纵向滚动条,⽽其他浏览器则没有//IE7-浏览器html{overflow-y: scroll;}//其他浏览器html{overflow: auto;}//去除页⾯默认滚动条html{overflow: hidden;}【2】IE7-浏览器与其他浏览器关于滚动条的宽度设定机制不同.box{width: 200px;height: 100px;background-color: pink;overflow: scroll;}.in{width: 100%;height: 60px;background-color: lightgreen;}<div class="box"><div class="in">测试⽂字</div></div> ⽗级box出现纵向滚动条,实际上⼦级in的可⽤宽度就缩⼩了。

CSS实现隐藏滚动条并可以滚动内容效果(三种方式)

CSS实现隐藏滚动条并可以滚动内容效果(三种方式)

CSS实现隐藏滚动条并可以滚动内容效果(三种⽅式)隐藏滚动条的同时还需要⽀持滚动,我们经常在前端开发中遇到这种情况,最容易想到的是加⼀个iscroll插件,但其实现在CSS也可以实现这个功能,我已经在很多地⽅使⽤了,下⾯⼀起看看这三种⽅法。

⽅法1:计算滚动条宽度并隐藏起来在本站的侧栏,你可以看到前端⽇报的那块内容并没有滚动条,但⿏标移上去却可以滚动内容。

这是什么技术呢?其实我只是把滚动条通过定位把它隐藏了起来。

演⽰下⾯给⼀个简化版的代码·<div class="outer-container"><div class="inner-container">......</div></div>.outer-container{width: 360px;height: 200px;position: relative;overflow: hidden;}.inner-container{position: absolute;left: 0;top: 0;right: -17px;bottom: 0;overflow-x: hidden;overflow-y: scroll;}这个代码巧妙的向右移动了17个像素,刚好等于滚动条的宽度。

这个值是我⼿动调试得来的。

在chrome和IE没发现问题。

⽅法2:使⽤三个容器包围起来,不需要计算滚动条的宽度该代码最早是在Microsoft博客上看到的,跟我上⾯的思路差不多,只不过⼈家⾥⾯⼜加多了⼀个盒⼦,将内容限制在盒⼦⾥⾯了。

这样⼦就看不到滚动条同时也可以滚动。

代码如下:<div class="outer-container"><div class="inner-container"><div class="content">......</div></div></div>//code from /hide-scrollbar.html.element, .outer-container {width: 200px;height: 200px;}.outer-container {border: 5px solid purple;position: relative;overflow: hidden;}.inner-container {position: absolute;left: 0;overflow-x: hidden;overflow-y: scroll;}.inner-container::-webkit-scrollbar {display: none;}⽅法3:css隐藏滚动条同时该⽂章还分享了⼀种通过CSS隐藏滚动条的⽅法,不过这个⽅法不兼容IE,做移动端的可以使⽤。

css设置滚动条并显示或隐藏

css设置滚动条并显示或隐藏

css设置滚动条并显⽰或隐藏看效果,没有滚动条,超出div,开发中肯定不⾏。

有滚动条最后就是想隐藏滚动条代码有滚动条并显⽰1<!DOCTYPE html>2<html lang="en">3<head>4<meta charset="UTF-8">5<title>Title</title>6</head>7<body style="width:229px; height:203px; text-align:center; padding-top: 50px; margin-left: 480px; background-color: darkkhaki"> 8<div class="outer-container" style="border:1px solid #000; background-color: #00B83F">9<div class="inner-containe" style="width:229px; height:203px; overflow:auto;">10<li><span >overflow10</span></li>11<li><span >overflow11</span></li>12<li><span >overflow12</span></li>13<li><span >overflow13</span></li>14<li><span >overflow14</span></li>15<li><span >overflow15</span></li>16<li><span >overflow16</span></li>17<li><span >overflow17</span></li>18<li><span >overflow18</span></li>19<li><span >overflow19</span></li>20<li><span >overflow10</span></li>21<li><span >overflow11</span></li>22<li><span >overflow12</span></li>23<li><span >overflow13</span></li>24<li><span >overflow14</span></li>25<li><span >overflow15</span></li>26<li><span >overflow16</span></li>27<li><span >overflow17</span></li>28<li><span >overflow18</span></li>29<li><span >overflow19</span></li>30<li><span >overflow10</span></li>31<li><span >overflow11</span></li> 32<li><span >overflow12</span></li> 33<li><span >overflow13</span></li> 34<li><span >overflow14</span></li> 35<li><span >overflow15</span></li> 36<li><span >overflow16</span></li> 37<li><span >overflow17</span></li> 38<li><span >overflow18</span></li> 39<li><span >overflow19</span></li> 40<li><span >overflow10</span></li> 41<li><span >overflow11</span></li> 42<li><span >overflow12</span></li> 43<li><span >overflow13</span></li> 44<li><span >overflow14</span></li> 45<li><span >overflow15</span></li> 46<li><span >overflow16</span></li> 47<li><span >overflow17</span></li> 48<li><span >overflow18</span></li> 49<li><span >overflow19</span></li> 50</div>51</div>5253</body>54</html>有滚动但是隐藏1<!DOCTYPE html>2<html lang="en">3<head>4<meta charset="UTF-8">5<title>Title</title>6<style type="text/css">7 .outer-container{8 width: 229px;9 height: 203px;10 position: relative;11 overflow: hidden;12 }13 .inner-containe{14 position: absolute;15 left: 0;16 top: 0;17 right: -17px;18 bottom: 0;19 overflow-x: hidden;20 overflow-y: scroll;21 }22</style>23</head>24<body style=" text-align:center; padding-top: 50px; margin-left: 480px; background-color: darkkhaki"> 25<div class="outer-container" style="border:1px solid #000; background-color: #00B83F">26<div class="inner-containe">27<li><span >overflow10</span></li>28<li><span >overflow11</span></li>29<li><span >overflow12</span></li>30<li><span >overflow13</span></li>31<li><span >overflow14</span></li>32<li><span >overflow15</span></li>33<li><span >overflow16</span></li>34<li><span >overflow17</span></li>35<li><span >overflow18</span></li>36<li><span >overflow19</span></li>37<li><span >overflow10</span></li>38<li><span >overflow11</span></li>39<li><span >overflow12</span></li>40<li><span >overflow13</span></li>41<li><span >overflow14</span></li>42<li><span >overflow15</span></li>43<li><span >overflow16</span></li>44<li><span >overflow17</span></li>45<li><span >overflow18</span></li>46<li><span >overflow19</span></li>47<li><span >overflow10</span></li>48<li><span >overflow11</span></li>49<li><span >overflow12</span></li>50<li><span >overflow13</span></li>51<li><span >overflow14</span></li>52<li><span >overflow15</span></li>53<li><span >overflow16</span></li>54<li><span >overflow17</span></li>55<li><span >overflow18</span></li>56<li><span >overflow19</span></li>57<li><span >overflow10</span></li>58<li><span >overflow11</span></li>59<li><span >overflow12</span></li>60<li><span >overflow13</span></li>61<li><span >overflow14</span></li>62<li><span >overflow15</span></li>63<li><span >overflow16</span></li>64<li><span >overflow17</span></li>65<li><span >overflow18</span></li>66<li><span >overflow19</span></li>67</div>68</div>6970</body>71</html>。

父级元素和子级元素高度一致,出现了滚动条

父级元素和子级元素高度一致,出现了滚动条

标题:父级元素和子级元素高度一致,出现了滚动条的解决方法在Web开发中,我们经常会遇到父级元素和子级元素高度一致,但是出现了滚动条的情况。

这种情况在页面布局中很常见,但是却往往让开发者头疼不已。

本文将介绍针对这种情况的解决方法,帮助开发者更好地解决这个问题。

1. 了解问题在解决问题之前,我们首先需要了解这个问题的原因。

为什么父级元素和子级元素的高度一致,但是出现了滚动条呢?这往往是因为子级元素的内容超出了父级元素的高度,导致出现了滚动条。

这种情况在很多情况下都是合理的,例如一个表格内容较多时,就需要出现滚动条来实现内容的查看。

2. 使用CSS解决针对父级元素和子级元素高度一致但出现了滚动条的情况,我们可以通过CSS来解决。

我们可以尝试使用`overflow: hidden`来隐藏滚动条,这样可以使父级元素和子级元素的高度一致且不出现滚动条。

但是这种方法会导致内容被截断,不利于内容的查看。

如果不希望内容被截断,我们可以尝试使用`overflow: auto`来自动显示滚动条。

这样可以保证内容的完整性,同时又可以避免出现滚动条。

另外,还可以尝试使用`max-height`和`min-height`来限制父级元素和子级元素的高度,从而避免出现滚动条。

3. Javascript解决除了使用CSS,我们还可以通过Javascript来解决父级元素和子级元素高度一致但出现滚动条的问题。

我们可以通过计算子级元素的内容高度,动态地调整父级元素的高度,从而保持两者高度一致且不出现滚动条。

这种方法需要一定的编程技巧,但是可以在一定程度上解决这个问题。

4. 响应式设计解决在移动设备上,父级元素和子级元素高度一致但出现滚动条的问题更加常见。

这时,我们可以通过响应式设计来解决这个问题。

针对不同的设备尺寸,我们可以通过媒体查询来调整父级元素和子级元素的高度,从而避免出现滚动条。

5. 总结父级元素和子级元素高度一致,但出现了滚动条是一个常见的问题,在Web开发中经常会遇到。

CSS控制层让某个位置固定不会跟随滚动条移动

CSS控制层让某个位置固定不会跟随滚动条移动

大家都知道利用JavaScript脚本,从浏览器中获取各个关于位置的参数,然后将其计算后,定位在窗体的右下角。

可以承认,这个方法确实是比较自然的想法,也是很常见的方法,但是使用JavaScript脚本来定位有以下几个缺点:①使用了大量的计算,每次滚动,都少不了一大堆的运算。

②使用了JavaScript脚本,脚本这东西受到浏览器的限制,即便没有限制,也同样因为网页的下载模式问题,可能因为脚本下载未完成或者下载失败而致使脚本无法正确运行。

③条条大路通罗马,但是看看那方块,当快速滚动滚动条的时候,会发现那个可爱的方块抖动地厉害,甚至出现闪屏,这也难怪,那么多的计算谁能受得了?那有没有比较“平静”高效的表示方式呢?比如是否有一种用CSS的方式呢?答案是肯定的,那就是采用CSS。

说到CSS,首先,我们将目光投向了CSS规范,我想很多人和我一样很快就想到了position属性,说到定位,我们很容易想到这个属性。

这个属性一共有四个选项:static、relative、absolute、fixed。

很高兴,我们在阅读了相关的注释后,我们大概能看到fixed是比较符合我们的需求的,fixed在W3C的网页上的解释是:生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过"left", "top", "right" 以及"bottom" 属性进行规定。

于是很快就有了下面的代码: ?<html><head><title>CSS控制层让某个位置不会跟随滚动条移动(Only fit firefox)</title><styletype="text/css">.fixed{ position:fixed; left:200px; bottom:20px; width:400px; } </style></head><body><divclass="fixed">别人怎么移动都不会影响我!</div><divclass="virtual"><divstyle="height: 888px; width: 10000px;"></div></div></body></html>但是很遗憾,上面的代码就只有firefox通过测试。

如何去掉页面滚动条

如何去掉页面滚动条

<body scroll=no>去掉水平滚动条:<body style="overflow-x: hidden">去掉竖直滚动条:<body style="overflow-y: hidden">隐藏横向滚动条,显示纵向滚动条:<body style="overflow-x:hidden;overflow-y:scroll">全部隐藏<body style="overflow:hidden">或者是<body scroll="no">如果是框架页,利用上面的方法仍不能去除可考虑以下办法:被包含页面里加入<style>html { overflow-x:hidden; }</style>如果想隐藏垂直滚动条:<style>html { overflow-y:hidden; }</style>这里先说一下滚动条的属性代码:overflow-y : visible | auto | hidden | scrollvisible : 不剪切内容也不添加滚动条。

auto : 在需要时剪切内容并添加滚动条hidden : 不显示超过对象高度的内容,这里不对这个属性作介绍,大家喜欢的话可以自己尝试scroll : 总是显示纵向滚动条首先我现说一下去掉滚动条的方法:如果用百度风格模版的话,滚动条只可能有一个,那就是整个空间右边最大的浏览器窗口滚动条,也就是我美化过的那个滚动条,现在告诉大家,我们可以把这个滚动条去掉,但是却不影响浏览的方法:在body{}中加入overflow-y :visible就可以了,这样滚动条就不会显示出来了。

大家可能会问,这样怎么往下拉?呵呵,既然我说了不影响浏览,那当然是有方法的,浏览的方法就是用鼠标的滚轮,虽然滚动条没了,可是鼠标滚轮还是能够让网页上下滚动的。

CSS设置table下tbody的滚动条的实现

CSS设置table下tbody的滚动条的实现

CSS设置table下tbody的滚动条的实现今天碰到⼀个关于对tabel的表的滚动事件,需求是表头不动,改变的是tbody,如果tbody⾥⾯的内容过多,让其进⾏滚动事件。

⾸先想到的就是利⽤css中overflow-y:scroll; 来进⾏内容的滚动,但是在处理tabel的display状态时,就将tabel表的布局给打乱了,如果给tabel的⽗级进⾏限制,则这个表会进⾏滚动。

在css上设置如下代码就可以了table tbody {display:block;height:200px;overflow-y:scroll;-webkit-overflow-scrolling: touch; // 为了滚动顺畅}table tbody::-webkit-scrollbar {display: none; // 隐藏滚动条}table thead, tbody tr {display:table;width:100%;table-layout:fixed;}table thead {width: calc( 100% - 1em )}table thead th{ background:#ccc;}⽰例:table表格,让thead固定,tbody有滚动条,关键是都对齐的纯css写法。

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>转载⾃·威易⽹CSS教程</title><style>table tbody {display:block;height:195px;overflow-y:scroll;}table thead, tbody tr {display:table;width:100%;table-layout:fixed;}table thead {width: calc( 100% - 1em )}table thead th{ background:#ccc;}</style></head><body><table width="80%" border="1"><thead><tr><th>姓名</th><th>年龄</th><th>出⽣年⽉</th><th>⼿机号码</th><th>单位</th></tr></thead><tbody><tr><td>张三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr><tr><td>张三封</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴与四⼗⼤盗</td></tr><tr><td>张⼩三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>腾讯科技</td></tr><tr><td>张三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>浏阳河就业</td></tr><tr><td>张三疯⼦</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr><tr><td>张三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr><tr><td>张⼤三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr><tr><td>张三五</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr><tr><td>张刘三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr><tr><td>张三</td><td>18</td><td>1990-9-9</td><td>136********</td><td>阿⾥巴巴</td></tr></tbody></table></body></html>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

css中overflow用法

css中overflow用法

css中overflow用法CSS中的overflow属性是用来控制元素内容溢出时的表现方式。

当元素内容超出其指定的尺寸时,可以通过设置overflow属性来定义内容溢出时的处理方式,包括显示滚动条、隐藏溢出内容或自动调整尺寸等。

在CSS中,overflow属性有以下几种取值:- visible:默认值,表示内容溢出时不进行任何处理,溢出内容会覆盖到其他元素上。

- hidden:表示内容溢出时进行隐藏处理,溢出内容将被裁剪掉,不可见。

- scroll:表示内容溢出时显示滚动条,用户可以通过滚动条来查看溢出内容。

- auto:表示内容溢出时自动调整尺寸或显示滚动条,具体表现方式取决于浏览器。

使用overflow属性可以为元素设置溢出时的处理方式,从而有效地控制内容的显示和隐藏。

例如,当一个容器元素的尺寸固定且内容较多时,可以通过设置overflow属性为scroll来显示滚动条,以便用户可以滚动查看全部内容。

另外,当一个图片元素的尺寸小于图片本身的尺寸时,可以通过设置overflow属性为hidden来隐藏溢出的部分,以便图片在指定尺寸内完整显示。

除了上述常用的取值外,overflow属性还有一个取值为auto。

当设置为auto时,浏览器会根据元素内容是否溢出自动调整尺寸或显示滚动条。

具体表现方式取决于浏览器,不同浏览器可能会有不同的处理方式。

需要注意的是,overflow属性只对具有尺寸限制的容器元素起作用,对于没有设置尺寸限制的元素,即使内容溢出也不会触发overflow 属性的效果。

因此,如果想要使用overflow属性来控制元素内容的溢出,必须为元素设置合适的尺寸限制。

overflow属性也可以分别控制元素的水平和垂直方向上的内容溢出处理。

通过设置overflow-x属性和overflow-y属性,可以分别控制元素水平方向和垂直方向上的内容溢出。

例如,可以将overflow-x设置为scroll,overflow-y设置为hidden,从而实现水平方向上显示滚动条,垂直方向上隐藏溢出内容的效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CSS隐藏滚动条但还可以滚动
dadaV20200315
先上实例:
/*隐藏滚动条但可以滚动,达经典!*/
body{
border: 1px solid #000000;
overflow-x: hidden;
}
body::-webkit-scrollbar{
display: none;
}
滚动条的css样式主要有三部分组成:
1、::-webkit-scrollbar 定义了滚动条整体的样式;
2、::-webkit-scrollbar-thumb 滑块部分;
3、::-webkit-scrollbar-thumb 轨道部分;
下面以overflow-y:auto;为例(overflow-x:auto同)
更接近原生的体验,是否可以隐藏滚动条,同时又保证页面可以滚动?
使用overflow:hidden隐藏滚动条,但存在的问题是:页面或元素失去了滚动的特性。

由于只需要兼容移动浏览器(Chrome 和Safari),于是想到了自定义滚动条的伪对象选择器
::-webkit-scrollbar。

隐藏滚动条的同时还需要支持滚动,我们经常在前端开发中遇到这种情况,最容易想到的是加一个iscroll插件,但其实现在CSS也可以实现这个功能,我已经在很多地方使用了,下面一起看看这三种方法。

方法1:计算滚动条宽度并隐藏起来
在本站的侧栏,你可以看到前端日报的那块内容并没有滚动条,但鼠标移上去却可以滚动内容。

这是什么技术呢?其实我只是把滚动条通过定位把它隐藏了起来。

下面给一个简化版的代码·
<div class="outer-container">
<div class="inner-container">
......
</div>
</div>
.outer-container{
width: 360px;
height: 200px;
position: relative;
overflow: hidden;
}
.inner-container{
position: absolute;
left: 0;
top: 0;
right: -17px;
bottom: 0;
overflow-x: hidden;
overflow-y: scroll;
}
这个代码巧妙的向右移动了17个像素,刚好等于滚动条的宽度。

这个值是我手动调试得来的。

在chrome和IE没发现问题。

方法2:使用三个容器包围起来,不需要计算滚动条的宽度
该代码最早是在Microsoft博客上看到的,跟我上面的思路差不多,只不过人家里面又加多了一个盒子,将内容限制在盒子里面了。

这样子就看不到滚动条同时也可以滚动。

代码如下:
<div class="outer-container">
<div class="inner-container">
<div class="content">
......
</div>
</div>
</div>
.element, .outer-container {
width: 200px;
height: 200px;
}
.outer-container {
border: 5px solid purple;
position: relative;
overflow: hidden;
}
.inner-container {
position: absolute;
left: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.inner-container::-webkit-scrollbar {
display: none;
}
方法3:css隐藏滚动条
同时该文章还分享了一种通过CSS隐藏滚动条的方法,不过这个方法不兼容IE,做移动端的可以使用。

那就是自定义滚动条的伪对象选择器::-webkit-scrollbar,详情请看之前的文章:CSS3自定义webkit滚动条样式
chrome 和Safari
//code from /hide-scrollbar.html
.element::-webkit-scrollbar { width: 0 !important }
IE 10+
.element { -ms-overflow-style: none; }
Firefox
.element { overflow: -moz-scrollbars-none; }
达达编制V20200315。

相关文档
最新文档