Відповіді:
Використання 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')
$(selector).addClass('blah')
Просто для людей, які хочуть зробити те саме в 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');
Ось корисні посилання:
<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>
Це добре працює з більшістю властивостей CSS, якщо в них немає дефісів.
var element = document.createElement('select');
element.style.width = "100px";
Для властивостей з дефісами, як у них max-width
, слід перетворити sausage-case
наcamelCase
var element = document.createElement('select');
element.style.maxWidth = "100px";
Важливо розуміти, що наведений нижче код не змінює таблицю стилів, а замість цього змінює DOM:
document.getElementById("p2").style.color = "blue";
DOM зберігає обчислене значення властивостей елементів стильових таблиць, і коли ви динамічно змінюєте стиль елементів за допомогою Javascript, ви змінюєте DOM. Це важливо відзначити і зрозуміти, оскільки спосіб написання коду може вплинути на вашу динаміку. Якщо ви спробуєте отримати значення, які не були записані безпосередньо в сам елемент, як-от ...
let elem = document.getElementById('some-element');
let propertyValue = elem.style['some-property'];
... ви повернете невизначене значення, яке буде збережено у змінній "propertyValue" прикладу коду. Якщо ви працюєте з отриманням та налаштуванням властивостей, написаних всередині таблиці стилів CSS, і ви хочете отримати ОДИНУ ФУНКЦІЮ , а також встановлює значення стилю-властивості в цій ситуації, що дуже часто зустрічається, тоді ви повинні використовувати JQuery.
$(selector).css(property,value)
Єдиним недоліком є те, що ти познайомишся з JQuery, але це, чесно кажучи, одна з дуже багатьох хороших причин, з якими кожен розробник Javascript повинен вивчати JQuery. Якщо ви хочете отримати властивість CSS, яка була обчислена з таблиці стилів у чистому JavaScript, вам потрібно скористатися.
function getCssProp(){
let ele = document.getElementById("test");
let cssProp = window.getComputedStyle(ele,null).getPropertyValue("width");
}
Мінусом цього методу є те, що метод getComputedValue тільки отримує, він не встановлюється. Mozilla взяти на обчислені цінності Це посилання іде більш глибоко про те, про що я тут звертався. Сподіваюся, це комусь допомагає !!!
-webkit-background-size
? Чи є спосіб встановити їх за допомогою простого js або ми повинні використовувати jQuery?