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

CSS 进阶教程:从定位到动画与布局

文章目录

  • 🌟 CSS 进阶教程:从定位到动画与布局
    • 🌟 目录
    • 🌟 1. 定位
      • **Static(默认定位)**
      • **Relative(相对定位)**
      • **Absolute(绝对定位)**
      • **Fixed(固定定位)**
      • **Sticky(粘性定位)**
    • 🌟 2. 层叠规则(z-index)
    • 🌟 3. BFC 和 IFC
      • **BFC(块级格式化上下文)**
      • **IFC(内联格式化上下文)**
    • 🌟 4. CSS3 新特性
      • 响应式布局与媒体查询
        • 媒体查询
      • Flex 布局
      • Grid 布局
      • 瀑布流布局
    • 🌟 5. 动画与过渡
      • 动画
      • 过渡效果
      • 渐变效果
    • 🌟 6. 背景与边框
      • 背景
      • 边框与圆角
    • 🌟 7. 字体与文本
    • 🌟 8. 2D/3D 转换
      • 2D 转换
      • 3D 转换
      • 🔗 相关资源

🌟 CSS 进阶教程:从定位到动画与布局

在学习了 CSS 的基础知识后,本节将涵盖更高级的 CSS 概念和技术,包括定位、布局、动画等,帮助你全面掌握 CSS 的核心功能。


🌟 目录

  1. 定位
  2. 层叠规则(z-index)
  3. BFC 和 IFC
  4. CSS3 新特性
    • 响应式布局
    • 媒体查询
    • Flex 布局
    • Grid 布局
    • 瀑布流布局
  5. 动画与过渡
    • 动画
    • 过渡效果
    • 渐变效果
  6. 背景与边框
    • 背景
    • 边框与圆角
  7. 字体与文本
  8. 2D/3D 转换

🌟 1. 定位

定位决定了元素在页面上的放置方式,CSS 提供了以下几种定位方式:

Static(默认定位)

元素按照正常文档流排列。

css复制代码
div {position: static; /* 默认值 */
}

Relative(相对定位)

相对于自身的原始位置进行偏移。

css复制代码
div {position: relative;top: 20px; /* 相对于原始位置向下偏移 */left: 10px;
}

Absolute(绝对定位)

相对于最近的已定位祖先元素(非 static)进行定位。如果无祖先元素,则相对于 body

css复制代码
div {position: absolute;top: 50px;left: 100px;
}

Fixed(固定定位)

相对于浏览器视口进行定位,滚动页面时位置不变。

css复制代码
div {position: fixed;bottom: 10px;right: 20px;
}

Sticky(粘性定位)

根据滚动位置在 relativefixed 之间切换。

css复制代码
div {position: sticky;top: 0; /* 距离顶部 0 时固定 */
}

🌟 2. 层叠规则(z-index)

z-index 控制元素的堆叠顺序,值越大,元素越靠上。

css复制代码
div {position: absolute;z-index: 10;
}
  • 正整数:比默认层高。
  • 负整数:比默认层低。
  • 默认值为 auto

🌟 3. BFC 和 IFC

BFC(块级格式化上下文)

  • 独立的布局区域,内部元素不会影响外部。
  • 触发方式:
    • overflow: hidden;
    • floatposition: absolute/fixed;
    • display: flex;
css复制代码
.container {overflow: hidden; /* 触发 BFC */
}

IFC(内联格式化上下文)

  • 内联元素形成的一种上下文,布局规则按文字流排列。
html复制代码
<span>这是</span><span>IFC</span>

🌟 4. CSS3 新特性

响应式布局与媒体查询

媒体查询

根据设备宽度、分辨率应用不同样式。

css复制代码
@media (max-width: 600px) {body {background-color: lightblue;}
}

Flex 布局

弹性盒子布局,适合单维方向排列。

css复制代码
.container {display: flex;justify-content: space-between;align-items: center;
}

Grid 布局

强大的二维布局。

css复制代码
.container {display: grid;grid-template-columns: repeat(3, 1fr);grid-gap: 10px;
}

瀑布流布局

css复制代码
.container {column-count: 3; /* 列数 */column-gap: 10px;
}

🌟 5. 动画与过渡

动画

通过 @keyframes 创建复杂动画。

css复制代码
@keyframes slide {from {transform: translateX(0);}to {transform: translateX(100px);}
}div {animation: slide 2s infinite;
}

过渡效果

