导读:本期聚焦于小伙伴创作的《如何用纯CSS实现一个加号图标效果而不依赖图片或字体》,敬请观看详情。想在不引入图片和图标字体的前提下,用CSS画出加号该怎么办。借助伪元素可以轻松完成这件事。核心思路是利用一个容器元素,通过before和after分别生成横竖两条线段并叠加。相比使用SVG或图片,纯CSS方案体积更小、颜色可控且易于响应式缩放。需要注意容器尺寸与伪元素宽高比例,避免线条过细在移动端不清晰。掌握这一技巧后,还能扩展出减号、关闭叉号等基础图形,对轻量页面非常实用。

在网页开发中,经常会遇到需要展示加号图标的场景,例如展开折叠面板、添加按钮或者表单增项操作。如果不想额外加载图片或图标字体,完全可以依靠纯CSS配合伪元素来实现一个简洁的加号效果。这种方式不仅减少了资源请求,还能通过修改颜色、尺寸等属性灵活适配各种设计需求。

如何用纯CSS实现一个加号图标效果而不依赖图片或字体

实现原理解析

加号本质上是由一条水平线和一条垂直线交叉组成的。我们可以准备一个作为容器的块级元素,例如一个<span>或者<div>,设定其宽高作为加号的整体占位。接着使用::before伪元素生成水平线条,使用::after伪元素生成垂直线条,通过绝对定位让两者中心重合,就得到了加号形状。

这种方案的关键在于容器的position需要设置为relative,而两个伪元素设置为absolute并居中。伪元素的背景色就是加号的线条颜色,其宽度和高度则分别控制横竖线条的长短与粗细。由于伪元素不属于文档实际节点,不会影响HTML语义结构,非常适合做纯装饰性的图形。

基础代码示例

下面是一个最简单直观的实现,我们创建一个类名为css-plus的容器,通过两个伪元素画出加号:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<style>
.css-plus {
  position: relative;
  width: 24px;
  height: 24px;
  display: inline-block;
}
.css-plus::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  width: 2px;
  height: 100%;
  background: #333;
  transform: translateX(-50%);
}
.css-plus::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  height: 2px;
  width: 100%;
  background: #333;
  transform: translateY(-50%);
}
</style>
</head>
<body>
<span class="css-plus"></span>
</body>
</html>

在上面的代码中,::before被设定为宽度2px、高度占满容器的竖线,并通过translateX(-50%)实现水平居中;::after则是高度2px、宽度占满容器的横线,通过translateY(-50%)实现垂直居中。两者叠加后自然形成加号。

常见调整与优化

实际项目中,加号往往需要根据主题变色或随屏幕缩放。由于线条颜色由伪元素的background控制,直接修改该值即可换色;若希望加号随父级字体大小变化,可将容器宽高改为使用em单位,例如width:1em、height:1em,线条粗细用0.1em表示,这样在父级设置font-size时加号会同步伸缩。

另外一个容易忽略的点是点击区域。如果加号用于按钮内部,建议将容器尺寸留足,避免伪元素线条太细导致用户难以点中。可以保持视觉线条细,但容器实际占位稍大,再利用伪元素定位居中即可兼顾美观与体验。

使用CSS渐变实现另一种思路

除了伪元素,还可以利用background的线性渐变在一个元素上直接绘制加号,适合不允许新增伪元素场景:

.plus-gradient {
  width: 24px;
  height: 24px;
  background:
    linear-gradient(#333, #333) center / 2px 100% no-repeat,
    linear-gradient(#333, #333) center / 100% 2px no-repeat;
}

这段CSS通过两层渐变分别画出竖线和横线,并用background-size限定其粗细与长度,同样能得出加号。不过伪元素方案在兼容性和语义上都更直观,也更方便做悬停旋转等交互动画。

小结

纯CSS实现加号效果的核心就是横竖两条线的叠加,无论是伪元素还是渐变背景都能胜任。开发者可以根据项目结构选择最合适的方式,在保持页面轻量的同时,获得高度可定制的UI元素。

pure_CSSplus_iconCSS_pseudo_element修改时间:2026-08-09 06:51:21

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。