一、布局核心样式(业务开发基础,占比最高)
CSS3 新增的布局属性彻底解决了传统浮动 / 定位的布局痛点,Flex 弹性布局 是业务中最核心、最常用 的(适配 90% 以上的一维布局),Grid 网格布局适合二维布局,搭配calc/ 视口单位能实现灵活的动态布局。
1. Flex 弹性布局(必掌握,导航、卡片、表单、容器布局全靠它)
核心属性 :display: flex + justify-content(主轴对齐) + align-items(交叉轴对齐) + flex-wrap(换行) + flex: 1(自动占满剩余空间)业务场景 :导航栏、卡片列表、表单行、按钮组、居中布局、两端对齐布局实用示例(高频复用):
css
/* 1. 元素水平垂直居中(业务最常用,弹窗、登录框、卡片内容) */
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
/* 2. 主轴两端对齐,项目之间间距相等(导航栏、按钮组) */
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
}
/* 3. 自动换行,项目间距均匀(卡片列表、商品列表) */
.flex-wrap {
display: flex;
flex-wrap: wrap;
gap: 16px; /* 替代margin,项目之间的间距(CSS3新增,无需计算边距) */
}
/* 4. 子元素自动占满剩余空间(表单标签+输入框、标题+操作按钮) */
.flex-item-1 {
flex: 1; /* 占满父容器剩余空间,子元素无需定宽 */
}
技巧 :gap属性替代传统margin,避免最后一行多余边距,主流浏览器全兼容,业务中优先使用。
2. Grid 网格布局(二维布局首选,后台管理、商品宫格、表单布局)
核心属性 :display: grid + grid-template-columns(列定义) + grid-gap/gap(间距)业务场景 :后台管理系统布局(侧边栏 + 主内容)、商品宫格列表、表单二维布局、相册布局实用示例:
css
/* 商品宫格:每行4列,列宽相等,间距16px(适配PC端) */
.grid-goods {
display: grid;
grid-template-columns: repeat(4, 1fr); /* 4列,每列等宽 */
gap: 16px; /* 行列间距一致 */
}
/* 响应式宫格:自动适配列数,最小列宽240px(无需媒体查询,移动端/平板适配) */
.grid-responsive {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 12px;
}
3. 动态计算:calc ()(适配动态宽高,避免硬编码)
核心属性 :calc(表达式)(支持+/-/*/,注意运算符前后加空格 )业务场景 :动态定宽 / 高、边距适配、结合百分比 / 视口单位使用实用示例:
css
/* 侧边栏固定200px,主内容占满剩余宽度(后台布局) */
.main {
width: calc(100% - 200px);
margin-left: 200px;
}
/* 字体大小结合视口单位,最小14px(响应式文字) */
.font-responsive {
font-size: calc(14px + 0.5vw);
}
二、视觉美化样式(提升页面质感,业务中高频用于按钮、卡片、标题)
CSS3 的渐变、阴影、圆角等属性可以替代图片,减少网络请求,同时实现灵活的视觉效果,是业务中美化页面的核心,常用在卡片、按钮、导航、背景、文字等元素上。
1. 圆角:border-radius(最基础,所有美化场景都能用)
核心属性 :border-radius(单值 / 四值 / 百分比,圆形用 50%)业务场景 :按钮、头像、卡片、输入框、图片美化实用示例:
css
.radius-4 { border-radius: 4px; } /* 按钮、输入框(通用小圆角) */
.radius-8 { border-radius: 8px; } /* 卡片、弹窗(常用圆角) */
.circle { border-radius: 50%; } /* 头像、图标(圆形,需宽高相等) */
/* 椭圆角/自定义角(小众但实用,个性化卡片) */
.radius-custom { border-radius: 10px 20px 30px 40px; }
2. 阴影:盒子阴影 + 文字阴影(提升元素层次感,卡片 / 按钮必备)
(1)盒子阴影:box-shadow(卡片、弹窗、按钮 hover 效果核心)
核心属性 :box-shadow: 水平偏移 垂直偏移 模糊半径 扩散半径 颜色 内外阴影业务场景 :卡片悬浮、弹窗、按钮、输入框聚焦、导航栏实用示例(业务高频复用):
css
.shadow-card { /* 卡片基础阴影(轻微,提升层次感) */
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08);
}
.shadow-hover { /* 卡片/按钮hover阴影(加深,交互反馈) */
transition: box-shadow 0.3s; /* 搭配过渡,动画更流畅 */
}
.shadow-hover:hover {
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.12);
}
.shadow-inset { /* 内阴影,输入框、搜索框 */
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}
(2)文字阴影:text-shadow(标题、渐变文字、节日文字美化)
核心属性 :text-shadow: 水平偏移 垂直偏移 模糊半径 颜色业务场景 :大标题、海报文字、导航文字、渐变文字搭配实用示例:
css
.text-shadow { /* 标题轻微阴影,提升可读性 */
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.text-shadow-bold { /* 海报文字立体阴影 */
text-shadow: 0 2px 4px #333;
}
3. 渐变:线性渐变 + 径向渐变(替代背景图,按钮 / 背景 / 边框必备)
CSS3 渐变无失真、可动态调整 ,业务中优先用渐变替代静态背景图,减少请求,核心是linear-gradient(线性)和radial-gradient(径向),需加webkit 前缀 兼容 Safari。业务场景 :按钮背景、页面主背景、卡片边框、标题渐变文字实用示例(业务高频):
css
/* 1. 线性渐变(最常用):按钮背景、导航栏、横幅背景 */
.gradient-linear { /* 从左到右,蓝到浅蓝(按钮主色) */
background: linear-gradient(90deg, #1890ff, #40a9ff);
/* 兼容Safari */
background: -webkit-linear-gradient(90deg, #1890ff, #40a9ff);
}
.gradient-linear-hover { /* 按钮hover渐变加深 */
background: linear-gradient(90deg, #096dd9, #1890ff);
}
/* 2. 径向渐变:头像背景、卡片装饰、弹窗背景 */
.gradient-radial { /* 从中心到四周,白到浅灰(卡片背景) */
background: radial-gradient(circle, #fff, #f5f5f5);
}
/* 3. 渐变边框(实用技巧:配合background-clip) */
.gradient-border {
border: 2px solid transparent;
background: linear-gradient(#fff, #fff) padding-box,
linear-gradient(90deg, #1890ff, #722ed1) border-box;
border-radius: 8px;
}
/* 4. 渐变文字(业务高频,标题美化) */
.gradient-text {
background: linear-gradient(90deg, #1890ff, #722ed1);
-webkit-background-clip: text; /* 背景裁剪为文字形状 */
background-clip: text;
color: transparent; /* 文字透明,显示渐变背景 */
}
4. 背景增强样式(多背景、背景尺寸 / 定位,适配不同屏幕)
CSS3 对背景的增强让背景图适配更灵活,多背景 可替代多个嵌套元素,background-size/cover 是适配 banner、卡片背景的核心。核心属性 :background-image(多背景用逗号分隔)、background-size: cover/contain、background-position: center、background-repeat: no-repeat业务场景 :banner 背景、卡片背景、登录页背景、按钮多背景(图标 + 渐变)实用示例:
css
/* banner背景:居中、铺满容器,无失真(业务最常用) */
.bg-banner {
background: url('./banner.jpg') no-repeat center center;
background-size: cover; /* 铺满容器,裁剪边缘(优先用) */
/* background-size: contain; 完整显示图片,可能留空白(小众) */
}
/* 多背景:渐变背景+图标(按钮,无需嵌套i标签) */
.bg-multiple {
background: url('./icon.png') no-repeat 16px center, linear-gradient(90deg, #1890ff, #40a9ff);
background-size: 20px 20px, 100% 100%;
padding-left: 48px;
}
5. 文字美化样式(适配不同内容,避免文字溢出 / 错乱,业务必备)
CSS3 新增的文字样式解决了传统文字排版的痛点,文字溢出省略 是业务中最高频 的样式(商品名称、文章标题、列表内容)。核心属性 :text-overflow: ellipsis、white-space: nowrap、word-break: break-all、line-clamp(多行省略)业务场景 :商品名称、文章标题、列表描述、卡片内容、导航文字实用示例(直接复用,覆盖所有文字溢出场景):
css
/* 1. 单行文字溢出省略(最常用,商品名称、导航文字) */
.text-ellipsis {
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 隐藏溢出 */
text-overflow: ellipsis; /* 显示省略号 */
}
/* 2. 多行文字溢出省略(业务高频,文章描述、卡片内容,需加webkit前缀) */
.text-ellipsis-2 { /* 2行省略,修改数字可适配n行 */
display: -webkit-box;
-webkit-line-clamp: 2; /* 限制行数 */
-webkit-box-orient: vertical; /* 垂直排列 */
overflow: hidden;
text-overflow: ellipsis;
}
/* 3. 文字自动换行(解决英文/数字不换行问题,评论、详情页) */
.text-wrap {
word-break: break-all; /* 强制换行,包括英文/数字 */
white-space: pre-wrap; /* 保留空格,自动换行 */
}
/* 4. 禁止文字换行(按钮、标签) */
.text-nowrap {
white-space: nowrap;
}
三、动画交互样式(提升用户体验,业务中高频用于 hover / 聚焦 / 加载)
CSS3 的过渡、变换、关键帧动画,让页面实现轻量、流畅的交互效果,无需 JS 即可实现大部分基础动画,是业务中提升用户体验的核心,常用在按钮、卡片、输入框、弹窗、加载动画等元素。
1. 过渡:transition(基础交互,hover / 聚焦 / 状态变化必备)
核心属性 :transition: 过渡属性 过渡时间 缓动函数 延迟时间业务场景 :按钮 hover、卡片悬浮、输入框聚焦、图标变色、元素显隐实用技巧 :过渡属性用all表示所有属性(业务中优先用,简化代码),缓动函数用ease(默认,流畅)或ease-in-out(先慢后快再慢)。实用示例:
css
/* 通用过渡样式(直接复用,搭配hover/active) */
.transition {
transition: all 0.3s ease; /* 所有属性,0.3秒,流畅缓动 */
}
/* 按钮hover:背景变色+轻微缩放 */
.btn {
background: #1890ff;
color: #fff;
border-radius: 4px;
transition: all 0.3s ease;
}
.btn:hover {
background: #096dd9;
transform: scale(1.02); /* 搭配变换,效果更优 */
}
/* 输入框聚焦:边框变色+阴影 */
.input {
border: 1px solid #d9d9d9;
transition: all 0.2s ease;
}
.input:focus {
outline: none;
border-color: #1890ff;
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
2. 变换:transform(平移 / 旋转 / 缩放 / 倾斜,交互核心)
核心属性 :transform: translate()/rotate()/scale()/skew()(可组合使用),需加 webkit 前缀兼容 Safari。业务场景 :元素居中、弹窗弹出、图标旋转(点赞 / 收藏)、卡片悬浮、按钮缩放、回到顶部按钮实用示例(业务高频):
css
/* 1. 平移:元素居中(替代margin,更灵活)、弹窗弹出 */
.translate-center { /* 相对自身居中,配合position: absolute */
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.translate-y { /* 向上平移,卡片hover效果 */
transform: translateY(-4px);
}
/* 2. 缩放:按钮/卡片hover放大、图片预览缩放 */
.scale-hover:hover {
transform: scale(1.05); /* 放大1.05倍,不超过1.1避免失真 */
}
/* 3. 旋转:图标(点赞、收藏、刷新)、加载动画 */
.rotate-360 { /* 360度旋转,搭配动画无限循环 */
transform: rotate(360deg);
}
.rotate-180 { /* 180度旋转,下拉箭头、开关按钮 */
transform: rotate(180deg);
}
/* 4. 组合变换:卡片hover(平移+缩放+阴影) */
.card-hover:hover {
transform: translate(-4px, -4px) scale(1.02);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
3. 关键帧动画:@keyframes(自定义动画,加载 / 弹窗 / 数字滚动)
核心语法 :@keyframes 动画名 { 0% { 初始状态 } 100% { 结束状态 } } + animation(调用动画)业务场景 :加载动画(转圈、闪烁)、弹窗弹出 / 隐藏、数字滚动、提示框渐显、轮播图、点赞动画实用示例(业务高频复用,直接复制):
css
/* 1. 加载动画(转圈,按钮/列表加载,最常用) */
@keyframes loading {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.loading-icon {
width: 20px;
height: 20px;
border: 2px solid #e5e5e5;
border-top: 2px solid #1890ff;
border-radius: 50%;
animation: loading 1s linear infinite; /* 1秒,匀速,无限循环 */
}
/* 2. 渐显动画(弹窗、提示框、新内容加载) */
@keyframes fadeIn {
0% { opacity: 0; transform: translateY(20px); }
100% { opacity: 1; transform: translateY(0); }
}
.fade-in {
animation: fadeIn 0.3s ease forwards; /* forwards:保持结束状态 */
}
/* 3. 闪烁动画(提示文字、未读消息、错误提示) */
@keyframes flash {
0% { opacity: 1; }
50% { opacity: 0.5; }
100% { opacity: 1; }
}
.flash-text {
animation: flash 1s ease infinite;
color: #ff4d4f;
}
4. 毛玻璃效果:backdrop-filter(高级交互,弹窗 / 导航栏必备)
核心属性 :backdrop-filter: blur(模糊值)(毛玻璃),搭配background: rgba(255,255,255,0.8)使用,比 filter 更高效 (仅模糊背景,不模糊自身内容)。业务场景 :弹窗遮罩、导航栏(滚动时毛玻璃)、下拉菜单、侧边栏实用示例:
css
/* 弹窗遮罩毛玻璃(业务高频,提升质感) */
.modal-mask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
backdrop-filter: blur(8px); /* 毛玻璃模糊8px */
-webkit-backdrop-filter: blur(8px); /* 兼容Safari */
}
/* 导航栏滚动毛玻璃 */
.nav {
position: fixed;
top: 0;
width: 100%;
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
}
四、响应式适配样式(多端开发必备,PC / 移动端 / 平板兼容)
CSS3 的媒体查询、视口单位是多端适配 的核心,搭配 Flex/Grid 的响应式属性,能实现一套代码适配所有设备,业务中移动端开发是刚需,这部分样式必须掌握。
1. 媒体查询:@media(精准适配不同设备尺寸)
核心语法 :@media (媒体特性) { 样式 },业务中主要用max-width(移动端适配,从大到小)。常用断点(行业标准,直接复用):
- 平板:
max-width: 1024px - 大屏手机:
max-width: 768px - 小屏手机:
max-width: 375px业务场景 :调整不同设备的布局、字体、间距、列数实用示例:
css
/* PC端:商品宫格4列 */
.goods-list {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 16px;
}
/* 平板:适配为2列 */
@media (max-width: 1024px) {
.goods-list {
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
}
/* 手机:适配为1列,间距8px */
@media (max-width: 768px) {
.goods-list {
grid-template-columns: 1fr;
gap: 8px;
}
/* 手机端隐藏不必要的元素(如侧边栏) */
.sidebar {
display: none;
}
}
2. 视口单位:vw/vh/vmin/vmax(动态适配不同屏幕)
核心概念:
vw:视口宽度的 1%(100vw = 屏幕宽度)vh:视口高度的 1%(100vh = 屏幕高度)vmin:vw 和 vh 中的较小值(适配横屏 / 竖屏)vmax:vw 和 vh 中的较大值(小众)业务场景 :响应式字体、动态宽高、banner 高度、按钮大小实用示例:
css
/* 响应式字体:随屏幕宽度变化,最小12px,最大18px */
body {
font-size: clamp(12px, 2vw, 18px); /* clamp(最小值,中间值,最大值),CSS3新增 */
}
/* banner高度:移动端50vh,PC端30vh */
.banner {
height: 30vh;
}
@media (max-width: 768px) {
.banner {
height: 50vh;
}
}
/* 按钮宽度:占屏幕80%,最大300px */
.btn-full {
width: clamp(200px, 80vw, 300px);
margin: 0 auto;
}
3. 弹性布局响应式:flex-wrap + grid auto-fit(无需媒体查询)
核心技巧 :Flex 的flex-wrap: wrap(自动换行)、Grid 的repeat(auto-fit, minmax(最小宽度, 1fr))(自动适配列数),无需媒体查询 即可实现基础响应式,业务中优先使用。实用示例:
css
/* Flex自动换行:卡片列表,适配所有设备(无需媒体查询) */
.flex-responsive {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.flex-responsive .card {
flex: 1 0 240px; /* 最小宽度240px,不足则换行 */
}
/* Grid自动适配列数:商品列表,最小列宽200px(无需媒体查询) */
.grid-auto {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 10px;
}
五、实用工具类样式(业务高频复用,提效必备)
这部分是业务开发中零散但天天用 的工具类样式,可统一封装到common.css中,直接调用,大幅提升开发效率,覆盖元素选择、滚动、光标、透明度等场景。
css
/* 1. 禁止文字复制(按钮、图标、版权信息、验证码) */
.user-select-none {
user-select: none;
-webkit-user-select: none; /* 兼容Safari/Chrome */
}
/* 2. 平滑滚动(页面导航、回到顶部,整站生效) */
html {
scroll-behavior: smooth;
}
/* 3. 隐藏滚动条(保留滚动功能,美化页面,移动端/PC端) */
.scrollbar-hide {
overflow-x: auto;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE/Edge */
}
.scrollbar-hide::-webkit-scrollbar { /* Chrome/Safari */
display: none;
}
/* 4. 光标样式(手型、禁止、文本,提升交互体验) */
.cursor-pointer { cursor: pointer; } /* 按钮、卡片、可点击元素 */
.cursor-not-allowed { cursor: not-allowed; } /* 禁用按钮 */
.cursor-text { cursor: text; } /* 输入框、搜索框 */
/* 5. 透明度(遮罩、弹窗、渐显渐隐,0-1) */
.opacity-0 { opacity: 0; }
.opacity-50 { opacity: 0.5; }
.opacity-80 { opacity: 0.8; }
/* 6. 图片适配(铺满容器,不变形,商品图片、头像) */
.img-fit {
width: 100%;
height: 100%;
object-fit: cover; /* 铺满容器,裁剪边缘(优先用) */
/* object-fit: contain; 完整显示,可能留空白(小众) */
}
/* 7. 清除浮动(兼容传统布局,备用) */
.clearfix::after {
content: '';
display: block;
clear: both;
}
/* 8. 置灰页面(维护、国庆哀悼,整站生效) */
.gray-page {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
}
核心总结
CSS3 在业务中的常用样式,本质围绕 **「布局实现→视觉美化→交互体验→多端适配」四大核心需求,掌握以下高频核心点 **,就能覆盖 80% 以上的业务开发:
- 布局 :Flex 弹性布局(必掌握)+ Grid 网格布局(二维布局)+
calc()动态计算; - 美化 :
border-radius圆角 +box-shadow盒子阴影 + 线性渐变 + 文字溢出省略(单行 / 多行); - 交互 :
transition过渡 +transform变换 +@keyframes关键帧动画 + 毛玻璃backdrop-filter; - 响应式 :媒体查询
@media+ 视口单位vw/vh+ Flex/Grid 响应式属性; - 工具类 :禁止文字复制、平滑滚动、隐藏滚动条、图片
object-fit、透明度,封装后直接复用。
实用技巧 :将所有高频样式封装到common.css/reset.css中,通过类名调用(如flex-center、text-ellipsis),大幅提升开发效率,同时保证项目样式统一。