CSS 粘性定位 sticky 详解

CSS 粘性定位 sticky 详解

发现了个好东西

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

讲 sticky 定位之前,先说一下position 的其他定位,

absolute: 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过”left”, “top”, “right” 以及 “bottom” 属性进行规定。

立即学习“前端免费学习笔记(深入)”;

fixed: 生成固定定位的元素,相对于浏览器窗口进行定位(老IE不支持),元素的位置通过”left”, “top”, “right” 以及 “bottom” 属性进行规定。

relative: 生成相对定位的元素,相对于其正常位置进行定位,不脱离文档流。

static:

默认值,没有定位,元素出现在正常的文档流中(忽略 top, bottom, left, right 或者

z-index 声明)。inherit规定应该从父元素继承 position 属性的值。

sticky的使用:

#sticky-nav {    position: sticky;    top: 100px;}

设置 position:sticky 同时给一个 (top,bottom,right,left) 之一即可

使用条件:

父元素不能overflow:hidden或者overflow:auto属性。

必须指定top、bottom、left、right4个值之一,否则只会处于相对定位

父元素的高度不能低于sticky元素的高度

sticky元素仅在其父元素内生效

项目中的坑

问题描述:

在一个小程序开发项目中;tabs组件使用了粘性定位,其中有tab栏的切换;tab栏底部是大段列表内容list-container内容的展示;其中展示内容有click事件(或者说是touch事件);ios以及pc浏览器中对点击的测试是正常的;但在安卓手机中!!!!我的天,点击穿透了!!并且,尝试去掉list-container中的item的点击跳转,发现tab切换的点击没有了反应,事件消失了!!! 设置断点,查看事件流的走向:首先事件捕获–>目标节点tab–>事件冒泡;这个泡居然冒到了container-list中的item。。。简直噩梦 大致的项目结构:

html结构:

这是tab切换

解决办法:

在使用组件库的tab时,外层套一个div,防止点击穿透和不正常的事件流走向 或者(一个治标不治本的方法,具体看业务场景)

.组件库的样式无法改,sticky作为tab组件的行内样式,因为我使用这个tab时是直接在viewpoint的顶部的,这是完全可以用fixed达到效果。我在调用类的外部设置了position:fixed !import;样式最高优先级去覆盖了组件库中的定位样式,就正常了。

推荐教程:《PHP教程》《CSS教程》

以上就是CSS 粘性定位 sticky 详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1615236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 04:49:06
下一篇 2025年12月24日 04:49:22

