在Javascript中设置CSS属性?

Ski*_*zit 143 javascript css

我创造了以下......

var menu = document.createElement('select');
Run Code Online (Sandbox Code Playgroud)

我现在如何设置CSS属性,例如width: 100px

KJY*_*葉家仁 231

用途element.style:

var element = document.createElement('select');
element.style.width = "100px";
Run Code Online (Sandbox Code Playgroud)

  • @Luke obj.style [" - webkit-background-size"] ="400px" (57认同)
  • 那些像`-webkit-background-size`这样的非官方的呢?有没有办法用普通的js设置这些,还是我们必须使用jQuery? (13认同)

djd*_*d87 52

只需设置style:

var menu = document.createElement("select");
menu.style.width = "100px";
Run Code Online (Sandbox Code Playgroud)

或者如果你愿意,你可以使用jQuery:

$(menu).css("width", "100px");
Run Code Online (Sandbox Code Playgroud)

  • @Sime - 我的报价并不矛盾.我总是使用JS的双引号,因为这是工作的标准.无论如何,第一行有单引号,因为我从OPs问题中复制了它.无论如何现在纠正了. (5认同)
  • @Sime - 我确实知道:*"无论如何,第一行有单引号,因为我从OPs问题中复制了它.现在无论如何纠正."* (2认同)

Dan*_*ore 34

对于大多数样式这样做:

var obj = document.createElement('select');
obj.style.width= "100px";
Run Code Online (Sandbox Code Playgroud)

对于名称中带有连字符的样式,请执行以下操作:

var obj = document.createElement('select');
obj.style["-webkit-background-size"] = "100px"
Run Code Online (Sandbox Code Playgroud)


Jus*_*ner 17

使用vanilla JavaScript实际上非常简单:

menu.style.width = "100px";
Run Code Online (Sandbox Code Playgroud)


Nic*_*ick 14

所有的答案都告诉你如何做你所要求的但我会建议使用JavaScript在元素上设置一个类并使用CSS来设置它.这样你就可以保持行为和风格之间的正确分离.

想象一下,如果你有一个设计师来重新设计网站风格......他们应该能够纯粹在CSS中工作,而不必使用你的JavaScript.

在原型我会做:

$(newElement).addClassName('blah')
Run Code Online (Sandbox Code Playgroud)


Mat*_*ino 13

只为那些想在 2018 年做同样事情的人

您可以为您的元素分配一个 CSS 自定义属性(通过 CSS 或 JS)并更改它:

通过 CSS 赋值:

element {
  --element-width: 300px;

  width: var(--element-width, 100%);
}
Run Code Online (Sandbox Code Playgroud)

通过 JS 赋值

ELEMENT.style.setProperty('--element-width', NEW_VALUE);
Run Code Online (Sandbox Code Playgroud)

通过JS获取属性值

ELEMENT.style.getPropertyValue('--element-width');
Run Code Online (Sandbox Code Playgroud)

这里有用的链接:


小智 6

调试时,我喜欢能够在一行中添加一堆css属性:

menu.style.cssText = 'width: 100px';
Run Code Online (Sandbox Code Playgroud)

习惯这种风格后,您可以在一行中添加一堆 css,如下所示:

menu.style.cssText = 'width: 100px; height: 100px; background: #afafaf';
Run Code Online (Sandbox Code Playgroud)


Het*_*dev 5

如果要添加全局属性,可以使用:

    var styleEl = document.createElement('style'), styleSheet;
            document.head.appendChild(styleEl);
            styleSheet = styleEl.sheet;
            styleSheet.insertRule(".modal { position:absolute; bottom:auto; }", 0);
Run Code Online (Sandbox Code Playgroud)