CSS系列(39)-- Shapes详解
前端技术探索系列:CSS Shapes详解 ✨
致读者:探索形状布局的艺术 👋
前端开发者们,
今天我们将深入探讨 CSS Shapes,这个强大的形状布局特性。
基础形状 🚀
圆形与椭圆
/* 基础圆形 */
.circle {width: 300px;height: 300px;float: left;shape-outside: circle(50%);clip-path: circle(50%);margin: 20px;
}/* 椭圆形 */
.ellipse {width: 400px;height: 300px;float: right;shape-outside: ellipse(40% 50%);clip-path: ellipse(40% 50%);
}/* 位置调整 */
.positioned-shape {shape-outside: circle(50% at 30% 50%);clip-path: circle(50% at 30% 50%);
}
多边形
/* 三角形 */
.triangle {width: 200px;height: 200px;float: left;shape-outside: polygon(0 0, 100% 0, 50% 100%);clip-path: polygon(0 0, 100% 0, 50% 100%);
}/* 六边形 */
.hexagon {width: 200px;height: 230px;float: left;shape-outside: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
高级特性 🎯
图像形状
/* 图像形状 */
.image-shape {width: 300px;height: 300px;float: left;shape-outside: url('shape.png');shape-image-threshold: 0.5;shape-margin: 20px;
}/* 渐变形状 */
.gradient-shape {width: 200px;height: 400px;float: left;shape-outside: linear-gradient(45deg,transparent 0%,transparent 50%,black 50%,black 100%);
}
动画效果
/* 形状动画 */
.morphing-shape {animation: morph 3s infinite;
}@keyframes morph {0% {shape-outside: circle(50%);clip-path: circle(50%);}50% {shape-outside: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);}100% {shape-outside: circle(50%);clip-path: circle(50%);}
}
创意布局 💫
文本环绕
/* 环绕布局 */
.text-wrap {width: 100%;max-width: 800px;margin: 0 auto;
}.float-shape {width: 300px;height: 300px;float: left;shape-outside: circle(50%);shape-margin: 1rem;margin: 0 1rem 1rem 0;
}/* 双形状环绕 */
.dual-wrap {position: relative;
}.left-shape {float: left;shape-outside: polygon(0 0, 100% 0, 0 100%);
}.right-shape {float: right;shape-outside: polygon(100% 0, 100% 100%, 0 100%);
}
响应式形状
/* 响应式调整 */
.responsive-shape {width: 40vw;height: 40vw;max-width: 400px;max-height: 400px;float: left;shape-outside: circle(50%);clip-path: circle(50%);
}@media (max-width: 768px) {.responsive-shape {width: 100%;height: auto;float: none;shape-outside: none;clip-path: none;}
}
实际应用 ⚡
杂志布局
/* 杂志风格 */
.magazine-layout {column-width: 300px;column-gap: 2rem;
}.pull-quote {width: 200px;height: 200px;float: left;shape-outside: polygon(0 0, 100% 0, 100% 100%, 30% 100%);padding: 2rem;margin: 1rem;
}
装饰效果
/* 装饰形状 */
.decorative-shape {position: absolute;width: 300px;height: 300px;shape-outside: circle(50%);background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));opacity: 0.1;z-index: -1;
}/* 形状组合 */
.shape-composition {position: relative;
}.shape-layer-1 {shape-outside: circle(40%);clip-path: circle(40%);
}.shape-layer-2 {shape-outside: polygon(0 0, 100% 0, 50% 100%);clip-path: polygon(0 0, 100% 0, 50% 100%);transform: rotate(45deg);
}
最佳实践建议 💡
-
设计考虑
- 内容适配
- 响应式设计
- 视觉平衡
- 可访问性
-
性能优化
- 形状复杂度
- 动画性能
- 资源加载
- 降级方案
-
开发建议
- 模块化设计
- 复用形状
- 维护性考虑
- 浏览器兼容
-
创意技巧
- 形状组合
- 动态效果
- 交互增强
- 视觉层次
写在最后 🌟
CSS Shapes为我们提供了创建独特视觉布局的强大能力,通过合理运用这一特性,我们可以构建出更加富有创意和专业的网页设计。
进一步学习资源 📚
- Shapes规范
- 布局技巧集
- 创意案例库
- 实战项目分析
如果你觉得这篇文章有帮助,欢迎点赞收藏,也期待在评论区看到你的想法和建议!👇
终身学习,共同成长。
咱们下一期见
💻
相关文章:
CSS系列(39)-- Shapes详解
前端技术探索系列:CSS Shapes详解 ✨ 致读者:探索形状布局的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS Shapes,这个强大的形状布局特性。 基础形状 🚀 圆形与椭圆 /* 基础圆形 */ .circle {widt…...
AI 神经网络在智能家居场景中的应用
在科技持续进步的当下,智能家居领域正经历着深刻变革,AI 神经网络技术的融入成为推动这一变革的关键力量,为家居生活带来了诸多显著变化与提升,本文将几种常见的AI算法应用做了一下总结,希望对物联网从业者有所帮助。 …...
Rocky DEM tutorial7_Conical Dryer_锥形干燥器
tutorial 7_Conical Dryer_锥形干燥器 文章目录 tutorial 7_Conical Dryer_锥形干燥器0. 目的1. 模型介绍2. 模型设置2.1设置physics2.2 导入几何2.3 设置motion2.4 Boundary边界设置2.5 设置材料2.6设置材料间相互作用2.7 创建粒子2.8 设置颗粒进口2.9 求解器设置3. 后处理Enj…...
CSS(二):美化网页元素
目录 字体样式 文本样式 列表样式 背景图片 字体样式 字体相关的 CSS 属性: font-family:设置字体font-size:设置字体大小font-weight:设置字体的粗细(如 normal, bold, lighter 等)color:…...
平方根无迹卡尔曼滤波(SR-UKF)算法,用于处理三维非线性状态估计问题
本MATLAB 代码实现了平方根无迹卡尔曼滤波(SR-UKF)算法,用于处理三维非线性状态估计问题 文章目录 运行结果代码概述代码 运行结果 三轴状态曲线对比: 三轴误差曲线对比: 误差统计特性输出(命令行截图&…...
【论文笔记】Visual Alignment Pre-training for Sign Language Translation
🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Visual Alignment Pre-tra…...
NLP基础知识 - 向量化
NLP基础知识 - 向量化 目录 NLP基础知识 - 向量化 NLP基础知识 - 向量化目录什么是向量化?为什么需要向量化?常见的向量化方法1. 词袋模型(Bag of Words, BoW)2. TF-IDF(词频-逆文档频率)3. 词嵌入&#x…...
JAVA学习笔记_MySQL进阶
文章目录 存储引擎InnoDB引擎MyISAM引擎Memory存储引擎的选择 索引索引数据结构Btree(多路平衡查找树)BTreeHash索引为什么InnoDQB存储引擎采用Btree索引结构 索引分类思考题 索引语法索引性能分析慢查询日志show profiesexplain 索引的使用规则最左前缀法则索引失效SQL提示覆盖…...
ffmpeg: stream_loop报错 Error while filtering: Operation not permitted
问题描述 执行ffmpeg命令的时候,报错:Error while filtering: Operation not permitted 我得命令如下 ffmpeg -framerate 25 -y -i /data/workerspace/mtk/work_home/mtk_202406111543-l9CSU91H1f1b3/tmp/%08d.png -stream_loop -1 -i /data/workerspa…...
Vue.use()和Vue.component()
当很多页面用到同一个组件,又不想每次都在局部注册时,可以在main.js 中全局注册 Vue.component()一次只能注册一个组件 import CcInput from /components/cc-input.vue Vue.component(CcInput);Vue.use()一次可以注册多个组件 对于自定义的组件&#…...
javaweb 04 springmvc
0.1 在上一次的课程中,我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。 其实呢,是我们在浏览器发起请求,请求了我们…...
[Visual studio] 性能探测器
最近发现VS的profile还是很好用的, 可以找到项目代码的瓶颈,比如发现CPU的每一个函数的时间占比,分析代码耗时分布,和火焰图一样的效果 如何使用 1. 打开你的项目,调整成release状态 2. 点击调试->性能探测器 3…...
【漫话机器学习系列】017.大O算法(Big-O Notation)
大 O 表示法(Big-O Notation) 大 O 表示法是一种用于描述算法复杂性的数学符号,主要用于衡量算法的效率,特别是随着输入规模增大时算法的运行时间或占用空间的增长趋势。 基本概念 时间复杂度 描述算法所需的运行时间如何随输入数…...
IntelliJ IDEA中设置激活的profile
在IntelliJ IDEA中设置激活的profile,可以通过以下步骤进行: 通过Run/Debug Configurations设置 打开Run/Debug Configurations对话框: 在IDEA的顶部菜单栏中,选择“Run”菜单,然后点击“Edit Configurations...”或者…...
Qt 的信号槽机制详解:之信号槽引发的 Segmentation Fault 问题拆析(上)
Qt 的信号槽机制详解:之因信号槽误用引发的 Segmentation Fault 问题拆析(上) 前言一. 信号与槽的基本概念信号(Signal)槽(Slot)连接信号与槽 二. 信号槽机制的实现原理元对象系统(M…...
uniapp中实现APP调用本地通知栏通知、震动、本地提示音或者mp3提醒
要在uniapp中实现APP调用本地通知栏通知、震动和本地提示音或者mp3提醒,你可以使用uni-app提供的原生API和插件来实现。 通知栏通知: 你可以使用uni-app的原生API uni.showToast() 或者 uni.showModal() 来实现通知栏通知的功能。可以在需要发送通知的地…...
ADB 上传文件并使用脚本监控上传百分比
有个需求,需要测试 emmc的外部连续写入性能,使用 ADB 上传一个巨大的文件。并且在上传到一定值时进行干预。 因此但是 adb push 命令本身会 block 运行并且不返回进度,因此需要一个额外的监控脚本。 上传脚本: echo off setloc…...
【数据库】PostgreSQL(持续更新)
目录 K8S 部署基本使用高级特性 K8S 部署 # pg.yaml --- apiVersion: v1 kind: PersistentVolume metadata:name: tv-postgres-pvnamespace: locallabels:storage: tv-postgres-pv spec:accessModes:- ReadWriteOncecapacity:storage: 50Gi # 按需修改,需要保持与…...
overleaf中出现TeX capacity exceeded PDF object stream buffer=5000000的原因和解决方案
在插入pdf 配图后,编译出错提示信息如图,很可能的一个原因是pdf文件大小太大了,最好压缩一下,压缩到1MB以内。...
pyqt5冻结+分页表
逻辑代码 # -*- coding: utf-8 -*- import sys,time,copy from PyQt5.QtWidgets import QWidget,QApplication, QDesktopWidget,QTableWidgetItem from QhTableWidgetQGN import Ui_QhTableWidgetQGN from PyQt5.QtCore import Qt from PyQt5 import QtCore, QtGui, QtWidgets…...
2026年青少年信息素养大赛备赛指南(含历年真题)
📢 2026年青少年信息素养大赛备赛指南各位家长、老师好!随着教育的不断发展,少儿编程已成为孩子综合能力培养的重要一环。今天给大家整理一下近期备受关注的青少年信息素养大赛相关资讯,以及备赛资源。🏆 赛事简介全国…...
Claude Code 宠物彩蛋来袭:/buddy 完整玩法指南(整理了宠物刷取方法,重置并刷到你想要的宠物)
文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 Claude Code /buddy 宠物指南 📒 📝 初识 Buddy 🎯 原理解析 🎯 预热窗口期 📝 如何触发 Buddy 🐙 18种宠物图鉴:你的伙伴是哪一位 📝 稀有度系统:1%传说级的诱惑 📝 五维属性:你的宠物是什么性格 📝 成…...
Qwen3.5-35B-A3B-AWQ-4bit多模态落地:智慧医疗影像报告图关键指标自动提取
Qwen3.5-35B-A3B-AWQ-4bit多模态落地:智慧医疗影像报告图关键指标自动提取 1. 医疗影像分析的痛点与解决方案 医疗影像报告分析一直是临床工作中的重要环节。传统方式依赖医生人工查看影像并提取关键指标,存在以下问题: 效率低下ÿ…...
Diablo Edit2实战解决方案:从存档修复到角色定制的完整指南
Diablo Edit2实战解决方案:从存档修复到角色定制的完整指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 在暗黑破坏神II的冒险旅程中,每位玩家都可能遭遇存档损坏、属性…...
Arduino压力变送器信号处理库:模拟传感器线性标定与鲁棒读取
1. 项目概述PressureTransducer 是一个面向嵌入式传感器应用的轻量级 Arduino 库,专为模拟式压力变送器(Analog Pressure Transducer)设计。其核心价值不在于提供复杂驱动或协议栈,而在于将硬件信号链中多级、易出错的手动计算封装…...
《YOLO11魔术师专栏》专栏介绍 专栏目录
《YOLO11魔术师专栏》将从以下各个方向进行创新(更新日期25.07.23): 【原创自研模块】【多组合点优化】【注意力机制】 【主干篇】【neck优化】【卷积魔改】 【block&多尺度融合结合】【损失&IOU优化】【上下采样优化 】 【小目标…...
10. Doris 系列第10篇:数据查询全攻略|Join/子查询/窗口函数,从基础到高级实战
适合人群:大数据开发、Doris查询调优工程师、数仓分析师、BI工程师核心价值:吃透Doris 2.x数据查询核心能力,掌握Join算法选型、子查询优化、多维聚合、窗口函数实战,解决查询慢、资源浪费、语法报错等问题系列说明:本…...
OpenClaw新手避坑指南:Phi-3-vision-128k-instruct部署中的5个常见错误
OpenClaw新手避坑指南:Phi-3-vision-128k-instruct部署中的5个常见错误 1. 镜像版本不匹配导致的初始化失败 上周我在本地尝试部署Phi-3-vision-128k-instruct时,遇到了第一个拦路虎——系统提示"CUDA version mismatch"。这个错误看似简单&…...
AMD Ryzen处理器深度调试指南:解锁硬件性能的终极利器
AMD Ryzen处理器深度调试指南:解锁硬件性能的终极利器 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…...
查文献、搭框架、写综述太耗时?试试百考通AI开题报告,高效又安全
开题报告是毕业论文或学位研究的“第一张学术蓝图”,它不仅决定你的选题能否获批,更直接影响后续研究的逻辑性、深度与完成质量。然而,许多学生在撰写时常常感到无从下手:问题意识模糊、文献综述堆砌无主线、研究方法描述空泛、结…...
