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

css实现a标签前面加小图标

三种效果演示:(为了方便观看效果,我将时间调整为了1秒)

方案1:悬停时图标滑入 

/* 方案:悬停时图标滑入 */
a {position: relative; /* 定位上下文 */display: inline-block; /* 确保padding不会影响其他行内元素 */padding-left: 0;transition: padding-left 0.3s ease; /* 为padding-left添加过渡 */
}a::before {content: "";position: absolute;left: 0;top: 50%;transform: translateY(-50%) translateX(-100%); /* 初始位置:完全在左侧外面 */width: 16px;height: 16px;background: url("图标.svg") center/contain no-repeat;opacity: 0;transition: all 0.3s ease;
}a:hover {padding-left: 24px; /* 16px图标宽度+8px间距 */
}a:hover::before {opacity: 1;transform: translateY(-50%) translateX(0); /* 滑入到左侧位置 */
}

【提示】如果链接是行内元素(inline),需要改为inline-block,否则padding-left可能不会生效。如果希望图标在文字右侧,可以调整left为auto, right为0,并修改transform和padding方向。

方案二:透明度过渡

/* 给链接添加相对定位作为参照 */
a {position: relative;padding-left: 0;transition: padding-left 0.3s ease; /* 平滑过渡效果 */
}/* 使用::before伪元素创建图标 */
a::before {content: "";position: absolute;left: 0;top: 50%;transform: translateY(-50%);width: 16px; /* 图标宽度 */height: 16px; /* 图标高度 */background-image: url("图标路径.svg"); /* 图标资源 */background-size: contain;background-repeat: no-repeat;opacity: 0; /* 初始完全透明 */transition: opacity 0.3s ease; /* 透明度过渡效果 */
}/* 鼠标悬停时显示图标 */
a:hover::before {opacity: 1; /* 完全不透明 */
}/* 悬停时添加左边距避免文字重叠 */
a:hover {padding-left: 24px; /* 图标宽度 + 间距 */
}

补充:带缩放样式

a::before {/* ...其他样式... */transform: translateY(-50%) scale(0); /* 初始缩放为0 */transition: transform 0.3s ease;
}a:hover::before {transform: translateY(-50%) scale(1); /* 悬停时恢复原始大小 */opacity: 1;
}

http://www.lryc.cn/news/575117.html

相关文章:

  • 【GStreamer】减小延时的参数设置、从RTP中获取时间戳
  • 深入探索WordPress Multisite:构建与管理多站点网络
  • 【Lua 基础学习】
  • C++(智能指针)
  • LeetCode 3298.统计重新排列后包含另一个字符串的子字符串数目2
  • ivx创建一个测试小案例
  • Vue3插槽
  • 基于springboot+vue的智慧农业专家远程指导系统
  • 批量DWG转PDF工具
  • ES和 Kafka 集群搭建过程中的典型问题、配置规范及最佳实践
  • RK平台HDMI-IN/camera调试:预留CMA内存
  • Mac安装Apache CXF的时候报错:/Library/Internet: No such file or directory
  • 打造属于你的AI智能体,从数据开始 —— 使用 Bright Data MCP+Trae快速构建垂直智能体
  • 操作系统之内存管理(王道)
  • Azure 自动化:所需状态配置 (DSC)
  • UniApp 开发第一个项目
  • Python虚拟环境管理:conda、venv、pipenv三国杀
  • JSON框架转化isSuccess()为sucess字段
  • Fisco Bcos学习 - 开发第一个区块链应用
  • PAC 学习框架:机器学习的可靠性工程
  • 通俗易懂解读BPE分词算法实现
  • 回归预测 | Matlab实现KAN神经网络多输入单输出回归预测模型
  • 轻巧灵动,智启未来 ——Kinova Gen3 Lite 机器人轻松解锁各行业自动化新姿势
  • 领域驱动设计(DDD)【13】之重构中的坏味道:深入理解依恋特性(Feature Envy)与表意接口模式
  • 香港电讯携手Palo Alto Networks,护航企业跨区域数字化之旅
  • 第8章项目进度管理归纳总结补充
  • 英飞凌高性能BMS解决方案助力汽车电动化
  • python学智能算法(十六)|机器学习支持向量机简单示例
  • 基于MATLAB图像特征识别及提取实现图像分类
  • spring event(spring事件)