css复制代码
div {transition: all 0.3s ease-in-out;
}

渐变效果

创建颜色渐变。

css复制代码
div {background: linear-gradient(to right, red, yellow);
}

🌟 6. 背景与边框

背景

背景图像和颜色的设置。

css复制代码
div {background: url('image.jpg') no-repeat center center / cover;
}

边框与圆角

css复制代码
div {border: 2px solid black;border-radius: 10px;
}

🌟 7. 字体与文本

css复制代码
body {font-family: 'Arial', sans-serif;font-size: 16px;
}

🌟 8. 2D/3D 转换

2D 转换

通过 transform 实现旋转、缩放等效果。

css复制代码
div {transform: rotate(45deg) scale(1.2);
}

3D 转换

css复制代码
div {transform: rotateX(45deg) rotateY(30deg);
}

🔗 相关资源

  • CSS官方文档

现在你已经掌握了 CSS 的核心进阶内容,试着实践一下吧!

4o

相关文章:

CSS 进阶教程:从定位到动画与布局

文章目录 &#x1f31f; CSS 进阶教程&#xff1a;从定位到动画与布局&#x1f31f; 目录&#x1f31f; 1. 定位**Static&#xff08;默认定位&#xff09;****Relative&#xff08;相对定位&#xff09;****Absolute&#xff08;绝对定位&#xff09;****Fixed&#xff08;固定…...

Nginx性能优化全方案:打造一个高效服务器

Nginx性能优化全方案&#xff1a;打造一个高效服务器 调整工作进程数和线程数调整工作进程数调整线程数 启用Gzip压缩安装Gzip模块配置Gzip压缩 配置缓存策略配置浏览器缓存时间配置代理服务器缓存时间 优化文件访问方式使用sendfile()函数发送文件数据启用sendfile_max_chunk和…...

详解Maven的setting配置文件中mirror和repository的区别

在Maven的setting中&#xff0c;我们常常会用到mirror和repository配置&#xff0c;其中mirror是镜像的意思&#xff0c;而repository则是仓库的意思&#xff0c;它们两者都可以改变maven下载项目以来jar包的地址。 仓库&#xff08;repository&#xff09; repository就是个…...

框架模块说明 #07 API加密

背景 在实际开发过程中&#xff0c;我们通常会涉及到数据加密的问题。本文重点探讨两个方面&#xff1a;一是外部接口调用时的数据加密&#xff0c;二是服务间调用的数据加密与解密。 对于外部接口调用&#xff0c;每个用户将拥有独立的动态 AES 加密密钥&#xff08;KEY&…...

安卓BLE蓝牙开发经验分享

注意点一&#xff1a;一开始必须申请权限&#xff0c;否则后面根本无法成功。 注意点二&#xff1a;BLE使用向某个特征写入来发送数据&#xff0c;写入一次默认长度是23字节&#xff0c;必须向蓝牙设备申请更大字节的写入才能发送更多字节。&#xff08;23字节是BLE通信的最小…...

后缀表达式有什么场景应用

后缀表达式&#xff08;Reverse Polish Notation, RPN&#xff09;在多个领域中有广泛的应用&#xff0c;主要由于其简洁性和易于计算机处理的特点。以下是一些主要的应用场景&#xff1a; ### 1. **编译器和解释器** 后缀表达式在编译器和解释器中用于表达式求值。由于后缀表…...

使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构(未做共享存储版)

文章目录 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构Redis 主从架构部署 (1.yaml)Redis Sentinel 部署 (2.yaml)Sentinel 服务暴露 (3.yaml)部署步骤总结 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构 本文将详细介绍如何在 Kubernetes 中部署 Redis …...

AI开发 - 用GPT写一个GPT应用的真实案例

就在昨天&#xff0c;我的同事推荐给我了一个第三方的公共大模型API&#xff0c;这个API集合了国际上上几乎所有知名的大模型&#xff0c;只需要很少的费用&#xff0c;就可以接入到这些大模型中并使用它们。成本之低&#xff0c;令人乍舌&#xff01;包括我们现在无法试用的 G…...

C#—索引器

C#—索引器 索引器&#xff08;Indexer&#xff09;是类中的一个特殊成员&#xff0c;它能够让对象以类似数组的形式来操作&#xff0c;使程序看起来更为直观&#xff0c;更容易编写。索引器与属性类似&#xff0c;在定义索引器时同样会用到 get 和 set 访问器&#xff0c;不同…...

