我有一组带样式的链接,使用:before来应用箭头.

它在所有浏览器中看起来都很好,但是当我将下划线应用到链接时,我不希望在:before部分(箭头)上有下划线.

参见jsfiddle,例如:http://jsfiddle.net/r42e5/1/

可以把这个go 掉吗?我与#test p a:hover:before人坐在一起的测试风格确实得到了应用(根据Firebug的说法),但下划线仍然存在.

有什么办法可以避免这种情况吗?

#test {
  color: #B2B2B2;
}

#test p a {
  color: #B2B2B2;
  text-decoration: none;
}

#test p a:hover {
  text-decoration: underline;
}

#test p a:before {
  color: #B2B2B2;
  content: "► ";
  text-decoration: none;
}

#test p a:hover:before {
  text-decoration: none;
}
<div id="test">
  <p><a href="#">A link</a></p>
  <p><a href="#">Another link</a></p>
</div>

推荐答案

可以把这个go 掉吗?

可以,如果将内联元素的显示样式从display:inline(默认值)更改为display:inline-block:

#test p a:before {
    color: #B2B2B2;
    content: "► ";
    display:inline-block;
}

这是因为:

在内联元素上指定或传播到内联元素时,它会影响该元素生成的所有框,并进一步传播到拆分内联的任何流内挡路级别的框(请参阅第9.2.1.1节).[…]对于所有其他元素,它被传播到任何流入子元素.请注意,文本修饰是not propagated到浮动和绝对定位的子体,也不是to the contents of atomic inline-level descendants such as inline blocks and inline tables.

(重点是我的.)

Demo: http://jsfiddle.net/r42e5/10/

Thanks to @Oriol for providing the workaround that prompted me to check the specs and see that the workaround is legal.

Html相关问答推荐

为什么在Vuettify 3中使用Flex时会忽略宽度?

XPATH text()函数遇到困难

传单自定义标记(divIcon)html/css不适用

试图让三个Divs与下面的另外三个对齐

CSS自定义特性中的URL是否可以相对于定义的CSS文件?

如何阻止Chromecast图标出现在HTML5视频

如何最大限度地减少Cookie同意代码对性能的影响?

使用响应迅速的网格系统,将两列保持在同一行,同时允许更多列用于更大的屏幕

如何使用css在响应图像后面添加形状?

如何在没有包装元素的情况下在React(Next.js)中呈现HTML注释

如何在Go模板中传入途中创建的 map

下划线在 Bootstrap 5 导航链接下无法正常工作

在React中如何处理HTML本地日期输入?

如何使容器的大小适合其 position:absolute; 子元素的大小

动态计算高度时 Div 不保持 1/1 纵横比

如何通过像图像一样的 元素来调整 SVG 图标的大小

在 React (NEXT) 中,当我try 进行动态补充时,我无法使用实例this来引用输入

浮动元素忽略 margin-top 属性后的块元素

如何突出显示 .qmd html 文件中的特定代码行

基本上,我想要两列包含文本和图像,但第二列是倒置的