搜尋
首頁web前端css教學您什麼時候使用內聯塊?

When do you use inline-block?

display: inline-block是一個經典的CSS 屬性值!它並非新特性,瀏覽器兼容性也無需擔心。許多開發者都會直覺地使用它。但讓我們更深入地了解一下。它究竟在哪些情況下有用?與其他類似選項相比,何時選擇它?

按鈕

我聽到的最常見答案是:我總是將其用於按鈕

最終,我認為這是有道理的,但這導致了我認為的輕微誤解。其理念是,希望看起來像按鈕的元素(可能使用<a></a><button></button>或其他元素創建)能夠像自然那樣內聯排列,但能夠擁有margin 和padding。這就是誤解的部分: display: inline;元素仍然可以擁有margin 和padding,並且其行為可能與您預期的一致。

棘手之處在於:

  • 內聯元素的塊方向margin 將被完全忽略
  • 內聯元素的padding 不會影響文本行的高度

因此,雖然按鈕本身的樣式設置得相當好,但父元素和周圍文本可能並非如此。這是一個演示:

當內聯按鈕開始換行時,情況會變得更糟:

所以,我認為在按鈕上使用inline-block非常合理。但是……

不要忘記inline-flexinline-grid

使用display: inline-flexinline-grid值,您將獲得與inline-block相同的良好行為,但元素(通常是按鈕)可以從更強大的內聯佈局系統中受益。

以帶有圖標的按鈕為例,如下所示:

 <a data-line="" href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b" html="">.button svg {
  vertical-align: middle;
}</a>

這永遠無法完全正確……

但使用inline-flex可以輕鬆解決這個問題:

 .button {
  display: inline-flex;
  align-items: center;
}

使用inline-flexinline-grid ,您可以在內聯方向佈局的塊中擁有flexbox 或grid 佈局系統的所有功能。

仍然可以換行的塊

內聯塊元素將尊重寬度。這是它們與純內聯元素之間的另一個區別。人們過去¹ 使用內聯塊構建列佈局系統,因為它基本上可以執行浮動可以執行的操作,而無需擔心清除浮動²,從而允許人們利用比浮動更優雅的換行方式。

內聯塊元素表現為可以換行的列(甚至可以縮小到1 列)的理念至今仍然存在,因為它是一種技巧,可以在HTML 電子郵件中使用,以允許多列佈局在小屏幕上折疊為單列而無需使用媒體查詢(某些電子郵件客戶端不支持媒體查詢)。

Dan 的示例。

內聯元素上的轉換

內聯元素不能進行轉換。因此,如果您需要轉換,則需要使用inline-block

不在自身中間斷開的列子元素

可以在段落文本上使用CSS 列,您不必關心任何給定的段落是否跨列斷開。但有時CSS 列用於塊,這將很尷尬。假設這些塊有它們自己的背景和填充。斷開在視覺上非常奇怪。

這是一個我不能說我100% 理解的奇怪技巧,但是如果您在這些框上使用display: inline-block; (並且可能使用width: 100%;以確保它們保持列寬),那麼它們就不會斷開,並且填充將被保留。

快速使列表水平排列的方法

這是對我的原始推文另一個非常流行的答案。列表元素垂直堆疊列表項,就像塊級元素一樣。它們實際上並非塊。它們是display: list-item; ,這實際上在這裡很重要,正如我們將看到的。流行的用例是“當我想水平排列列表時”

所以你有一個列表……


  • 三個

您想將其改為一行,您可以……

 li {
  display: inline-block;
}

搞定了。

我快速在VoiceOver 中試聽了一下,內聯塊列表仍然將元素宣佈為列表,但沒有朗讀項目符號,這是有道理的,因為它們不存在。這就是將列表項本身的顯示方式更改為非list-item的問題:它們失去了其,咳咳,列表項特性。

另一種方法是將父元素設為flexbox 容器……

 ul {
  display: flex;
}

……這實現了水平行(flexbox 默認值),但保留了項目符號,因為您沒有更改列表項本身的顯示方式。如果您想手動刪除它,則取決於您。

居中的列表

說到列表,Jeff Starr 剛剛寫了一篇關於居中文本中列表的博客,這也會變得很尷尬。尷尬之處在於列表項內的文本可以居中,但列表項本身仍然是全寬,從而創建了項目符號保持與左側對齊的情況。

Jeff 的解決方案是將整個列表設為內聯塊。這使列表的寬度僅與其內容的自然寬度一樣寬,允許項目符號離開左邊緣並隨居中內容一起移動。只要在前後有塊級元素,這都是一個很好的解決方案。

作為替代方案,如果目標是將列表的寬度縮小到內容的寬度,則也可以在不阻止列表成為塊級元素的情況下實現這一點:

 ul {
  width: max-content;
  margin: 0 auto;
  text-align: left;
}
  1. 內聯塊還有另一個棘手的問題。與內聯元素一樣,它們之間的任何空格實際上都會呈現為空格。因此,如果它們之間有任何空格,則兩個50% 寬的inline-block元素將無法在一行中顯示。好消息是有技巧可以解決這個問題。
  2. 我說“過去”是因為,如果您今天要製作列系統,您幾乎肯定會使用flexbox 或grid——或者根本不構建“系統”,因為僅僅使用這些語法在很大程度上否定了對系統的需求。

以上是您什麼時候使用內聯塊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
我們如何標記Google字體並創建Goofonts.com我們如何標記Google字體並創建Goofonts.comApr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

永恆的Web開發文章永恆的Web開發文章Apr 12, 2025 am 11:44 AM

Pavithra Kodmad向人們詢問了他們認為是關於網絡開發的一些最永恆的文章的建議

與部分元素的交易與部分元素的交易Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

使用JavaScript API練習GraphQl查詢使用JavaScript API練習GraphQl查詢Apr 12, 2025 am 11:33 AM

學習如何構建GraphQL API可能具有挑戰性。但是您可以學習如何在10分鐘內使用GraphQL API!碰巧的是,我得到了完美的

組件級CMS組件級CMSApr 12, 2025 am 11:09 AM

當一個組件生活在數據查詢居住在附近的數據查詢的環境中時,視覺組件和

將類型設置在圓上...帶偏移路徑將類型設置在圓上...帶偏移路徑Apr 12, 2025 am 11:00 AM

這裡是Yuanchuan的一些合法CSS騙局。有此CSS屬性偏移路徑。曾幾何時,它被稱為Motion-Path,然後被更名。我

'恢復”在CSS中有什麼作用?'恢復”在CSS中有什麼作用?Apr 12, 2025 am 10:59 AM

Miriam Suzanne在Mozilla開發人員的視頻中解釋了該主題。

現代戀人現代戀人Apr 12, 2025 am 10:58 AM

我喜歡這樣的東西。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具