接着,我们来看看如何使用CSS scroll snap。 CSS Scroll Snap 简介 要在容器上使用scroll snap,它的子项目应该内联显示,这可以用我上面解释的方法之一来实现。...滚动容器的轴线 滚动容器的轴表示滚动方向,它可以是水平或垂直的,x值表示水平滚动,而y表示垂直滚动。...这意味着,滚动必须对齐到滚动容器的开始处。 在下图中,每次用户向右滚动时,浏览器都会将项目捕捉到容器的开头。...参见下图: 滚动容器的 start 子项目将吸附到其水平滚动容器的开始处。 滚动容器的 center 子项目将吸附到其滚动容器的中心。 滚动容器的 end 子项将对齐到其滚动容器的末尾。...请注意,当用户再次向右滚动时,.item-3会捕捉到滚动容器的开头,这意味着仅具有边距的元素将受到影响。
接着,我们来看看如何使用CSS scroll snap。 CSS Scroll Snap 简介 要在容器上使用scroll snap,它的子项目应该内联显示,这可以用我上面解释的方法之一来实现。...滚动容器的轴线 滚动容器的轴表示滚动方向,它可以是水平或垂直的,x值表示水平滚动,而y表示垂直滚动。...这意味着,滚动必须对齐到滚动容器的开始处。 在下图中,每次用户向右滚动时,浏览器都会将项目捕捉到容器的开头。...参见下图: image.png 滚动容器的 start 子项目将吸附到其水平滚动容器的开始处。 image.png 滚动容器的 center 子项目将吸附到其滚动容器的中心。...请注意,当用户再次向右滚动时,.item-3会捕捉到滚动容器的开头,这意味着仅具有边距的元素将受到影响。
这是一个示例,设置了一个弹性容器,其中弹性项之间有10px的间隔: .container { display: flex; gap: 10px; } 使用这个CSS,容器内的flex项目之间将有一个...它提供了一种创建平滑且精确的滚动行为的方式,特别适用于需要滚动浏览一系列项目或部分的情况。 scroll-snap 属性有多个子属性,用于控制滚动行为的不同方面。...,确保在两个方向上都能获得流畅而精确的滚动体验。...这是一个将捕捉位置与滚动容器的起始位置对齐的示例: .container { scroll-snap-align: start; } 使用这个CSS,当滚动停止时,滚动容器将会将捕捉位置对齐到容器的起始位置...scroll-snap 属性提供了一种强大的方式来增强滚动体验,并通过部分或项目之间的直观导航来创建。
根据 CSS Scroll Snap Module Level 1 规范,CSS 新增了一批能够控制滚动的属性,让滚动能够在仅仅通过 CSS 的控制下,得到许多原本需要 JS 脚本介入才能实现的美好交互...CodePen Demo -- CSS Scroll Snap Both mandatory Demo scroll-snap-align 使用 scroll-snap-align 可以简单的控制将要聚焦的当前滚动子元素在滚动方向上相对于父容器的对齐方式...CodePen Demo -- CSS Scroll Snap Demo 不规则子元素滚动 如果子元素大小不一,也能有非常好的表现,使用 scroll-snap-align: center,使得不规则子元素在每次滚动后居于容器中间...然而可选的值只有三个,有的时候我们希望进行一些更精细的控制时,可以使用 scroll-margin 或者 scroll-padding 其中: scroll-padding 是作用于滚动父容器,类似于盒子的...总结一下就是,scroll-snap-align 可以对滚动之后的对齐方式进行简单控制,而配合 scroll-margin / scroll-padding 则可以进行精确控制。
CSS 的 position 值中,有一个非常有用的值 -- position: sticky,通常会被用于各种吸顶,吸底,吸边的效果中。...其中有一个非常重要的概念就是 nearest scrollport,它表示 sticky 元素在即将消失前会相对它最近的 scrollport 去做定位。....sticky 生效吸附的滚动元素中间,添加上一层 .parent 的 div 元素,不给 div 添加任何样式,sticky 则失效了。...CodePen Demo -- invalid Sticky Demo 1 失效原因:此时 .sticky 元素的最近的 scrollport 变成了它的父容器 div,而父容器 div 的高度和 .sticky...更多精彩 CSS 技术文章汇总在我的 Github -- iCSS ,持续更新,欢迎点个 star 订阅收藏。
在Web 开发领域中,CSS(层叠样式表)是构建网站视觉美感和布局的支柱。虽然许多开发人员熟悉常用的 CSS 属性,但仍有大量隐藏的宝石等待被发现。...在今天这篇文章中,我们揭示了 15 个隐藏的 CSS 属性,这些属性可能没有引起您的注意,但在增强您的网页设计能力方面具有巨大的潜力。...,只需简单的声明即可实现平滑的滚动动画。...img { image-rendering: pixelated; } 8. overscroll-behavior: 过度滚动行为确定用户过度滚动元素时的行为,允许开发人员进一步自定义滚动体验...,从而提供对滚动交互的精细控制。
overflow 默认值为 visible,其中的内容可以超出其父值。...在上图中,无论内容是否长,滚动条总是可见的。注意,这取决于操作系统。 Auto auto这是一个聪明的关键字,仅当内容比其容器长时才显示滚动条。 ?...注意,在图中,只有当内容比其容器长时,滚动条才可见。接下来,我们将讨论与overflow相关的longhand属性 Overflow-X 该家伙负责x轴或元素的水平边。...大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。 Overflow的常见问题:在手机上滚动 例如,当我们有一个滑动条时,仅仅添加overflow-x是不够的。...grid 项目 CSS 网格有三种情况可以导致水平滚动,来看看它们。 对列使用像素值 ? 当使用像素值时,这将在视口宽度较小时引起问题。
任何一个容器都可以指定为Flex布局。 CSS3在布局方面做了非常大的改进,使得我们对块级元素的布局排列变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大的作用。...主轴:Flex容器的主轴主要用来配置Flex项目,默认是水平方向侧轴:与主轴垂直的轴称作侧轴,默认是垂直方向的方向:默认主轴从左向右 ,默认侧轴从上到下 ?...center:各行向弹性盒容器的中间位置堆叠。 space-between:各行在侧轴中平均分布。 space-around:第一行贴上边,最后一个行贴下边,其他行在弹性盒容器中平均分布。...flex:1; order属性 order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。...css3 是否使用css3 transform来实现滚动效果,默认true,不用修改,CSS3的动画效率比较js高。
,这个对象是距离调用offsetParent的父级元素中最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。...如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素的引用。...如果当前元素的父级元素中没有进行CSS定位(position为absolute/relative),offsetParent为body 如果当前元素的父级元素中有CSS定位(position为absolute.../relative),offsetParent取父级中最近的元素 obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型...offsetLeft= offsetParent的padding-left + 中间元素的offsetWidth + 当前元素的margin-left 2. scroll scroll指滚动,包括这个元素没显示出来的实际宽度
但是在响应式网页设计中,服务器向所有设备展现的HTML代码都是相同的,仅通过使用CSS用于改变设备上页面的呈现方式。...下面是移动优先样式的常见用例示例,其中对于较小的设备,列的宽度为100%,但在较大的视口中,列的宽度为50%。...在这种情况下,我们可以使用另一种技术-水平滚动。 使用内容溢出滚动条进行水平滚动 可能会有这样一种情况:您的内容会溢出界面,而没有一种优雅的处理方式去解决。...没关系,内容溢出滚动条可以为你解决这个问题。 此技术的常见用途包括可滚动菜单和表格。下面是一个可滚动菜单的示例。...通过picture标签,我们实际上仅渲染一个图像,并且仅基于用户的设备加载最合适的图像。 WebP是一种现代图像格式,可为Web页面上的图像提供出色的压缩方式。
;center center表示将图片放到正中间。...如果您仅规定了一个值,另一个值将是 50%。 xpos ypos 第一个值是水平位置,第二个值是垂直位置。 左上角是 0 0。单位是像素 (0px 0px) 或任何其他的 CSS 单位。...单位是像素 (0px 0px) 或任何其他的 CSS 单位。 如果您仅规定了一个值,另一个值将是50%。 您可以混合使用 % 和 position 值。 ? ?...属性值可以是: fixed(背景就会被固定住,不会被滚动条滚走)。...上面的属性中,可以任意省略其中的一部分。 上面的属性中,可以任意省略其中的一部分。
使用 :has() 选择器可以访问父元素、子元素,甚至兄弟元素 例如:带有“⭐️”元素的项目会应用灰色背景,而带有选中复选框的项目会应用蓝色背景。...Style Queries 样式查询 容器查询规范 允许查询父容器的样式值。目前在 Chrome 111 中部分实现,可以在其中使用 CSS 自定义属性来应用容器样式。...,它允许您根据滚动容器的滚动位置控制动画的播放。...这意味着当您向上或向下滚动时,动画会向前或向后滑动。此外,对于滚动驱动动画,您还可以根据元素在其滚动容器中的位置来控制动画。...这允许您创建有趣的效果,例如视差背景图像、滚动进度条和在进入视野时显示自己的图像。 此 API 支持一组 JavaScript 类和 CSS 属性,使您可以轻松创建声明性滚动驱动的动画。
本文将介绍利用 CSS 实现滚动视差效果的一个小技巧,并且,利用这个技巧来制作一些有意思的交互特效。...关于使用 CSS 实现滚动视差效果,在之前有一篇文章详细描述过具体方案 - CSS 实现视差效果,感兴趣的同学可以先看看这篇文章。...这里,会运用上这样一种纯 CSS 的视差技巧: 使用 transform: translate3d 实现滚动视差 这里利用的是 CSS 3D,实现滚动视差效果。...g-container 容器,即可得到一种 3D 效果: 由于还需要视差效果,我们需要给不同的层赋予不同的 translateZ(),我们稍微改造下代码,给每个 g-box 中间,再加多一层正常的...那怎么利用 CSS 再把这个动画和滚动操作结合起来呢?
当用户滚动滚动容器内的溢出内容时,内容可以被捕捉到位,从而提供分页和滚动定位。...滚动对齐: 新的 scroll-snap-align 属性允许你控制元素在对齐到对齐位置时的对齐方式。例如,你可以使用此属性来确保元素始终与滚动容器的顶部、底部、中心或左/右对齐。...CSS Grid CSS 子网格是 CSS 网格布局的一项功能,允许你在单个网格容器中创建嵌套网格,并且还有新功能即将推出!...你将能够命名网格上的网格线,然后根据这些名称而不是行号来定位项目,例如本例中: .grid { display: grid; grid-template\-names: a b c;...其中一个选项卡是“网格”选项卡。 “网格”选项卡将向你显示 CSS 网格布局的可视化。可视化将向你显示网格线、网格轨道和网格项目。 CSS 子网格是一个有价值的工具,可用于创建复杂的响应式布局。
在本节中,我们将专注于防止侧边栏在滚动主要内容时移动。我们希望将侧边栏样式设置为固定位置,以便主体可以自行滚动而不带上侧边栏。...这是因为内容比其容器的高度长。在下一节中,我们将学习如何防止导航项目列表显示在侧边栏之外。d). 使用滚动条管理内容溢出防止导航项目显示在侧边栏之外非常简单。...只需使用一行CSS代码即可完成此操作,该行代码使用overflow-y属性。将overflow-y属性设置为scroll会为超出其高度的内容创建一个可滚动的容器。超出侧边栏范围的项目将被隐藏。...下面的截图显示了一个橙色容器,其中包含一系列蓝色正方形,这些正方形的宽度超出了容器的宽度。如果容器具有水平滚动条,它会看起来更好。...样式化水平滚动条(flexbox滚动)样式化水平滚动条与样式化垂直滚动条类似,只是一个属性不同。高度属性用于设置水平滚动条的厚度,而不是宽度属性。
右列容器开启右浮动 使中间自适应的宽度为父级容器减去两个定宽的列 实现CSS代码如下: .left { /* 1....通过position实现 实现步骤 左右两列脱离文档流,并通过偏移的方式到达自己的区域 使中间自适应的宽度为父级容器减去两个定宽的列 通过外边距将容器往内缩小 实现CSS代码如下: .left {...实现CSS代码如下: .container { display: grid; /* 将其划分为两行,其中一列有本身宽度决定, 一列占剩余宽度*/ grid-template-columns:...Flex方案 实现步骤如下 开启 flex 布局 将子元素布局方向修改为垂直排列 设置最小高度为当前视口,使不管中间部分有多高,始终都可以保持在底部 设置中间部分容器高度为自适应 实现CSS代码如下:...使用calc函数实现 实现步骤如下: 通过 calc 函数计算出中间容器的高度。 中间出现滚动条的容器设置overflow: auto即出现滚动条的时候出现滚动条。
新的 Interop 2022 规范整体偏向于 15 个领域,其中 10 个领域是综合去年 CSS 2021 现状调查和 GitHub 投票得出的结论,大多数前端开发人员认为这些领域在跨浏览器存在兼容性问题会特别难处理...Containment(CSS contain 属性) contain 属性用于识别和测量特定容器的大小,然后根据该容器的大小应用不同的样式。...CSS 中的 scroll-behavior 属性设置当滚动由导航或 CSSOM 滚动 API 触发时,滚动框会出现什么行为。...Subgrid(子网格) Subgrid 可轻松将网格容器的后代元素放置在该网格上,在跨复杂布局排列项目时无需考虑 DOM 结构。...新的视窗单位考虑包含标题栏的布局,引入了最大、最小和动态视窗单位,比如 100svh 指 100% 最小可能视窗高度,100lvh 指 100% 最大可能视窗高度,100dvh 指 100% 动态视窗高度——该值将随着用户滚动而改变
当overflow 属性值为hidden时,溢出部分将不可见;为visible时,溢出的内容信息可见,只是被呈现在盒子的外部;当为scroll时,滚动条将被自动添加到盒子中,用户可以通过拉动滚动条显示内容信息...当年微软的IE浏览器占据超过80%市场份额的时候,想自己独立制定一套浏览器标准,其中就包括IE的盒模型,但是有很多公司不同意IE的做法,他们遵循的是W3C的标准来定制浏览器,也就造成了现在浏览器不同的CSS...盒模型,但是仍有很多老网站采用的是老IE的标准(怪异模式),因此很多浏览器保留了IE的怪异模式。...,最后让子容器并排充满父容器,代码如下 <!...这样你就可以随意修改padding和border的值,而不用担心父容易被撑爆 border-box的使用场合 目前最流行的css框架几乎都采用了border-sizing,框架想要具备栅格系统,肯定要用
,我们需要做的,是在可滚动容器的顶部和底部分别放置一个线性渐变的纯色遮罩,遮挡生硬的裁切线。...position: relative 是行不通的,这会导致遮罩跟随容器滚动。...蒙版覆盖在可滚动容器之上,需要使用 pointer-events: none; 避免影响滚动操作。 仅适用于父容器为纯色的场景,在父容器有透明度、有背景图案或渐变时,遮罩会露馅。...这时候就可以用到 mask CSS属性。mask 属性允许提供一张图片作为蒙版,改变元素的可视区域。我们只需要生成一个线性渐变,将其作为可滚动容器的蒙版即可。...,为了便于自定义,将这里的遮罩高度 25px 提取出来,以 CSS 变量的形式提供。
领取专属 10元无门槛券
手把手带您无忧上云