当前位置: 首页 > news >正文

CSS滚动捕获 scroll-snap-align

CSS滚动捕获 scroll-snap-align

看到 align, 就条件反射想到对齐方式, 嗯猜对了. 不过要先看一下若干名词介绍

scroll-snap-align 指定了盒子的 snap position, 即盒子 snap area 和滚动容器的 snapport 的对齐方式.

这个属性是定义在滚动元素上, 而不是滚动容器上

语法

这个属性可以指定两个值, 分别表示 y(块方向) 轴和 x(内联方向) 轴的对齐. 如果只指定一个值, 那么第二个值保持相同.

  • none: 默认值, 无滚动捕获行为.

  • start: 盒子的 snap position 的顶部与 snapport 顶部对齐

    • 在这里插入图片描述
  • end: 盒子的 snap position 的尾部与 snapport 尾部对齐

    • 在这里插入图片描述
  • center: 盒子的 snap position 的中间与 snapport 中间对齐

    • 在这里插入图片描述

和 scroll-margin 的关系

在前面的定义中已经说过了, 这个属性对齐的不是盒子的 border box 而是盒子 snap area, 即 border box 加上 scroll-margin

我们来点 CSS, 给滚动容器的第二个元素加上 40pxscroll-margin-top

.item {scroll-snap-align: center;
}
.item:nth-child(2) {scroll-margin-top: 40px;
}
.item:nth-child(2)::before {content: '';height: 40px;outline: 2px dashed #111;
}

元素都是居中对齐, 但是第二个元素算居中位置的时候把 40px 也加上了. 好家伙

在这里插入图片描述

和 scroll-padding 的关系

同样是前面的定义, 对齐不是发生在滚动容器上, 而是滚动容器的 snapport 上, 即滚动容器减去其 scroll-padding.

📖 注意 scroll-padding 并不像 padding 一样会渲染出高度, 但是它有它的位置.

.container {overflow: scroll;scroll-snap-type: y mandatory;scroll-padding-top: 40px;
}

你会发现, 元素对齐区域变成了黑色虚线下面的区域, 而不再是整个滚动容器.

在这里插入图片描述

最后大家可以手动试一下, 加上 scroll-paddingscroll-margin 双重 buff 的滚动捕获时什么样的.

兼容性

在这里插入图片描述

谢谢你看到这里😊 大家周末开心呀

相关文章:

CSS滚动捕获 scroll-snap-align

CSS滚动捕获 scroll-snap-align 看到 align, 就条件反射想到对齐方式, 嗯猜对了. 不过要先看一下若干名词介绍 scroll-snap-align 指定了盒子的 snap position, 即盒子 snap area 和滚动容器的 snapport 的对齐方式. 这个属性是定义在滚动元素上, 而不是滚动容器上 语法 这个…...

基础课8——中文分词

中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个…...

OpenHarmony应用开发入门教程(一、开篇)

前言 华为正式宣布2024年发布的华为鸿蒙OS Next版将不再兼容安卓系统。这一重大改变,预示着华为鸿蒙OS即将进入一个全新的阶段。 都说科技无国界,这是骗人的鬼话。谷歌的安卓12.0系统早已发布,但是自从受到美影响,谷歌就拒绝再向…...

vue侦听器详解及代码

在 Vue 中,我们可以使用侦听器(watcher)来监听数据的变化,并在数据发生变化时执行相应的操作。Vue 提供了 watch 选项来定义侦听器,并可以使用 vm.$watch 方法来创建侦听器。 下面是一个简单的示例,我们监…...

Python爬虫的七个常用技巧总结,这些你一定得知道!

文章目录 前言1、基本抓取网页2、使用代理IP3、Cookies处理4、伪装成浏览器5、验证码的处理6、gzip压缩7、多线程并发抓取关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战…...

【Linux】U盘安装的cfg引导文件配置

isolinux.cfg文件 default vesamenu.c32 timeout 600display boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed. # For vesamenu, this means the graphical background is still displayed without # the menu itself for as long …...

Theory behind GAN

