position: sticky属性的基本使用

news/2024/10/24 18:01:45/

关于css中position: sticky属性的基本使用

在日常开发中有时会遇到一些需要把类似搜索框和一些轮播图等内容固定在顶部的需求,而且要在你滚动你的鼠标滚轮或者移动内容的时候直接固定在顶部不动,这种情况下我们会有一个基本的布局思路,正常布局应该是如下所示的:
这个是基本的一个布局情况
css部分

 		* {padding: 0;margin: 0;}.box {width: 100%;height: 100%;}.h100,.h200,.h300,.h400,.h500 {width: 100%;height: 300px;line-height: 300px;text-align: center;background-color: greenyellow;}.h200 {background-color: aqua;}.h300 {background-color: yellow;}.h400 {background-color: orange;}.h500 {background-color: red;}.fixed-box {width: 300px;height: 300px;line-height: 300px;background-color: rgb(247, 38, 201);text-align: center;}

html部分

 	<div class="box"><div class="fixed-box">我是固定的显示区域</div><div class="h100">这里是h100区域</div><div class="h200">这里是h200区域</div><div class="h300">这里是h300区域</div><div class="h400">这里是h400区域</div><div class="h500">这里是h500区域</div></div>

接下来的思路应该就是如何把图中粉色的那部分给固定起来,并且不会影响到布局,常规的操作应该都是通过position: fixed来实现该功能,在.fixed-box中增加一行position: fixed得到下图:
在这里插入图片描述
好像并没有什么问题,此时确实是实现了我们最初的想法,但是由于我没有在粉色盒子前加个盒子包裹住它,因此margin:0 auto的属性就失效了,它会自动从左到右排版,这种情况就可以使用别的居中属性来实现居中排布了,下面我使用transform这个属性来进行居中操作,这个属性具体就不进行描述了,有兴趣的朋友们可以自己去了解一下.我们在.fixed-box中增加这几行代码即可实现居中效果

		.fixed-box {width: 300px;height: 300px;margin: 0 auto;line-height: 300px;background-color: rgb(247, 38, 201);text-align: center;position: fixed;left: 50%;top: 0;transform: translateX(-50%);}

效果如下:
在这里插入图片描述
不管你滚动到什么地方,这个粉色盒子都会固定在顶部,基本的功能就已经完成了
在这里插入图片描述
但是这个position: fixed属性是有局限性的,如果我们的需求改动一下,我们需要不遮挡住h100部分,也就是不能遮挡住绿色部分的内容,这个时候我们又该怎么去实现呢?如果是会js的朋友们肯定就马上可以想到可以通过监听滚动条的滚动区域来进行控制这个粉色盒子的显示和隐藏,也就是没有滚动的情况下是应该如下方的样式:

		.fixed-box {width: 300px;height: 300px;line-height: 300px;background-color: rgb(247, 38, 201);text-align: center;}

它自动在绿色区域上面,当监听到滚动条超过了h100区域后再通过js增加一个类:

		.fixed-now {position: fixed;left: 50%;top: 0;transform: translateX(-50%);}

这样就实现了需求.但是如果你是没有学过js,或者说不熟悉js的人,又要实现这种效果,你应该怎么办?
这个时候position: sticky就可以完美的实现你的需求.
你可以把.fixed-box的代码改成如下:

		.fixed-box {width: 300px;height: 300px;margin: 0 auto;line-height: 300px;background-color: rgb(247, 38, 201);text-align: center;position: sticky;top: 0;}

这里就使用到了position: sticky这个属性,用中文的说法就是粘性布局,它的作用就是实现吸顶操作,就是让你想要一直固定在顶部的区域一直固定,同时又不会影响到常规布局,它可以说是相对定位relative和固定定位fixed的结合.


http://www.ppmy.cn/news/170938.html

相关文章

JS前端图片压缩上传-纯js

JS前端图片压缩上传-纯js 最近在做一个手机端的图片上传&#xff0c;写了一个比较符合自己要求的方法&#xff0c;可供参考 在做这个功能模块时&#xff0c;我遇到了以下问题&#xff0c;都花费了大量时间&#xff1a; 1. 不知道怎么压缩图片&#xff0c;&#xff08;代码和…

Dell H300/6i/6iR/H700/H800阵列卡配置(转)

说明&#xff1a;其实Dell系列的阵列卡基本都是同一个套路和界面&#xff0c;包括操作步骤&#xff0c;不同的是不同的卡性能和支持Raid模式不一样而已。 名称解释&#xff1a; Disk Group&#xff1a;磁盘组&#xff0c;这里相当于是阵列&#xff0c;例如配置了一个RAID5&…

div遮罩层

实现遮盖层&#xff0c;使一部分区域不可点击编辑等。 1.简易遮罩层一&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width<device-width>,…

css系列----纯 css 实现轮播图(手动)

2、纯 css 实现轮播图(手动) 实现原理&#xff1a;利用 css3 中 input:checked 和 &#xff5e;选择器实现 /* 设置容器大小*/ .container {position: relative;width: 800px;height: 300px; } /* 设置input位置 */ .container input {position: absolute;z-index: 23;botto…

DEF解析

DEF 全称Design Exchange Format, 用于电路物理信息交互&#xff0c;是将数字实现前后端连接起来的桥梁。目前常用的DEF version 是5.8, 在DEF 中可以定义如下信息&#xff0c;本文不解析每一部分的含义&#xff0c;只概述做物理综合需要的部分信息。DEF file 有如下限定&#…

H323——H239演示功能

1. 概述 H239在ITU文档中实际命名为Role management and additional media channels for ITU-T H.300-series terminals&#xff0c;意为H300系列中断的角色管理和额外没媒体流&#xff0c;H239是H323中用来开启辅流的信令流程规范&#xff0c;会为相关的媒体流添加角色&#…

css系列----纯 css 实现轮播图(自动)

3、纯 css 实现轮播图(自动) 实现原理&#xff1a;利用 css3 中 动画和 overflow:hidden 实现 /* 容器大小 */ .container {height: 300px;width: 800px;overflow: hidden; }/* .wrap */ .wrap {position: relative;left: 0px;width: 2400px;animation: animateImg ease 5s i…

虹科分享 | 近距离接触最新的3个勒索软件

上一期内容为大家讲解了遇到勒索软件时支付或不支付赎金的利弊&#xff0c;以及如何利用Datalocker的产品来防止基于USB的威胁进入你的网络。本期小编将带大家了解当今最新的3个勒索软件&#xff0c;以及Datalocker是如何在这之中起到作用的。了解更多内容&#xff0c;敬请阅读…