Установить свойство CSS в Javascript?



Я создал следующее...



var menu = document.createElement('select');


Как бы я теперь установить CSS атрибуты, например width: 100px?

563   10  

10 ответов:

использовать element.style:

var element = document.createElement('select');
element.style.width = "100px";

просто установить style:

var menu = document.createElement("select");
menu.style.width = "100px";

или если вы хотите, вы можете использовать jQuery:

$(menu).css("width", "100px");

для большинства стилей этого:

var obj = document.createElement('select');
obj.style.width= "100px";

для стилей, которые имеют дефисы в имени, сделайте это вместо этого:

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

это на самом деле довольно просто с ванильным JavaScript:

menu.style.width = "100px";

все ответы скажите Как правильно делать то, что вы просили, но я бы посоветовал использовать JavaScript, чтобы установить класс на элемент и стиль его с помощью CSS. Таким образом, вы сохраняете правильное разделение между поведением и стилем.

представьте, что у вас есть дизайнер, чтобы изменить стиль сайта... они должны быть в состоянии работать исключительно в CSS без необходимости работать с вашим JavaScript.

в прототипе я бы сделал:

$(newElement).addClassName('blah')

Если вы хотите добавить глобальное свойство, вы можете использовать:

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

при отладке мне нравится добавлять кучу атрибутов css в одну строку:

menu.style.cssText = 'width: 100px';

привыкнув к этому стилю, вы можете добавить кучу css в одну строку следующим образом:

menu.style.cssText = 'width: 100px; height: 100px; background: #afafaf';
<h1>Silence and Smile</h1>
<input  type="button"  value="Show Red"   onclick="document.getElementById('h1').style.color='Red'"/>
<input  type="button"  value="Show Green" onclick="document.getElementById('h1').style.color='Green'"/>
<body>
  <h1 id="h1">Silence and Smile</h1><br />
  <h3 id="h3">Silence and Smile</h3>

  <script type="text/javascript">
    document.getElementById("h1").style.color = "Red";
    document.getElementById("h1").style.background = "Green";
    document.getElementById("h3").style.fontSize = "larger" ; 
    document.getElementById("h3").style.fontFamily = "Arial";
  </script>
</body>

только для людей, которые хотят сделать то же самое в 2018 году

вы можете назначить CSS пользовательское свойство для вашего элемента (через CSS или JS) и изменить его:

назначение через CSS:

element {
  --element-width: 300px;

  width: var(--element-width, 100%);
}

назначение через JS

ELEMENT.style.setProperty('--element-width', NEW_VALUE);

получить значение свойства через JS

ELEMENT.style.getPropertyValue('--element-width');

здесь полезную ссылки:

Comments

    Ничего не найдено.