<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Test</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css">
.mark {
border-bottom: 1px solid #000;
top: -9px; /* Tweak this and the other top in equal, but opposite values */
position: relative;
}
.offsetMark {
position: relative;
top: 9px; /* Tweak this and the other top in equal, but opposite values */
}
</style>
</head>
<body>
<div>
<p class="strikethrough">This is an <span class="mark"><span class="offsetMark">example</span></span> of how I'd do it.</p>
</div>
</body>
</html>
9条答案
按热度按时间huus2vyu1#
你不能用strike标签或者
text-decoration:line-through
样式来做。行的位置是内置的。你可以为它滚动你自己的样式,但这将是一个巨大的皮塔。khbbv19g2#
我已经炮制了这个代码,让你完全控制删除线的位置和风格:
字符集
6ju8rftf3#
11年后,这是一个非常简单的任务:
个字符
vuv7lop34#
它是浏览器渲染引擎的一部分。对我来说(在Chrome中),这条线被渲染在中间上方。
kcrjzv8t5#
2021解决方案
通常情况下,您会使用
text-decoration: line-through
,但您目前无法更改line-through
行的位置。但幸运的是,由于新的CSS属性
text-underline-offset
,您可以 * 更改“underline”的位置。它是这样工作的:
个字符
虽然你可能会注意到这行看起来有点不稳定,这是由于相对较新的
text-decoration-skip-ink
试图隐藏下划线在它会覆盖文本的地方。它对下划线很好,但作为删除线失败了。幸运的是,我们可以关闭该功能,并沿着一些额外的漂亮的颜色和厚度属性,这是最终的结果:
的字符串
浏览器支持是广泛的,目前Safari除外。
pxiryf3j6#
这个解决方案允许填充,并使用csss的line-through属性它适用于firefox,Chrome/ safari无论如何都是正确的。
字符集
加价大概是
型
另一种解决方案是添加一行背景图像,并使其与文本颜色相同。
b4qexyjb7#
你可以这样做:
字符集
http://codepen.io/anon/pen/cLBls
scyqe7ek8#
一次性使用的替代解决方案...
个字符
tzcvj98z9#
我的解决方案:
个字符