」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > CSS 網格:維度關鍵字

CSS 網格:維度關鍵字

發佈於2024-08-02
瀏覽:381

註:我剛剛翻譯了下面的文字並將其發佈在這裡。參考文獻在本文末。

你好。今天我想談談一些特殊的 CSS 網格關鍵字,它們對於定義網格軌道的大小很有用。使用這些關鍵字的能力將使您能夠精確地確定所需的網格軌道尺寸。那麼,我們走吧。

這篇文章是我介紹 CSS Grid 系列的一部分。如果您想查看我以前的帖子,可以在這裡找到完整的目錄。

介紹尺寸關鍵字

當談到CSS網格時,只有三個關鍵字可以用來決定軌道的大小。這些關鍵字是 auto、min-content 和 max-content。所有這些都可以在 CSS 屬性 grid-template-colums 和 grid-template-rows 中使用。

最小內容和最大內容

如果您想要讓網格軌道的大小取決於其內容,則必須使用兩個關鍵字之一:min-content 或 max-content。 最小內容網格軌道將嘗試保持最小大小而不溢出其內容。 最大內容網格軌道 但是,假設可擴展的可用空間是無限的,並假定內容的理想寬度。

讓我向您展示一些範例,顯示所提及的關鍵字之間的差異。請記住,每個映像包含兩​​個容器:左側帶有 min-content 網格列 的容器,右側帶有 max-content 網格列 的容器。

CSS Grid: keywords de dimensionamento

正如您在此處看到的,最小內容列和最大內容列之間的大小沒有差異。原因是圖像有其“預設固定大小”,除非您明確告訴它更改,否則該圖像不會更改。另一方面,文字的內容可以根據情況「壓縮」其大小。這種壓縮是使用文字換行(文字換行)來完成的,即單字不換行。知道了這一點,讓我們用一些文字替換上面範例中的圖像。

CSS Grid: keywords de dimensionamento

這次,列寬不同。列 min-content 強制其文字內容“換行”,而列 max-content 擴展太多,以至於不需要文字換行。請注意,列 min-content 與最長單字的寬度相同,且欄位 max-content 現在比容器本身更寬。

當一列包含多個內容類型時會發生什麼?以下是包含圖像和文字的列的範例。

CSS Grid: keywords de dimensionamento

在這兩種情況下,最寬的元素決定列的大小。對於 min-content,該元素是圖像或最長的單字。對於列 max-width,這是圖像或整個文字。請注意兩種內容類型如何在列中垂直分隔。我想在我以後的一篇文章中討論這種行為。

關鍵字自動

關鍵字auto與我在前兩篇文章中描述的單元fr有關。它同樣確定網格軌道必須“填充”給定軸上的所有可用空間。

.container {
    /** ... **/
    grid-template-columns: auto auto;
}

CSS Grid: keywords de dimensionamento

但是,auto 關鍵字和 fr 單位之間有兩個主要差異。首先,關鍵字 auto 不是一個單位,因此您不能像使用 fr 那樣將其與數值(例如 2auto)一起使用。其次,當兩者一起使用時,關鍵字 auto 總是會「輸掉」單位 fr。請參閱下面的範例。

.container {
    /** ... **/
    grid-template-columns: auto 1fr;
}

CSS Grid: keywords de dimensionamento

您可以預期 auto 列在水平維度上「填滿」與 fr 列等量的空間。然而,列 fr 的存在會導致該列自動「縮小」其大小以適應目前內容的大小。

請注意,對於文字內容,自動網格軌道的行為與最小內容/最大內容網格軌道不同。當 auto 與 fr 混合時,auto-track 永遠不會強製文字內容“換行”,除非自動追蹤“填充”所有可用空間。

.container {
    /** ... **/
    width: 200px;
    grid-template-columns: auto 1fr;
}

CSS Grid: keywords de dimensionamento

感謝您閱讀這篇短文。如果您想閱讀更多這樣的內容,請關注我的 dev.to 或 Twitter 帳戶。另外,請隨時給我任何回饋。我很想閱讀您的評論。我們下一篇文章再見!

