You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在图标内定位文本?以放大镜图标内嵌字母为例

实现放大镜图标内动态显示大小写字母的效果

核心思路

用 HTML 构建容器,CSS 绘制放大镜样式并定位字母,结合 JavaScript 根据输入文本的大小写切换图标内的字母。

代码实现

HTML 结构

<div class="search-icon-container">
  <div class="magnifier"></div>
  <span class="case-letter">A</span>
</div>
<input type="text" id="text-input" placeholder="输入文本">

CSS 样式

.search-icon-container {
  position: relative;
  width: 40px;
  height: 40px;
}

/* 绘制放大镜图标 */
.magnifier {
  width: 30px;
  height: 30px;
  border: 2px solid #333;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
}
.magnifier::after {
  content: '';
  width: 12px;
  height: 2px;
  background-color: #333;
  position: absolute;
  bottom: -6px;
  right: -6px;
  transform: rotate(-45deg);
}

/* 字母样式,居中在放大镜内 */
.case-letter {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 16px;
  font-weight: bold;
  color: #333;
}

JavaScript 逻辑

const input = document.getElementById('text-input');
const letterEl = document.querySelector('.case-letter');

input.addEventListener('input', function() {
  const inputText = this.value;
  if (!inputText) {
    letterEl.textContent = 'A'; // 默认显示大写A
    return;
  }
  // 判断最后输入的字符大小写
  const lastChar = inputText[inputText.length - 1];
  letterEl.textContent = lastChar === lastChar.toUpperCase() ? 'A' : 'a';
});

效果说明

  • 放大镜图标通过 CSS 伪元素和边框绘制,无需外部图标文件
  • 字母始终居中在放大镜内部
  • 输入文本时,会根据最后一个字符的大小写自动切换图标内的大写A或小写a

内容的提问来源于stack exchange,提问作者Taylor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:26:19