zoukankan      html  css  js  c++  java
  • CSS——设置滚动条出现在body身上

    先看代码:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			*{
    				margin: 0;
    				padding: 0;
    			}
    			html{
    				margin: 30px;
    				height: 80%;
    				border: 1px solid;
    				overflow: hidden;
    			}
    			body{
    				margin: 30px;
    				height: 80%;
    				border: 1px solid deeppink;
    				overflow: auto;
    			}
    		</style>
    		
    	</head>
    	<body>
    		
    		<div id="test" style="height: 3000px;">
    			
    		</div>
    	</body>
    </html>
    

     当body,html元素同时出现overflow属性时,滚动条出现在body上(body的overflow值设置为auto,html元素的overflow值任意)

    如果,body,html元素中只有一个有overflow属性,那么滚动条出现在html的上一级,即视口

    再看一个例子,  给div设置滚动条

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			*{
    				margin: 0;
    				padding: 0;
    			}
    			html{
    				margin: 30px;
    				height: 80%;
    				border: 1px solid;
    				overflow: hidden;
    			}
    			body{
    				margin: 30px;
    				height: 80%;
    				border: 1px solid deeppink;
    				overflow: auto;
    			}
    		</style>
    	</head>
    	<body>
    		
    		<div id="test" style="height: 3000px;">
    			
    		</div>
    	</body>
    </html>
    

     

    如果要禁止   "视口"   的滚动条, html,body任意一个设置overflow属性值为hidden即可。

    使用绝对定位模拟固定定位

    先看一个例子:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			*{
    				margin: 0;
    				padding: 0;
    			}
    			html{
    				height: 100%;
    			}
    			body{
    				height: 100%;
    			}
    			#wrap{
    				 300px;
    				height: 300px;
    				background-color: pink;
    			}
    		</style>
    	</head>
    	<body style="height: 3000px;">
    		<div id="wrap">
    			
    		</div>		
    	</body>
    </html>
    

     当body身上的的滚动条滚动时,初始包含块的位置发生改变,导致wrap块移动。

      初始包含块: 是一个视窗大小的矩形。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    		<style>
    			*{
    				margin: 0;
    				padding: 0;
    			}
    			html{
    				height: 100%;
    				overflow: hidden;
    			}
    			body{
    				height: 100%;
    				overflow: hidden;
    			}
    			#wrap{
    				height: 100%;
    				border: 1px solid deeppink;
    				overflow: auto;
    			}
    			
    			#testFixed{
    				 100px;
    				height: 100px;
    				position: absolute;
    				left: 0;
    				top: 0;
    				background-color: #FF1493;
    			}
    		</style>
    		
    	</head>
    	<body>
    		
    		<div id="wrap">
    			<div id="testFixed">
    				
    			</div>
    			
    			<div id="test" style="height: 3000px;">
    				
    			</div>
    		</div>		
    	</body>
    </html>
    

    初始包含块: 是一个视窗大小的矩形。

    testFixed设置了position:absolute,相对初始包含块定位。无论div身上的滚动条怎么滑动,都不影响初始包含块,从而实现使用绝对定位模拟固定定位。

  • 相关阅读:
    Oracle 列顺序测试
    Java基于Servlet过虑器
    Java基于Servlet 验证吗
    WCF实例上下文
    WCF的行为与异常-------配置文件说明
    WCF异步
    WCF的通信
    分布式架构剖析
    [loj2542]「PKUWC2018」随机游走——min-max容斥+树上高消
    [bzoj4589]Hard Nim——SG函数+FWT
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12501970.html
Copyright © 2011-2022 走看看