杨振宁大学物理视频中黄色的字去掉(稳定简洁版本,四)

杨振宁大学物理1214 色带矩形带来很大麻烦&#xff01; 今天想到一个方法&#xff0c;整个色带矩形拉通&#xff0c;做个通铺处理&#xff0c;不计算&#xff0c;代码做最小化&#xff0c;最稳定追求。 因为黄色字稳定&#xff0c;我们找到他的中心&#xff0c;而这个色带矩形…...

排序算法(5):归并排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 归并排序 归并排序采用分治法&#xff0c;将序列分成若干子序列&#xff0c;每个子序列有序后再合并成有序的完整序列。 在数组排序中&#xff0c;如果只有一个数&#xff0c;那么它本身就是有序的。如果有两个数&#xff0…...

Gate学习(7)引入体素源

一、从GitHub下载体素源模型源码 下载地址&#xff1a;BenAuer2021/Phantoms-for-Nuclear-Medicine-Imaging-Simulation&#xff1a;用于核医学成像应用的模型&#xff08;闪烁显像、SPECT 和 PET&#xff09; --- BenAuer2021/Phantoms-For-Nuclear-Medicine-Imaging-Simulat…...

2024.12.14 TCP/IP 网络模型有哪几层?

2024.12.14 TCP/IP 网络模型有哪几层? 2024.12.14 今天周六 看到大伙都在考六级&#xff0c;我来复盘小林coding的计算机网络的知识点&#xff1a; TCP/IP 网络模型有哪几层? 问大家&#xff0c;为什么要有 TCP/IP 网络模型? 对于同一台设备上的进程间通信&#xff0c;有…...

item2 for macos

安装Item2 brew install iterm2 查看终端类型 cat /etc/shells Mac OS X 10.15 已经将默认的shell从Bash换成了zsh&#xff0c;所以不用安装&#xff0c;10.15以前的可以使用下面的命令进行安装 brew install zsh 安装Oh My ZSH # curl sh -c "$(curl -fsSL https://ra…...

二维三维空间上两点之间的距离

二维三维路径上,路径总距离以及途径点与障碍物之间的距离等都需要计算两点之间的距离。两点之间的距离有多种计算方法,这些计算方法主要取决于所考虑的空间维度、点的属性以及具体的应用场景。以下是一些常见的距离计算方法: 1. 曼哈顿距离(Manhattan distance) 定义:也…...

相机测距原理

基础概念的回顾 焦距的定义 焦距是指透镜或镜头的光学中心&#xff08;通常是透镜的几何中心&#xff09;到其焦点的距离。 焦点是光线的交点&#xff0c;它指的是透镜或镜头聚焦所有入射光线后汇聚的位置。焦点的位置与透镜的曲率和光线的入射角度相关。就是说所有光线经过…...

Debezium SchemaNameAdjuster 分析

Debezium SchemaNameAdjuster 分析 目录 1. 概述2. 核心功能3. 实现原理4. 应用场景5. 扩展示例6. 总结1. 概述 SchemaNameAdjuster 是 Debezium 中的一个工具类,主要用于确保 Schema 名称符合 Avro 命名规范。在数据库变更事件被转换为 Kafka 消息时,需要为每个表和字段创…...

Stable Diffusion绘画 | SDXL模型使用注意事项

注意事项 SDXL模型的使用&#xff0c;对电脑配置要求更高&#xff0c;需要 8GB 以上显存的显卡SDXL模型兼容性不太好&#xff0c;容易出现错误&#xff0c;对 Mac 电脑不友好只能选择 SDXL模型 训练的 LoRA 使用不能使用旧的 VAE文件 SDXL 专用 VAE 文件&#xff1a;sdxl_vae.…...

(五)机器学习 - 数据分布

数据分布&#xff08;Data Distribution&#xff09;是指数据在不同值或值区间内的分布情况&#xff0c;它描述了数据点在整个数据集中是如何分散或集中的。数据分布可以通过多种方式来分析和表示&#xff0c;包括图形和数值方法。 常见的数据分布特征和描述数据分布的方法&…...

Flink State面试题和参考答案-(上)

什么是 Flink 中的状态&#xff08;State&#xff09;&#xff1f; Flink 中的状态是指在 Flink 流处理程序中&#xff0c;操作符或函数用于存储和访问数据的机制。状态可以看作是在事件流处理过程中&#xff0c;随着时间推移而累积或变更的数据集合。在 Flink 的有状态流处理…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...