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

  • 相关阅读:
    raid0
    GitHub 标星 11000+,阿里开源的微服务组件如何连续 10 年扛住双十一大促?
    写给大家看的“不负责任” K8s 入门文档
    快速迁移 Next.js 应用到函数计算
    轻松搭建基于 Serverless 的 Go 应用(Gin、Beego 举例)
    阿里巴巴副总裁肖力:云原生安全下看企业新边界——身份管理
    从零开始入门 K8s | K8s 安全之访问控制
    深度解读!阿里统一应用管理架构升级的教训与实践
    CNCF 2019 年度报告重磅发布 | 云原生生态周报 Vol. 41
    HTML+CSS技术实现网页滑动门效果
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12501970.html
Copyright © 2011-2022 走看看