您现在的位置是:网站首页> 编程资料编程资料
详解css粘性定位position:sticky问题采坑CSS之定位布局(position,定位布局技巧)css定位position引发的层级关系问题详解CSS position属性和实例应用演示CSS的position定位和float浮动详解css关于position属性的用法详解(绝对定位和相对定位的混淆)css position fixed 左右双定位的实现代码
2023-10-19
279人已围观
简介 这篇文章主要介绍了详解css粘性定位position:sticky问题采坑的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前言:position:sticky是css定位新增属性;可以说是相对定位relative和固定定位fixed的结合;它主要用在对scroll事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到sticky粘性定位的要求时(比如top:100px);position:sticky这时的效果相当于fixed定位,固定到适当位置。
使用:
#sticky-nav { position: sticky; top: 100px; }设置position:sticky同时给一个(top,bottom,right,left)之一即可
使用条件:
1、父元素不能overflow:hidden或者overflow:auto属性。
2、必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
3、父元素的高度不能低于sticky元素的高度
4、sticky元素仅在其父元素内生效
例子:css代码:
* { margin: 0; padding: 0 } html body { height: 100vh; width: 100% } h1 { height: 200px; position: relative; background-color: lightblue; } h1:after { content: ''; position: absolute; top: 100px; left: 0; width: 100%; height: 2px; background-color: red; } #sticky-nav { position: sticky; /*position: absolute;* left: 0;*/ top: 100px; width: 100%; height: 80px; background-color: yellowgreen; } .scroll-container { height: 600px; width: 100%; background-color: lightgrey; }html代码:
高200px;距顶部100px
发生滚动
发生滚动
项目中遇到的坑:
先来看看各大内核对position:sticky的支持情况

问题描述:
在一个小程序开发项目中;tabs组件使用了粘性定位,其中有tab栏的切换;tab栏底部是大段列表内容list-container内容的展示;其中展示内容有click事件(或者说是touch事件);ios以及pc浏览器中对点击的测试是正常的;但在安卓手机中!!!!我的天,点击穿透了!!并且,尝试去掉list-container中的item的点击跳转,发现tab切换的点击没有了反应,事件消失了!!!
设置断点,查看事件流的走向:首先事件捕获-->目标节点tab-->事件冒泡;这个泡居然冒到了container-list中的item。。。简直噩梦大致的项目结构:
html结构:
这是tab切换
解决办法:
1.在使用组件库的tab时,外层套一个div,防止点击穿透和不正常的事件流走向或者(一个治标不治本的方法,具体看业务场景)
2.组件库的样式无法改,sticky作为tab组件的行内样式,因为我使用这个tab时是直接在viewpoint的顶部的,这是完全可以用fixed达到效果。我在调用类的外部设置了position:fixed !import;样式最高优先级去覆盖了组件库中的定位样式,就正常了。
一点想法:
position:sticky对安卓的兼容简直让人想哭,目前手机端的用户非常多,要做到兼顾,由于安卓系统对sticky粘性定位的惨淡支持;如果业务场景可以用其它定位解决,那就还是不要用sticky吧。。。。留下心酸的泪水。。。。
ps:有别的解决方法,欢迎大家告知,谢谢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 详解flex和position兼容采坑笔记CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 移动端适配 使px自动转换rem吃透移动端 1px的具体用法postcss-pxtorem移动端适配的实现Html5移动端适配IphoneX等机型的方法浅谈移动端适配大法html5实现移动端适配完美写法详解如何使用rem或viewport进行移动端适配
- CSS Reset 样式重置的实现示例css滚动条样式修改的代码CSS 设置滚动条样式的实现纯CSS3 Material Design风格单选框和复选框特效css 设置overflow:scroll 滚动条的样式 使用CSS3实现input多选框自定义样式的方法示例如何只在IE上加载CSS样式表css清除默认样式和设置公共样式的方法
- CSS实现照片堆叠效果的实例代码jQuery和CSS3全屏展开纸张堆叠样式导航菜单特效jQuery和CSS3超酷3D堆叠式幻灯片特效源码HTML5+CSS3图片堆叠转瀑布流布局特效源码jQuery+CSS3实现堆叠卡片样式导航菜单特效源码CSS3炫酷堆叠卡片切换动画特效源码 14种jQuery+CSS3实现的堆叠式面板切换特效源码
- 六大布局之FrameLayout的使用CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS3 毛玻璃效果使用CSS3制作倾斜导航条和毛玻璃效果Css3新特性应用之视觉效果实例CSS3毛玻璃效果(blur)有白边问题的解决方法利用CSS3实现毛玻璃效果示例源码使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法CSS毛玻璃效果如何实现css实现照片模糊效果类似毛玻璃效果
- CSS 外边距(margin)重叠及防止方法使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)CSS实现三栏布局中间一栏自适应且随文字大小变化宽度的示例代码CSS columns实现两端对齐布局的示例代码用CSS Grid布局制作一个响应式柱状图的实现解决CCS中的margin:top塌陷问题css如何利用负margin技术实现平均布局解决margin 外边距合并问题 css 布局 之 两端布局的实例代码 (利用父级负的margin)
- 天天酷跑答题积分领取方法_天天酷跑答题积分领取异常解决办法_手机游戏_游戏攻略_
- 天天酷跑积分商城快速抽奖技巧和规律详细介绍_手机游戏_游戏攻略_
- 天天酷跑 吸血魔王属性技能详细介绍_手机游戏_游戏攻略_