相关推荐

  • css如何设置元素水平垂直居中显示

    首先我们来介绍以下两个属性: 1、text-align是设置元素中文字的水平对齐方式。 它的作用对象是文本,控制文本,对块状元素等不起效果,只能让块元素里的内容(例如p标签内的文字:让文字在p标签内居中)相对块元素居中。 2、vertical-align是设置元素的垂直对齐方式。 它的作用对象是元素…

    好文分享 2025年12月24日
    000
  • CSS弹性盒模型flex在布局中的使用方法

    CSS弹性盒模型flex在布局中的应用 元素居中 【1】伸缩容器上使用主轴对齐justify-content和侧轴对齐align-items .parent{ display: flex; justify-content: center; align-items: center;} DEMO 【2】…

    2025年12月24日 好文分享
    000
  • 使用css样式制作单选框

    我们直接来看一下具体的实现代码: (如果您想学习css,那么这里向您推荐css视频教程) Document .radio-diy .radiocircle { width: 12px; height: 12px; border: 1px solid #999; border-radius: 50%;…

    2025年12月24日
    000
  • 4种移动端适配方法

    1.@media screen实现网页布局的自适应 优点 : 无需插件,能够适应各种窗口大小,只需在CSS中添加@media screen属性。 官方文档:@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。 语法:@media me…

    2025年12月24日
    000
  • css中&表示什么意思

    我们先来看一段css源码: ul{ margin-bottom: 20px; & >li { margin-bottom: 0; } } (视频教程推荐:css视频教程) & 表示嵌套的上一级。 这是sass的语法,代表上一级选择器。 上面的源码等同于如下代码: 立即学习“前端…

    2025年12月24日
    000
  • 什么是Web安全色?

    Web安全色对于大多数写程序的人来说都是毫无概念,当然,web safe color本身是一个历史遗留问题,今天已经没有太多讨论的必要。在这里介绍web安全色只是帮助还在Google “is web safe color still important”(Google搜索到的干货确实比百度强很多)的…

    2025年12月24日 好文分享
    000
  • css实现元素自适应屏幕大小的思路是什么

    在实现元素自适应屏幕大小之前,我们先来介绍一个css知识点。 元素的margin和padding属性的值(无论是上下边距还是左右边距)如果设置为百分比,都是以宽度为基准计算的。 也就是说,在已知宽高比的情况下,css虽然不能确定height的值,但是可以确定padding-top等属性的值。 实现思…

    2025年12月24日
    000
  • CSS 实现背景动态渐变效果

    效果图 CSS 代码: *{ margin: 0; padding: 0;}body{ height: 100vh; width: 100%; overflow: hidden; background-image: linear-gradient(125deg,#F44336,#E91E63,#9C…

    2025年12月24日
    000
  • css实现文本溢出时显示省略号

    一、单行文本溢出 如果要实现单行文本的溢出显示省略号可以用text-overflow:ellipsis属性,当然还需要加宽度width属性来兼容部分浏览。 实现方法: overflow: hidden;text-overflow:ellipsis;white-space: nowrap; 效果如图:…

    2025年12月24日 好文分享
    000
  • css如何实现字体长阴影效果

    首先我们来看一下实现效果,如下图所示: 重要属性: text-shadow 属性向文本设置阴影。 (视频教程推荐:css视频教程) 立即学习“前端免费学习笔记(深入)”; HTML代码: 屮艸芔茻 CSS代码: .loop(@counter) when (@counter > 0) { .lo…

    2025年12月24日
    000
  • css实现横向与竖向进度条效果的方法

    1、横向进度条的实现代码 横向进度条 .loadbar { width:200px; height:25px; background-color:#fff; border:1px solid #ccc; } .bar { line-height:25px; height:100%; display:…

    2025年12月24日
    000
  • css实现快速回到顶部效果

    背景: 现在的网站基本上都是长页面,多的有四五屏,少的话也有两三屏,页面太长有的时候为了提升用户体验,会在页面右边出现一个回到顶部的按钮,这样能快速回到顶部,以免在滑动页面出现视觉屏幕,回到顶部一般有四种方式。 1、通过锚链接回到顶部,需要将body加入一个名为top的标记 回到顶部 2、通过Jav…

    2025年12月24日
    000
  • css如何实现适配iphone全面屏

    一、media query方式 /*iPhone X 适配*/@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) { .fixed-bo…

    2025年12月24日
    000
  • 推荐六款移动端 UI 框架

    作为一个前端人员来说,总结几款相对来说不错的用于移动端开发的UI框架是非常必要的,以下几种移动端UI框架就能基本满足工作中开发需要,根据项目需求,选用合适的框架搭建项目,更能容易提高开发效率。 一、MUI         最接近原生APP体验的高性能前端框架,追求性能体验,是我们开始启动MUI项目的…

    2025年12月24日
    000
  • CSS开发常用命名

    CSS命名规范(规则)常用的CSS命名规则   头:header   内容:content/container   尾:footer 立即学习“前端免费学习笔记(深入)”;   导航:nav   侧栏:sidebar   栏目:column   页面外围控制整体佈局宽度:wrapper   左右中:…

    2025年12月24日
    000
  • CSS 尺寸的百分比

    CSS中的单位 绝对单位 in-英寸; cm; 立即学习“前端免费学习笔记(深入)”; mm; pt-磅 相对单位 em-与元素字号挂钩; rem-与根元素字号挂钩; px-与css像素挂钩 %-另一属性值的百分比 CSS中可以取百分比的属性 定位:top, right, bottom, left …

    2025年12月24日
    000
  • 关于css中的id选择器与class选择器的介绍

    id 选择器 id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。 HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义。 例如: #para1{ text-align:center; color:red;} 注意: ID属性不要…

    2025年12月24日
    000
  • 3种CSS使用方法

    (1)链接式:(外部引入.css文件) ( 用得比较多 ) 在html加载前就被引用 在网页的 标签对中用引入外部样式表,使用html规则引入外部css :      导入式:(外部引入.css文件)      ( 不使用 ) @import在html加载完成后才引用,并且无法在JS DOM模型中插…

    2025年12月24日
    000
  • 深入理解px、rem、em、vh、vw之间的区别

    绝对长度 px px是像素值,是一个固定的长度,比如我们的米,厘米一样。 相对长度 为什么我们需要相对长度rem em等? 固定长度已经不能满足我们现在的需求了。 举例:比如我们在缩小我们屏幕的时候,我们不仅仅是需要缩小我们的盒子的宽高,我们还想要让我们字体大小也随之缩小,这样用户体验会更好一点。 …

    2025年12月24日
    000
  • 关于css样式表及多重样式优先级的介绍

    插入样式表的方法有三种,分别是: 1、外部样式表; 2、内部样式表; 3、内联样式 外部样式表 立即学习“前端免费学习笔记(深入)”; 在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 标签链接到样式表。 标签在(文档的)头部: 实例如下: 浏览器会从文件 myst…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信