假如要生成一些人脸图,实际上就是想要找到一个分布,从这个分布内sample出来的图片像是人脸,分布之外生成的就不像人脸。而GAN要做的就是找到这个distribution。 在GAN之前用的是Maximum Likelihood Estimation。 Maximum Likelihood Estimat…...

《Deep learning for fine-grained image analysis: A survey》阅读笔记

论文标题 《Deep learning for fine-grained image analysis: A survey》 作者 魏秀参,旷世研究院 初读 摘要 细粒度图像分析(FGIA)的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内大变化使其成为一个具有挑战性的…...

节点导纳矩阵

节点导纳矩阵(Node Admittance Matrix)是电力系统分析中的关键工具,它用于描述电力系统中不同节点之间的电导和电纳参数。这个矩阵为电力工程师提供了深入了解电力系统运行和分析所需的数学工具。 节点导纳矩阵是一个复数矩阵,通常…...

小米真无线耳机 Air 2s产品蓝牙配对ubuntu20.04 笔记本电脑

小米真无线耳机 Air 2s产品蓝牙配对ubuntu20.04 笔记本电脑 1.我的笔记本是 22款联想拯救者y9000k,安装了双系统,ubuntu20.04。 2.打开耳机,按压侧面按钮2秒,指示灯显示白色闪烁。 3.打开ubunru20.04 系统右上角wifi的位置&…...

Python爬虫批量下载图片

一、思路: 1. 分析URL,图片的URL内嵌于base_url的返回当中 2. 下载图片 二、代码 import time import requests import os from lxml import etreeclass DownloadImg():爬虫进行美女图片下载def __init__(self):self.url http://xxxxxx/4kmeinv/self…...

java入门,从CK导一部分数据到mysql

一、需求 需要从生产环境ck数据库导数据到mysql,数据量大约100w条记录。 二、处理步骤 1、这里的关键词是生产库,第二就是100w条记录。所以处理数据的时候就要遵守一定的规范。首先将原数据库表进行备份,或者将需要导出的数据建一张新的表了…...

表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 📜表白墙/留言墙初级Spring Boot项目(此篇博客的简略版,不带MyBatis数据库开发) 目录 1、项目前端页面及项目…...

Stable Diffusion - StableDiffusion WebUI 软件升级与扩展兼容

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134463035 目前,StableDiffusion WebUI 的版本是 1.6.0,同步更新 controlnet、tagcomplete、roop、easy-prompt-selector等…...

git创建新分支将项目挂载到新分支操作

1.如果是本地项目,没有关联过git // 在git创建仓库(默认master分支) // 复制克隆链接(默认下载下来的是master仓库,克隆指定分支如下所示) git clone -b 分支名 克隆地址 // 将某分支克隆下来后,直接将项目放到新文件夹内(执行以下命令提交即可) git add . git commit -m 备注…...

WEB 自动化神器 TestCafe(一)—安装和入门篇

今天小编给大家带来WEB 自动化神器 TestCafe(一) —安装和入门篇 一、TestCafe 介绍: TestCafe 是一款基于 Node.js 的端到端 Web 自动化测试框架,支持 TypeScript 或 JavaScript 来编写测试用例,运行用例,并生成自动化测试报告。…...

asp.net 学校资源信息管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 学校资源信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 asp.net学校资源管理系统 二、功能介绍 本系统使用Microsoft Visual Studio 2019为开发工具,SQL …...

【汇编】栈及栈操作的实现

文章目录 前言一、栈是什么?二、栈的特点三、栈操作四、8086cpu操作栈4.1 汇编指令4.2 汇编代码讲解问题:回答: 4.3 栈的操作4.3 push 指令和pop指令的执行过程执行入栈(push)时,栈顶超出栈空间执行出栈(pop)时,栈顶超…...

前段-用面向对象的方式开发一个水管小鸟的游戏

首先准备好各类空文件 index.js css html 和图片 图片是下面这些,如果没有的可在这里下载 2 开发开始 好了,基础准备工作完毕,开发开始, 首先,先把天空,大地,小鸟的盒子准备好,并…...

Java中利用OpenCV进行人脸识别

OpenCV 概述 ​ OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,它提供了丰富的工具和算法,用于处理图像和视频数据。该库由一系列高效的计算机视觉算法组成,涵盖了许多领域,包括目…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...