聊聊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显示隐藏一个div特效的具体实现
Feb 10 HTML / CSS
基于CSS3实现的漂亮Menu菜单效果代码
Sep 10 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
Sep 11 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
html5弹跳球示例代码
Jul 23 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
html5教程调用绘图api画简单的圆形代码分享
Dec 04 HTML / CSS
Html5新特性用canvas标签画多条直线附效果截图
Jun 30 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
Mar 31 HTML / CSS
纯CSS实现酷炫的霓虹灯效果
Apr 13 HTML / CSS
DIV CSS实现网页背景半透明效果
Dec 06 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 动态生成静态HTML页面示例代码
2014/01/15 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
PHP时间和日期函数详解
2015/05/08 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
详解vue引入子组件方法
2019/02/12 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
python交易记录整合交易类详解
2019/07/03 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
迎新晚会主持词
2014/03/24 职场文书
导游个人求职信
2014/04/25 职场文书
周年庆典答谢词
2015/01/20 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
百家讲坛观后感
2015/06/12 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
人事任命书范本
2015/09/21 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技