网站建设资讯

NEWS

网站建设资讯

css样式sticky的简单介绍

CSS3 移动端 滚动置顶 吸顶

如果是在回调里置顶DIV的话(比如点击事件),可以用scrollIntoView。

成都创新互联专注于东宝企业网站建设,响应式网站开发,购物商城网站建设。东宝网站建设公司,为东宝等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

scrollIntoView如果不想吸顶 可以加个before伪类设置高度

CSS3滚动置顶目前有两种解决方案:

第一种(主流):transform: translate3d(x,y,z)

第二种(未来):position: sticky;top:xxx;

假设需求:

需求一:滚动过程中A ,C区域不吸顶,B区域吸顶

VUE框架推荐直接使用vantUI插件,indexbar索引栏。

vantUI原理用的是transform。

以上面图片为例大致讲解:

1.transform对JS的能力要求高些,页面加载完毕后,给每个B区域对应的DIV设置translate3d的Y轴值,值为B对应div离顶部的高度。

2.当开始滚动起来后,Y轴值为原来值减去滚动条滚动距离值

3.当Y轴值小于0的时候,锁死为0,就自动吸顶了

4.当待置顶DIV的translate3d Y轴值小于DIV的高度时,已置顶DIV的Y轴值开始变为负数,这样会有一个顶出的效果

5.已置顶DIV被待置顶DIV顶出一定距离(一般两倍DIV高度),取消translate3d属性,

6.回滚反向计算即可

需求二:滚动过程中 C不吸顶,B吸顶,A一直吸顶 B在A下面

这个需求vantUI(v2.9.3)目前解决不了,采用translate太复杂,决定采用CSS3新属性position: sticky。

如果是2018年使用该属性兼容性还是个问题,但来到2020年下半年,对大部分生产环境都不是问题。博主测试的IOS11和安卓小米 华为 都支持该属性。

博主的建议是:如果是公司APP内嵌H5页面或者微信打开可以使用该属性,如果纯H5页面 ,建议translate.

position: sticky;字面意思就是粘性定位。

可以粘顶部也可以粘底部 右侧 左侧。

所以除了position: sticky;还要给一个定位值,比如top:0px或者right:0px就可以了 非常简单。

比如直接给Bdiv设置下面样式就行

实际使用要注意下面几点:

1.如果想兼容IOS12 IOS11 必须带position: -webkit-sticky;而且要在样式表里写,不能写在style里。

2.容器相关。只有要移除容器范畴才起作用。比如body的height不要设置100%,height:100%表示所有元素一直在屏幕范围

css的position的属性有哪些

position 属性指定了元素的定位类型。它有五个属性,分别是

static:HTML 元素的默认值,即没有定位,遵循正常的文档流对象。静态定位的元素不会受到 top, bottom, left, right影响。

relative:相对定位元素的定位是相对其正常位置。

fixed:元素的位置相对于浏览器窗口是固定位置。注:即使窗口是滚动的也不会移动

absolute:绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于html。注:定位使元素的位置与文档流无关,因此不占据空间。定位的元素和其他元素重叠。

sticky:基于用户的滚动位置来定位。粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

css sticky必须结合js使用吗

目前直接这样引用使用。

希望我的回答可以帮到你,有什么不懂可以追问。

css怎么样需要学习什么知识?

CSS:Cascading Style sheet层叠样式表或级联样式表,是一种样式设置规则,用于控制页面的外观的样式。使用CSS能够实现内容与样式的分离、方便团队开发,有助于样式复用、便于网站后期维护,实现页面的精准控制、让页面更精美。

CSS代码书写方式分为三种:嵌入式、外链式、行内式。

嵌入式:将CSS代码嵌入到HTML文件中,嵌入式是通过HTML中的

外链式:外链式是指单独写一个以.css为扩展名的文件,然后在标签中使用标签,将这个css文件链接到html文件中。(注意:css文件不能单独的运行,它必须要依赖于HTML文件)

语法规则:

link rel="stylesheet" href="css文件的地址"

行内式:将CSS代码书写在HTML标签的style属性中。style是一个通用属性,每一个标签里面都拥有这个属性!

语法格式:

标签名 style=”属性:值;属性:值;”

初学CSS,你需要掌握这些使用技巧:

1、负边距的效果。注意左右负边距表现并不一致,左为负时是左移,右为负时是左拉。

2、BFC应用汇总:阻止外边距合并(margin collapsing)、消除浮动的影响。

3、flex布局:当flex-grow之和小于1时,只能按比例分配部分剩余空间,而不是全部。

4、并不是给元素设置display:block就会自动填充父元素宽度。input 就是个例外,其默认宽度取决于size特性的值。

5、对定位和固定定位时,同时设置left和right等同于隐式地设置宽度。

6、position:sticky,粘性定位要起作用需要设置最后滞留位置。chrome有bug,firefox完美。

7、要使模态框背景透明,用rgba是一种简单方式。

8、display:table实现多列等高布局。css实现定宽高比的原理:padding的百分比是相对于其包含块的宽度,而不是高度。

9、background-position百分比的正确理解方式:图片自身的百分比位置与容器同样的百分比位置重合。

10、background-repeat新属性值:round和space。前者表示凑个整,后者表示留点缝。

11、background-attachment指定背景如何附着在容器上,注意其属性值local和fixed的使用。

12、可以使用outline来描边,不占地方,它甚至可以在里面。

13、浏览器默认显示tab为8个空格,tab-size可以指定空格长度。

14、图片在指定尺寸后,可以设置object-fit为contain或cover保持比例。

15、设置宽度为fill-available,可以使inline-block像block那样填充整个空间。

CSS中position是什么属性,有那些属性值?

position 属性指定了元素的定位类型。

语法,position:static -默认值,没有定位,遵循正常的文档流对象;

position:fixed -元素的位置相对于浏览器窗口是固定位置;

position:relative -相对定位元素的定位是相对其正常位置;

position:absolute --绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于html;

position:sticky -粘性定位,基于用户的滚动位置来定位。它的行为就像position:relative;

而当页面滚动超出目标区域时,它的表现就像position:fixed;,它会固定在目标位置。

示例

style

.dianqi{

position:fixed;

CSS属性固定页面头部(导航栏)

其实用postion: fixed并不是很方便,用position: sticky会更容易达到我们的目的。

只需要给头部设置:

即可。

将position设置为sticky,那么头部组件还会占有着上方空间,所以下面的body中的组件可以不用设置预留top。如果是用的fixed属性,那么body下面的组件也要算出导航栏的长度,再设置top属性,这样一来就麻烦了很多


当前名称:css样式sticky的简单介绍
文章地址:http://njwzjz.com/article/dsdcdep.html