聊聊CSS粘性定位sticky案例解析


Posted in HTML / CSS onJune 01, 2022

背景

最近在做项目迁移,因为技术不同,导致某些功能的问题需要手动解决;如何在居位在主体区域底部不随内容而滚动;
OK进入正体这期分享的是CSS粘性定位属性sticky来解决上面的问题

粘性定位:

粘性定位可以被认为是相对定位和固定定位的混合。是 position:sticky是css定位新增属性;它主要用在对 scroll 事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到 sticky粘性定位的要求时(比如top:100px);position:sticky这时的效果相当于fixed定位,固定到适当位置

案例:

我们先来看个案例及最终的效果

聊聊CSS粘性定位sticky案例解析

实现的代码

通过一个简单案例去带大家粗略了解粘性布局更容易更好理解,东西本身不负载但存在一些问题需要去进一步了解

问题探索及项目中的坑

  • 如果发现sticky粘性定位失效,如何解决
    解决方案: 一般sticky粘性定位失效,我们需要去找他的父元素看他的父亲元素是否设置overflow,一般都以滚动条那个父元素为主
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div class="aside-warp">
    <div>1</div>
    <div>2</div>
    <div class="icon">图标</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>
    <div>10</div>
    <div>11</div>
    <div>12</div>
    <div>13</div>
    <div>14</div>
    <div>15</div>
    <div>16</div>
    <div>17</div>
    <div>18</div>
    <div>19</div>
  </div>
</body>
</html>
<style>
  body {
    height: 2000px;
    overflow: auto;
  }
  .aside-warp {
    margin-top: 50px;
    height: 700px;
    width: 500px;
    background-color: aliceblue;
    overflow: hidden; //这里是模仿没有滚动条的效果
  }
  .aside-warp div {
    height: 80px;
    line-height: 80px;
    text-align: center;
    border: 1px solid red;
  }
  .icon {
    position: sticky;
    top: 0px;
    background-color: aquamarine;
  }
</style>

如果能解决上面的案例说明对粘性布局了解;

来说明下上面的案例的问题:为什么此时图标就无法粘性定位了,主要是因为它(子元素)不知道以那个父元素的滚动为准(现在有两个父级元素都产生了滚动),所以我们要对一层层祖级元素检查看是否有overflow属性如果有将元素设置 overflow: visible; body {overflow: visible; }; 简单理解:两个父级body 和div.main 如果同高度宽度的话,子元素就不知道到底以父元素为主,就会出现无法粘性定位的问题,所以避免这个问题我们要将其中不要定位的父元素设置{overflow: visible; }; PS:像这种案例非常常见我只是随机例举,比如像吸顶啊等等都是可以用粘性定位实现的

到此这篇关于关于CSS粘性定位sticky的文章就介绍到这了,更多相关CSS粘性定位sticky内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
css背景图片的背景裁切、背景透明度、背景变换等效果运用
Dec 24 HTML / CSS
纯css3制作网站后台管理面板
Dec 30 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
Dec 12 HTML / CSS
详解CSS3 Media Queries中媒体属性的使用
Feb 29 HTML / CSS
canvas实现图片马赛克的示例代码
Mar 26 HTML / CSS
HTML5单页面手势滑屏切换原理
Mar 21 HTML / CSS
HTML5中indexedDB 数据库的使用实例
May 11 HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
Sep 05 HTML / CSS
Html5嵌入钉钉的实现示例
Jun 04 HTML / CSS
详解CSS中的特指度和层叠问题
Jul 15 HTML / CSS
CSS中妙用 drop-shadow 实现线条光影效果
Nov 11 HTML / CSS
HTML5之高度塌陷问题的解决
Jun 01 #HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 #HTML / CSS
HTML中实现音乐或视频自动播放案例详解
May 30 #HTML / CSS
CSS文本阴影 text-shadow 悬停效果详解
May 25 #HTML / CSS
HTML页面中使两个div并排显示的实现
May 15 #HTML / CSS
html中相对位置与绝对位置的具体使用
CSS 左边固定宽右边自适应的6种方法
May 15 #HTML / CSS
You might like
用 PHP5 轻松解析 XML
2006/12/04 PHP
一段php加密解密的代码
2007/07/16 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
为你总结一些php信息函数
2015/10/21 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
php组合排序简单实现方法
2016/10/15 PHP
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
浅析Ajax语法
2016/12/05 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
原生JS无缝滑动轮播图
2019/10/22 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
django中的setting最佳配置小结
2017/11/21 Python
Sanic框架配置操作分析
2018/07/17 Python
Python中print函数简单使用总结
2019/08/05 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python