Câu trả lời:
Sử dụng element.style
:
var element = document.createElement('select');
element.style.width = "100px";
Chỉ cần đặt style
:
var menu = document.createElement("select");
menu.style.width = "100px";
Hoặc nếu bạn thích, bạn có thể sử dụng jQuery :
$(menu).css("width", "100px");
:)
Đối với hầu hết các phong cách làm điều này:
var obj = document.createElement('select');
obj.style.width= "100px";
Đối với các kiểu có dấu gạch ngang trong tên, hãy thực hiện việc này thay vào đó:
var obj = document.createElement('select');
obj.style["-webkit-background-size"] = "100px"
Điều đó thực sự khá đơn giản với JavaScript vanilla:
menu.style.width = "100px";
Tất cả các câu trả lời cho bạn biết chính xác cách thực hiện những gì bạn đã hỏi nhưng tôi sẽ khuyên bạn nên sử dụng JavaScript để đặt một lớp trên thành phần và định kiểu nó bằng cách sử dụng CSS. Bằng cách đó, bạn đang giữ sự tách biệt chính xác giữa hành vi và phong cách.
Hãy tưởng tượng nếu bạn có một nhà thiết kế để tạo kiểu lại trang web ... họ sẽ có thể làm việc hoàn toàn bằng CSS mà không phải làm việc với JavaScript của bạn.
Trong nguyên mẫu tôi sẽ làm:
$(newElement).addClassName('blah')
$(selector).addClass('blah')
Chỉ dành cho những người muốn làm điều tương tự vào năm 2018
Bạn có thể gán một thuộc tính tùy chỉnh CSS cho thành phần của bạn (thông qua CSS hoặc JS) và thay đổi nó:
Assigment thông qua CSS:
element {
--element-width: 300px;
width: var(--element-width, 100%);
}
Chuyển nhượng thông qua JS
ELEMENT.style.setProperty('--element-width', NEW_VALUE);
Nhận giá trị tài sản thông qua JS
ELEMENT.style.getPropertyValue('--element-width');
Ở đây liên kết hữu ích:
Khi gỡ lỗi, tôi muốn có thể thêm một loạt các thuộc tính css trong một dòng:
menu.style.cssText = 'width: 100px';
Làm quen với phong cách này, bạn có thể thêm một loạt css trong một dòng như vậy:
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>
Điều này hoạt động tốt với hầu hết các thuộc tính CSS nếu không có dấu gạch nối trong chúng.
var element = document.createElement('select');
element.style.width = "100px";
Đối với các thuộc tính có dấu gạch nối trong chúng như thế nào max-width
, bạn nên chuyển đổi sausage-case
thànhcamelCase
var element = document.createElement('select');
element.style.maxWidth = "100px";
Điều quan trọng là phải hiểu rằng mã dưới đây không thay đổi biểu định kiểu mà thay vào đó thay đổi DOM:
document.getElementById("p2").style.color = "blue";
DOM lưu trữ một giá trị được tính toán của các thuộc tính thành phần của biểu định kiểu và khi bạn tự động thay đổi kiểu phần tử bằng Javascript, bạn sẽ thay đổi DOM. Điều này rất quan trọng để lưu ý và hiểu bởi vì cách bạn viết mã có thể ảnh hưởng đến động lực học của bạn. Nếu bạn cố gắng thu được các giá trị không được ghi trực tiếp vào chính phần tử, như vậy ...
let elem = document.getElementById('some-element');
let propertyValue = elem.style['some-property'];
... bạn sẽ trả về một giá trị không xác định sẽ được lưu trữ trong biến 'propertyValue' của ví dụ mã. Nếu bạn đang làm việc với việc nhận và thiết lập các thuộc tính được viết bên trong biểu định kiểu CSS và bạn muốn có CHỨC NĂNG SINGLE , cũng như đặt các giá trị thuộc tính kiểu trong tình huống này, đây là tình huống rất phổ biến, sau đó bạn phải sử dụng JQuery.
$(selector).css(property,value)
Nhược điểm duy nhất là bạn phải biết JQuery, nhưng đây thực sự là một trong rất nhiều lý do tốt mà mọi Nhà phát triển Javascript nên học JQuery. Nếu bạn muốn có được một thuộc tính CSS được tính toán từ một biểu định kiểu trong JavaScript thuần thì bạn cần phải sử dụng.
function getCssProp(){
let ele = document.getElementById("test");
let cssProp = window.getComputedStyle(ele,null).getPropertyValue("width");
}
Nhược điểm của phương thức này là phương thức getComputingValue chỉ nhận được, nó không được đặt. Các giá trị tính toán của Mozilla Liên kết này đi sâu hơn về những gì tôi đã giải quyết ở đây. Hy vọng điều này sẽ giúp được ai đó !!!
-webkit-background-size
nào? Có cách nào để thiết lập những thứ này với js đơn giản hay chúng ta phải sử dụng jQuery?