在Web 開發領域, element 經常讓我們感到困惑,因為它具有保持文字垂直居中的看似神奇的能力。為了解開這個謎團,讓我們分析一段HTML 和CSS:
<code class="html"><button class="button">Some Text</button> <div class="button">Some Text</div></code>
<code class="css">.button { background: darkgrey; height: 40px; border: 2px solid grey; width: 100%; box-sizing: border-box; font-size: 14px; font-family: helvetica; text-align: center; margin-bottom: 20px; }</code>
在這種情況下,
深入研究瀏覽器的魔力
檢查瀏覽器的渲染時,我們發現了嵌套在其中的隱藏元素標籤。在 Firefox 中,它稱為 moz-button-content。此元素在瀏覽器的使用者代理樣式表中定義為:
<code class="css">*|*::-moz-button-content { display: block; }</code>
此隱藏元素在垂直居中文字方面起著至關重要的作用。它被設定為顯示為區塊元素,導致該元素佔據按鈕的整個可用高度。在這個元素中,文字自然地居中對齊。
硬編碼的垂直定位
然而,這並不是完整的故事。瀏覽器對
<code class="cpp">// Center child in the block-direction in the button nscoord extraSpace = buttonContentBox.BSize(wm) - contentsDesiredSize.BSize(wm); childPos.B(wm) = std::max(0, extraSpace / 2);</code>
此程式碼示範了瀏覽器有意在 moz-button-content 元素中的文字兩側添加額外的空格,有效地將其垂直居中。
放置一切都在一起
總而言之,
以上是`` 元素如何在沒有明確 `line-height` 的情況下實現垂直文字對齊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!