javascript - 使用 javascript 添加 CSS 渐变 - IE7 中的错误

标签 javascript css selector explicit internet-explorer-7

我试图只在 .link.box.gradient 上添加渐变,但在 ie7 中它会在 .link.box.gradient.style 上添加。盒子.渐变

<!DOCTYPE html>
<html lang="sv">
    <head>
    <title></title>
        <script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.4.min.js"></script>
        <script>
            jQuery(function ($) {
                $('head').append("<style>.link.box{height:100px;width:100px;}.link.box.gradient{filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#000000',EndColorStr='#ffffff');}</style>");
            });
        </script>
    </head>
    <body>
        <div class="style box gradient">Gradient (style-tag)</div>
        <div class="link box gradient">Gradient (link-tag)</div>
    </body>
</html>

这里也可以看到,http://jsfiddle.net/Zhvpy/ 一件奇怪的事情是当我从 javascript 中移出 .link.box{height:100px;width:100px;} 时,你可以在这里看到 http://jsfiddle.net/Zhvpy/1似乎可行,但我不想搬出去。

为什么会这样?我该如何修复这个错误?

最佳答案

删除了原来的错误答案

编辑 1

奇怪 - 决定这可能是旧版本的 IE 处理某些元素的方式(如 <script /> )所以尝试了 a non-jQuery solution . 似乎有效!

编辑 2

将此添加到您的完整脚本 - 输出更符合 IE8 输出的不同结果

function appendStyle(element, cssObj) {
    //$('#a').append($('<span/>').text(cssObjToText(cssObj)));
    if ($.browser.version == 7) {
        var head = document.getElementsByTagName('head')[0],
            style = document.createElement('style'),
            rules = document.createTextNode(cssObjToText(cssObj));

        style.type = 'text/css';

        head.appendChild(style);

        style.styleSheet.cssText = rules.nodeValue;
    }
    else {
        element.after('<style class="css-finalized">' + cssObjToText(cssObj) + '</style>');
    }
}

关于javascript - 使用 javascript 添加 CSS 渐变 - IE7 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4492545/

相关文章:

javascript - 有人发现我的重置功能有错误吗?

javascript - Angularjs querySelector根据属性查找元素

html - CSS3 文字旋转和平移动画

javascript - jQuery/JS 图表 - 根据条件绘制不同颜色的线条

javascript - 如何使用 JavaScript 中的过滤器根据用户输入过滤整个数组?

javascript - 需要确定在 JQuery 移动弹出窗口中单击的按钮并基于此执行操作

css - Bootstrap 3 为手机和平板电脑重新排序列

iOS-UIButton 自定义目标

javascript - 使用 jQuery "this"加上 CSS 选择器?

javascript - jQuery 1.9.1 按标签名称选择仅返回第一个元素