从文件更改CSS值

时间:2013-05-03 15:17:56

标签: javascript jquery

我有一个keyboard.css文件和一个keyboard.js文件,我正在尝试更改css规则

.ui-keyboard div { font-size: 1.1em; }

我想更改字体大小。有没有办法做到这一点,而不使用
$(".ui-keyboard div").css()

我想在渲染元素之前更改值,我想在构造元素时传递值

$('.onScreenKeyboard').keyboard({
    zoomLevel: 2
});

编辑:为了澄清这一点,目标是有办法改变字体大小,而不必去编辑CSS上的值。我想在库中创建一个选项:

在构造函数中我检查选项并更改元素

//set Zoom Level
if(o.zoomLevel){
    //Change CSS Here.
}

2 个答案:

答案 0 :(得分:2)

也许您正在寻找CSSStyleSheetinsertRuledeleteRule之类的内容。

这是我刚才写的一些代码,让我修改CSS规则

function CSS(sheet) {
    if (sheet.constructor.name === 'CSSStyleSheet') this.sheet = sheet;
    else if (sheet.constructor.name === 'HTMLStyleElement') this.sheet = sheet.sheet;
    else throw new TypeError(sheet + ' is not a StyleSheet');
}
CSS.prototype = {
    constructor : CSS,
    add: function (cssText) {
        return this.sheet.insertRule(cssText, this.sheet.cssRules.length);
    },
    del: function (index) {
        return this.sheet.deleteRule(index);
    },
    edit: function (index, cssText) {
        var i;
        if (index < 0) index = 0;
        if (index >= this.sheet.cssRules.length) return this.add( cssText );
        i = this.sheet.insertRule(cssText, index);
        if (i === index) this.sheet.deleteRule(i + 1);
        return i;
    }
};

您可以通过直接为构造函数CSS提供<style>节点,或者直接提供 StyleSheet ,然后使用带有索引的.edit来使用它规则和您想要的新规则。 e.g。

// get StyleSheet
var mycss = new CSS(document.querySelector('style[src="keyboard.css"]'));
// edit rule 0
mycss.edit(0, '.ui-keyboard div { font-size: 5em; }');

答案 1 :(得分:0)

将以下css添加到元素中,最初您不会显示它,直到您通过库更改样式属性然后显示它。

.ui-keyboard div {
     font-size: 1.1em;
     display: none;
}

您还可以通过执行以下操作来更改字体大小:

[element].style.fontSize = "25px";