聊聊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 相关文章推荐
几个CSS3的flex弹性盒模型布局的简单例子演示
May 12 HTML / CSS
利用CSS3实现进度条的两种姿势详解
Mar 21 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
Oct 16 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
Feb 24 HTML / CSS
HTML5新增的标签和属性归纳总结
May 02 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
Jan 06 HTML / CSS
html5教程制作简单画板代码分享
Dec 04 HTML / CSS
Html5 audio标签样式的修改
Jan 28 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
HTML5 表单验证失败的提示语问题
Jul 13 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
Jul 20 HTML / CSS
css3中2D转换之有趣的transform形变效果
Feb 24 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
探讨:如何编写PHP扩展
2013/06/13 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python之os操作方法(详解)
2017/06/15 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
python返回数组的索引实例
2019/11/28 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
物理系毕业生自荐信
2013/11/01 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
优秀护士获奖感言
2014/02/20 职场文书
我的祖国演讲稿
2014/05/04 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
运动会拉拉队口号
2014/06/09 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书