【发布时间】:2014-07-27 18:21:20
【问题描述】:
我需要使用 CSS 对文本实现 透明删除线,因此我不必将 <h1> 标记替换为 <img> 标记。我已经设法使用 CSS 在文本上实现了一个 line-through,但我不能让它变得透明。
想要的效果:
我有什么:
body{
background: url(http://lorempixel.com/output/people-q-c-640-480-1.jpg);
background-size:cover;
}
h1{
font-family:arial;
position:relative;
display:inline-block;
}
h1:after{
content:'';
position:absolute;
width:100%;
height:2px;
left:0; top:17px;
background:#fff;
}
<h1>EXAMPLE</h1>
如何实现突出我的文本的透明删除线并允许背景出现在这一行中。
【问题讨论】:
-
那是一张图片,很可能是用 illustrator 创建的,其中一个剪贴蒙版被用来“剪掉”文本中的那条线,让你看到它背后的背景。不能在html和css中完成
-
@ChrisM 甚至认为 CSS 通常无法实现“剪切”效果,这一点是。
-
@web-tiki 好的,我想从技术上讲,您已经通过一些技巧完成了它。你实际上是把这个词写了两次并切断了部分。我不明白为什么
line-height:0将文本向上推,显示下半部分而不是顶部。 -
@ChrisM 这一切都取决于你认为什么是黑客。在我的实现中,CSS/HTML 根据 W3 标准是有效的。对于只显示底部的文本,这是因为
line-height:0,它将文本垂直居中到容器的顶部,当我在容器上设置overlow:hidden时,只显示文本的底部。跨度> -
@ChrisM 它没有完全隐藏它,因为我设置了元素的高度。
overflow:hidden;属性根据高度隐藏,而不是根据行高。
标签: css svg fonts css-shapes