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

富文本编辑器工具栏按钮蓝色下划线及<a>标签尺寸问题求助

解决富文本编辑器的两个CSS问题

嘿,我来帮你搞定这两个困扰你的问题!咱们一个个来拆解:

问题1:标签尺寸小于其子元素

标签默认是行内元素,这类元素的height属性其实不会生效,而且没法很好地包裹住内部的SVG元素。你只需要修改<a>的显示模式,让它变成能控制尺寸的行内块级元素就行:

#buttons a {
  height: 100%;
  /* 关键:改成inline-block,让<a>能包裹子元素并响应宽高设置 */
  display: inline-block;
  /* 可选:对齐SVG,避免底部多余间距 */
  vertical-align: middle;
}

修改后,<a>就会自动撑开到和内部SVG匹配的尺寸,不会再出现“装不下”子元素的情况。

问题2:Chrome工具栏按钮的蓝色下划线

这个是<a>标签的默认样式——text-decoration: underline在搞鬼!哪怕里面是SVG,Chrome有时候还是会给行内的<a>加上下划线。咱们直接把这个默认样式去掉,还要覆盖聚焦、点击等状态:

#buttons a,
#buttons a:focus,
#buttons a:active {
  /* 彻底去掉下划线 */
  text-decoration: none;
  /* 可选:去掉聚焦时的默认轮廓线,让按钮样式更统一 */
  outline: none;
}

另外,刚才把<a>改成inline-block也能间接避免这个问题,因为行内块级元素的文本装饰不会和SVG元素产生奇怪的重叠。

整合后的完整CSS代码

把这些修改加到你的现有代码里,最终样式会是这样:

#buttons svg {
  height: 24px;
  width: 24px;
  display: inline;
}

#buttons svg path {
  fill: #FFFFFF;
  margin: 0;
  padding: 0;
}

#buttons a {
  height: 100%;
  display: inline-block;
  vertical-align: middle;
  text-decoration: none;
}

#buttons a:focus,
#buttons a:active {
  text-decoration: none;
  outline: none;
}

body div {
  position: absolute;
  display: inline;
}

#toolbar {
  width: 25%;
  z-index: 9;
  height: 100%;
  right: 0;
  box-shadow: 0 0 ... /* 保留你原有阴影样式 */
}

这样应该就能解决你遇到的两个问题,工具栏按钮会正常显示,没有奇怪的下划线,<a>标签也能完全包裹SVG啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:08:16