PS。如果您想支持我的工作,請給我一杯咖啡,我將不勝感激。謝謝。 ❤️

CSS Grid: keywords de dimensionamento

來源

文章作者:Mateusz Kirmuć.

版本聲明 本文轉載於:https://dev.to/dougsource/css-grid-keywords-de-dimensionamento-31o3?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    如何在mySQL中使用mySql 檢索最大計數,您可能會遇到一個問題,您可能會在嘗試使用以下命令:理解錯誤正確找到由名稱列分組的值的最大計數,請使用以下修改後的查詢: 計數(*)為c 來自EMP1 按名稱組 c desc訂購 限制1 查詢說明 select語句提取名稱列和每個名稱...
    程式設計 發佈於2025-05-17
  • C++20 Consteval函數中模板參數能否依賴於函數參數?
    C++20 Consteval函數中模板參數能否依賴於函數參數?
    [ consteval函數和模板參數依賴於函數參數在C 17中,模板參數不能依賴一個函數參數,因為編譯器仍然需要對非contexexpr futcoriations contim at contexpr function進行評估。 compile time。 C 20引入恆定函數,必須在編譯時進...
    程式設計 發佈於2025-05-17
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-05-17
  • 為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    程式設計 發佈於2025-05-17
  • Spark DataFrame添加常量列的妙招
    Spark DataFrame添加常量列的妙招
    在Spark Dataframe ,將常數列添加到Spark DataFrame,該列具有適用於所有行的任意值的Spark DataFrame,可以通過多種方式實現。使用文字值(SPARK 1.3)在嘗試提供直接值時,用於此問題時,旨在為此目的的使用column方法可能會導致錯誤。 df.with...
    程式設計 發佈於2025-05-17
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    程式設計 發佈於2025-05-17
  • 我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    將我的加密庫從mcrypt升級到openssl 問題:是否可以將我的加密庫從McRypt升級到OpenSSL?如果是這樣,如何? 答案:是的,可以將您的Encryption庫從McRypt升級到OpenSSL。 可以使用openssl。 附加說明: [openssl_decrypt()函數要求...
    程式設計 發佈於2025-05-17
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月份)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP...
    程式設計 發佈於2025-05-17
  • 為什麼不使用CSS`content'屬性顯示圖像?
    為什麼不使用CSS`content'屬性顯示圖像?
    在Firefox extemers屬性為某些圖像很大,&& && && &&華倍華倍[華氏華倍華氏度]很少見,卻是某些瀏覽屬性很少,尤其是特定於Firefox的某些瀏覽器未能在使用內容屬性引用時未能顯示圖像的情況。這可以在提供的CSS類中看到:。 googlepic { 內容:url(&...
    程式設計 發佈於2025-05-17
  • 查找當前執行JavaScript的腳本元素方法
    查找當前執行JavaScript的腳本元素方法
    如何引用當前執行腳本的腳本元素在某些方案中理解問題在某些方案中,開發人員可能需要將其他腳本動態加載其他腳本。但是,如果Head Element尚未完全渲染,則使用document.getElementsbytagname('head')[0] .appendChild(v)的常規方...
    程式設計 發佈於2025-05-17
  • Android如何向PHP服務器發送POST數據?
    Android如何向PHP服務器發送POST數據?
    在android apache httpclient(已棄用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    程式設計 發佈於2025-05-17
  • Python不會對超範圍子串切片報錯的原因
    Python不會對超範圍子串切片報錯的原因
    在python中用索引切片範圍:二重性和空序列索引單個元素不同,該元素會引起錯誤,切片在序列的邊界之外沒有。 這種行為源於索引和切片之間的基本差異。索引一個序列,例如“示例” [3],返回一個項目。但是,切片序列(例如“示例” [3:4])返回項目的子序列。 索引不存在的元素時,例如“示例” [9...
    程式設計 發佈於2025-05-17
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。The recommended approach to correct the data is t...
    程式設計 發佈於2025-05-17
  • 如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
    如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
    Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用時間數據時...
    程式設計 發佈於2025-05-17
  • HTML格式標籤
    HTML格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2025-05-17

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3