我遇到了一個非常奇怪的問題......
創建 DIV 元素時,我將其添加到 DOM 并將 innerText 屬性設定為單個空格字符。當我檢查 clientHeight 屬性時,它是 0。如果我將其更改為……說字母“a”,clientHeight 屬性將更改為 18。
在控制臺中輸入。
aa = document.createElement("div")
<div>?</div>?
aa.clientHeight
0
aa.innerText = ' ';
' '
aa.clientHeight
0
document.body.appendChild(aa);
<div>? ?</div>?
aa.clientHeight
0
aa.innerText = 'a';
'a'
aa.clientHeight
18
aa.innerText = ' ';
' '
aa.clientHeight
0
我在 Firefox 中嘗試了同樣的事情,它正在做同樣的事情。這是標準的一部分還是什么?我想這可能是因為 Firefox 正在做同樣的事情。我沒有 Apple 設備,因此無法在 Safari 中試用。
我可以將 style.height 設定為強制為 18 ......
有什么建議或想法嗎?
uj5u.com熱心網友回復:
HTML 使用一種稱為空格折疊的行為——瀏覽器會將多個 HTML 空格顯示為一個空格,并且還會忽略元素前后和元素外部的空格。
因此,當您將空間設定為文本并且 div HTML 沒有其他內容時,它會完全忽略這一點。要添加空間,您可以使用HTML Non-Breaking Space( ),但由于它不是文本,而是 HTML,您將不得不使用 innerHTML 而不是 innerText。
我創建了一個代碼筆供您使用
https://codepen.io/jaydave1412/pen/qBVMGpe
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/434639.html
標籤:javascript html 谷歌浏览器
