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身上的滚动条怎么滑动,都不影响初始包含块,从而实现使用绝对定位模拟固定定位。

  • 相关阅读:
    利用QObject反射实现jsonrpc
    使用libuv实现生产者和消费者模式
    std::function赋值的几种方法
    Qt postEvent
    Qt由pcm数据生成wav文件
    Qt websocket协议的实现
    Python中json.dump() 和 json.dumps()的区别
    Appium环境搭建(Mac)
    Mac上搭建Python集成环境
    Mac OS终端利器iTerm2(完美替代bash)
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12501970.html
Copyright © 2011-2022 走看看