我有这个
.strike{
text-decoration: line-through;
}
每次disable()
调用 my 时,它都会禁用<option>
my 中的 s<select>
并添加此类,但它在 IE 上不起作用。是的,我<option>
的 s 被禁用得很好,但 IE 上的文本装饰失败。解决方法是什么?谢谢。
编辑:我刚刚发现 text-decoration: line-through 在 Chrome 上也不起作用。
我有这个
.strike{
text-decoration: line-through;
}
每次disable()
调用 my 时,它都会禁用<option>
my 中的 s<select>
并添加此类,但它在 IE 上不起作用。是的,我<option>
的 s 被禁用得很好,但 IE 上的文本装饰失败。解决方法是什么?谢谢。
编辑:我刚刚发现 text-decoration: line-through 在 Chrome 上也不起作用。
一般来说,option
元素在样式方面有很多限制,因为它们的渲染仍然主要基于系统中的内置例程,而这些例程通常不能用 CSS 控制。Overstriking 通常不起作用,因为您可以使用简单的静态示例进行测试<select><option style="text-decoration: line-through">Hello world</select>
。(出于好奇,Firefox 使用 line through,但不是在初始状态下最初选择的选项上。)
考虑使用替代方法。如果无法选择一个选项,为什么不直接删除它呢?(我的意思是用 JavaScript 删除元素。用 CSS 隐藏它效果不好。)
或者,将其disabled
属性设置为true
。这将阻止它被选中,并在流行的浏览器上使用灰色文本显示。
我的问题是 text-decoration: line-through; 不在IE中工作。我使用简写在单个声明中设置一个或多个单独的文本装饰值(例如文本装饰:通过虚线蓝色的线)。我发现它还不支持。 https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration
如果您需要下划线/穿线的另一种颜色,请使用额外的 span 元素。
<span style="color:red; text-decoration: line-through;"><span style="color: blue; text-decoration: none">Try this!</span></span>
不确定这是否会对您的情况有所帮助。
您可能会变得棘手并为文本 div 添加一个像素背景。这至少是面向未来的并且适用于所有浏览器。
在这里,试试这个:
<p>Bla bla bla <span class="strike">RAAAAAA!</span></p>
和:</p>
span.strike{
position: relative;
text-align: center;
z-index: 1;
}
span.strike:before {
border-top: 1px solid #000;
content:"";
width: 100%;
position: absolute;
top: 50%;
z-index: -1;
}
编辑:哦,它是一个选择。没关系。
来,试试这个
<select>
<option selected> Size - </option>
<option class="disabledoption">Short Option</option>
<option class="disabledoption">This Is </option>
<option class="disabledoption">dssdsd Is </option>
<option class="disabledoption">yes </option>
<option class=>ertyu </option>
<option class=>gsdgsdf </option>
</select>
<script type="text/javascript">
jQuery(document).ready(function() {
uni = '\u0336';
jQuery('.disabledoption', this).each(function(index, element) {
uni = '\u0336';
var result = strikeString(jQuery(this).html(), uni);
jQuery(this).html(result);
});
});
function strikeString(str, strikeKind) {
var result = '';
for (var i = 0; i < str.length; i++) {
var c = str.charAt(i);
var r = c+strikeKind;
result += r;
}
return result;
}
</script>