首先,這個問題有很多重複內容,但這些答案不能提供更深入的見解。使用JavaScript對象更改element.style
Q1。爲什麼這個結果在200,0?
考慮這個片斷:
var el = document.querySelector('#r');
console.log('First:: ' + el.offsetHeight);
el.style = {
height: el.offsetHeight + 500 + 'px'
}
console.log('Second:: ' + el.offsetHeight);
<div id="r" style="height:200px;width:800px;overflow:auto;border:1px solid;margin:20px;box-sizing:border-box"></div>
我懷疑el.style
是隻讀的,所以我希望設置一個對象應該默默地消失,所以我希望可以將輸出爲
First:: 200,Second:: 200
但它是:
First:: 200,Second:: 0
爲什麼? Q2302。爲什麼使用Object.assign設置el.style有效?
Object.assign(el.style,{
height : el.offsetHeight + 500
})
有人能請一些更深入的見解解釋我嗎?
'el.style'是**不是**只讀。您可以使用它來獲取或**設置元素上的內嵌樣式。訪問'.style'屬性返回一個對象。該對象具有所有CSS屬性。即'el.style.height ='500px'' –
@ScottMarcus檢查https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style#Setting_style(4th)表示它是隻讀的,糾正我,如果我錯了 –
@ScottMarcus是的,我接受設置屬性使用'el.style。[property]'應該工作,但它分配一個對象到'el.style'時失敗 –