文字修饰:直通不在IE上工作?

时间:2012-10-11 20:28:16

标签: html css internet-explorer

我有这个

.strike{
    text-decoration: line-through;
}

并且每次调用disable()时,它都会禁用<option>中的<select>并添加此类,但它不适用于IE。是的,我的<option>被禁用就好了,但文字装饰在IE上失败了。这是什么解决方法?感谢。

编辑:我刚发现文字修饰:直通在Chrome上也不起作用。

6 个答案:

答案 0 :(得分:1)

样式select元素的选项很少。这是一个显示您可用选项(和限制)的support grid

您可能最好以其他方式(example)模拟'select',而不是尝试使用CSS设置选择表单控件的样式。

答案 1 :(得分:1)

通常,option元素在样式中有许多限制,因为它们的渲染仍然主要基于系统中的内置例程,并且这些例程通常不能用CSS控制。 Overstriking通常不起作用,因为您可以使用简单的静态示例<select><option style="text-decoration: line-through">Hello world</select>进行测试。 (作为好奇心,Firefox使用直通,但不是初始状态下最初选择的选项。)

考虑使用替代方法。如果无法选择某个选项,为什么不将其删除? (我的意思是用JavaScript删除元素。用CSS隐藏它不会很好。)

或者,将其disabled属性设置为true。这将阻止它被选中,并将在流行的浏览器上使用灰色文本显示。

答案 2 :(得分:1)

我的问题是文字装饰:直通;不在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>

不确定这是否会对您有所帮助。

答案 3 :(得分:0)

你可能会变得棘手,并在文本div中添加一个像素背景。这至少是面向未来的,适用于所有浏览器。

答案 4 :(得分:-1)

在这里,试试这个:

<p>Bla bla bla <span class="strike">RAAAAAA!</span></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;
}

编辑:哦,它是一个选择。没关系。

答案 5 :(得分:-3)

在这里,试试这个

<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>