CSS中直通属性的默认权重1px非常适合1em的正文复制。
不幸的是,对于较大的商品,例如在优惠网站上设置为3em的价格,1px实在太轻了。是否可以为直通线设置较重的线宽?
如果没有,我应该考虑哪些替代方案,例如图像叠加?
答案 0 :(得分:19)
你可以在现代浏览器中做这样的事情
.strike{
position: relative;
}
.strike::after{
content: '';
border-bottom: 4px solid red;
position: absolute;
left: 0;
top: 50%;
width: 100%;
}
I <span class="strike">love</span> hate hotdogs
也是一个小提琴: http://jsfiddle.net/TFSBF/
答案 1 :(得分:4)
这是另一种使用虚假打击的方法(它看起来很棒,适用于所有浏览器,虽然费用很小)。图像为黑色1px x 2px框。
del {
background: url(/images/black-1x2.png) repeat-x 0 10px;
}
答案 2 :(得分:3)
我认为这是一个浏览器实施问题。
请参阅此页http://jsbin.com/arucu5/2/edit
在IE8和Firefox中,线宽通过字体大小增加。 但是在Safari和Chrome中它保持1px
你总是可以像这样肮脏的Ghetto方法 http://www.overclock.net/web-coding/167926-ghetto-css-strike-through.html
答案 3 :(得分:2)
这应该有效:
<style>
span.strike {
font-weight:bold; /*set line weight here*/
color:red;
text-decoration:line-through;
}
span.strike>span {
font-weight:normal;
color: black;
}
</style>
<span class="strike"><span>$20.00</span></span>
答案 4 :(得分:1)
我找到了另一种为多行文字设置线宽的方法:
span {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAIAAADdv/LVAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASSURBVHjaYvrPwMDEAMEAAQYACzEBBlU9CW8AAAAASUVORK5CYII=');
background-repeat: repeat-x;
background-position: center;
}
这是一个例子: http://output.jsbin.com/weqovenopi/1/
此方法假设重复图像(1px宽度和npx高度)。它也可以独立于字体大小。
只有一个缺点 - 背景呈现在文本下面。
答案 5 :(得分:0)
你可以用样式加粗线条。
例如:
text-decoration-thickness: 3px;