• <ul id="k6mek"><pre id="k6mek"></pre></ul>
      <ul id="k6mek"></ul>
      <ul id="k6mek"></ul>
    • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
    • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
      <th id="k6mek"></th>
    • <samp id="k6mek"></samp>
    • 一行 CSS 代碼實現(xiàn)響應(yīng)式布局 – 使用 Grid 實現(xiàn)的響應(yīng)式布局

      在這篇文章中,我將教你如何使用 CSS Grid(網(wǎng)格) 布局來創(chuàng)建一個超酷的圖像網(wǎng)格,它會根據(jù)屏幕的寬度改變列的數(shù)量,以實現(xiàn)響應(yīng)式布局。

      而這篇文章中最漂亮的部分是:添加一行 CSS 代碼即可實現(xiàn)響應(yīng)式布局。

      這意味著我們不必通過丑陋的類名(即?col-sm-4,col-md-8)來混淆 HTML ,或者為每一個屏幕尺寸創(chuàng)建媒體查詢。

      現(xiàn)在就讓讓我們開始吧!

      設(shè)置

      對于本文,我們將繼續(xù)使用?5分鐘學(xué)會 CSS Grid 布局?文章中使用的網(wǎng)格。然后我們將在文章的最后添加圖片。以下是我們的初始網(wǎng)格的外觀:

      這是HTML:

      HTML 代碼:

      1. class="container">

      2. ?

        1

      3. ?

        2

      4. ?

        3

      5. ?

        4

      6. ?

        5

      7. ?

        6

      還有相應(yīng)的 CSS :

      CSS 代碼:

      1. .container {

      2. ? ?display: grid;

      3. ? ?grid-template-columns: 100px 100px 100px;

      4. ? ?grid-template-rows: 50px 50px;

      5. }

      注意:這個例子也有一些基本的樣式,比如容器寬度,網(wǎng)格間隔,背景顏色什么的,我不會在這里介紹,因為它與 CSS Grid 沒有任何關(guān)系。

      如果這段代碼讓你感到困惑,我建議你閱讀?5分鐘學(xué)會 CSS Grid 布局?這篇文章,在那里我解釋了 Grid 布局模塊的基礎(chǔ)知識。

      讓我們開始將 列 實現(xiàn)響應(yīng)式布局。

      使用等分(fr)單位實現(xiàn)基本的響應(yīng)式

      CSS Grid 帶來了一個全新的值,稱為等分單位,即?fr?。它允許你將容器可用空間分成你想要的多個等分空間。

      讓我們將每個列更改為一個等分單位寬度。

      CSS 代碼:

      1. .container {

      2. ? ?display: grid;

      3. ? ?grid-template-columns: 1fr 1fr 1fr;

      4. ? ?grid-template-rows: 50px 50px;

      5. }

      這里發(fā)生的事情是,將整個網(wǎng)格的寬度分成三等分,每一列都占據(jù)一個?fr?單位。結(jié)果是:

      如果我們將?grid-template-columns?的值更改為?1fr 2fr 1fr,那么第 2 列現(xiàn)在將是另外 2 列的 2 倍??倢挾痊F(xiàn)在是 4 等分,第 2 列占據(jù)了 2 等分,而其他 2 列則各占 1 等分。看起來類似這樣:

      換句話說,等分單位值使你可以非常容易地改變列的寬度。

      更加高級的響應(yīng)式

      但是,上面的例子并沒有給我們想要的響應(yīng)式,因為這個網(wǎng)格總是包含 3 列。我們希望我們的網(wǎng)格根據(jù)容器的寬度來改變列的數(shù)量。要做到這一點,你必須學(xué)習(xí)三個新的概念。

      repeat()

      我們將從?repeat()?函數(shù)開始。 這是指定列和行更強大的方法。 讓我們把原來的網(wǎng)格改成使用?repeat()?:

      CSS 代碼:

      1. .container {

      2. ? ?display: grid;

      3. ? ?grid-template-columns: repeat(3, 100px);

      4. ? ?grid-template-rows: repeat(2, 50px);

      5. }

      換句話說,repeat(3, 100px)?與?100px 100px 100px?相同。 第一個參數(shù)指定了你想要的列數(shù)或行數(shù),第二個參數(shù)指定了它們的寬度,所以上面的代碼將為我們創(chuàng)建和第一個一樣的布局。


      auto-fit (自適應(yīng))

      然后是自適應(yīng)。讓我們跳過固定數(shù)量的列,而是用?auto-fit?取代 3 。

      CSS 代碼:

      1. .container {

      2. ? ?display: grid;

      3. ? ?grid-gap: 5px;

      4. ? ?grid-template-columns: repeat(auto-fit, 100px);

      5. ? ?grid-template-rows: repeat(2, 100px);

      6. }

      它只是試圖盡可能多地將?100px?寬的列排列在容器中。

      但是,如果我們將所有列硬編碼為?100px?,我們永遠(yuǎn)得不到我們想要的靈活性,因為它們很少會加起來正好等于容器的寬度。正如你在上面的 gif 圖中所看到的,網(wǎng)格通常會在右側(cè)留下空白區(qū)域。

      minmax()

      為了解決這個問題,我們需要的最后一方法是?minmax()。我們只需用?minmax(100px, 1fr)?替換?100px?即可。這是最終的CSS。

      CSS 代碼:

      1. .container {

      2. ? ?display: grid;

      3. ? ?grid-gap: 5px;

      4. ? ?grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));

      5. ? ?grid-template-rows: repeat(2, 100px);

      6. }

      注意,所有的響應(yīng)都發(fā)生在一行 CSS 中。

      這會達(dá)到以下效果:


      正如你們所見,這樣很完美。minmax()?函數(shù)定義大于或等于?min?且小于或等于?max?的大小范圍。

      所以現(xiàn)在列的寬度至少?100px?。但是,如果有更多的可用空間,網(wǎng)格將簡單地分配給每個列,因為列的值變成了一個等分單位?1fr?,而不是?100px?。

      添加圖片

      現(xiàn)在最后一步是添加圖片。 這與 CSS Grid 沒有任何關(guān)系,但是我們還是要來看看代碼。

      我們將在每個網(wǎng)格項內(nèi)添加一個?img?標(biāo)簽。

      HTML 代碼:

      1. src="img/forest.jpg"/>

      為了使圖像適合該網(wǎng)格項,我們將它設(shè)置為與網(wǎng)格項一樣寬和高,然后使用?object-fit: cover;。這將使圖片覆蓋整個容器,如果需要的話,瀏覽器會裁剪該圖片。

      CSS 代碼:

      1. .container > div > img {

      2. ? ?width: 100%;

      3. ? ?height: 100%;

      4. ? ?object-fit: cover;

      5. }






      返回觀點列表
      本文標(biāo)簽:

      相關(guān)專題

      • 品牌官網(wǎng)設(shè)計
        品牌官網(wǎng)設(shè)計

        杭州派迪科技為高端客戶提供品牌官網(wǎng)咨詢策劃,品牌官網(wǎng)設(shè)計,品牌官網(wǎng)建設(shè)開發(fā)服務(wù),以國際化視野和標(biāo)準(zhǔn)為基礎(chǔ),為各行業(yè)領(lǐng)軍品牌提供高端企業(yè)網(wǎng)站定制、策劃、設(shè)計、互動與制作

        查看詳情
      • 大策略營銷門戶網(wǎng)站
        大策略營銷門戶網(wǎng)站

        杭州派迪科技有自己的營銷型網(wǎng)站CMS系統(tǒng),適合白帽SEO網(wǎng)站。特別對大策略的營銷型門戶網(wǎng)站制作有一定的經(jīng)驗,曾經(jīng)為上海天擎外貿(mào)行業(yè)網(wǎng)站、浙江兆龍營銷型門戶、先臨三維門戶營銷網(wǎng)站提供全程的技術(shù)支持及SEO優(yōu)化指導(dǎo)

        查看詳情
      • 集團/上市公司網(wǎng)站
        集團/上市公司網(wǎng)站

        杭州派迪科技為杭州本地集團公司提供網(wǎng)頁設(shè)計、制作、開發(fā)服務(wù),為集團公司網(wǎng)站建設(shè)提供了響應(yīng)式、營銷型、品牌型、門戶型網(wǎng)站建設(shè)需求,歡迎廣大集團公司客戶咨詢

        查看詳情
      • 外貿(mào)網(wǎng)站建設(shè)
        外貿(mào)網(wǎng)站建設(shè)

        杭州派迪科技為高端客戶提供外貿(mào)網(wǎng)站咨詢策劃,外貿(mào)官網(wǎng)設(shè)計,外貿(mào)官網(wǎng)建設(shè)開發(fā)服務(wù),以谷歌搜索引起算法為基礎(chǔ),為各行業(yè)外貿(mào)公司提供高端企業(yè)外貿(mào)網(wǎng)站定制、策劃、設(shè)計、互動與制作

        查看詳情
      • 企業(yè)網(wǎng)站建設(shè)
        企業(yè)網(wǎng)站建設(shè)

        高端專業(yè)、令人印象深刻的用戶界面、易于訪問——企業(yè)網(wǎng)站必須反映一切,因為派迪科技在這里提供幫助,憑借精湛的技術(shù)、豐富的經(jīng)驗、與客戶的持續(xù)溝通以及對每一個細(xì)節(jié)的關(guān)注,我們確保在快速的周期時間內(nèi)提供優(yōu)質(zhì)的服務(wù)。

        查看詳情
      • 半定制網(wǎng)站
        半定制網(wǎng)站

        杭州派迪科技模板網(wǎng)站建設(shè)專題_各行業(yè)方案專題欄目提供各行業(yè)產(chǎn)品適合的網(wǎng)站建設(shè)方案,幫助企業(yè)了解派迪科技建站效果等信息,您可以通過本站了解各行業(yè)網(wǎng)站建設(shè)方案,如需要獲取本行業(yè)定制網(wǎng)站建設(shè)方案,可以聯(lián)系在線客服或撥打電話咨詢

        查看詳情

      體驗從溝通開始,讓我們聆聽您的需求!

      開始您的數(shù)字化品牌體驗! 0571-85815193 期待您的來電!

      [ 網(wǎng)站建設(shè)×品牌官網(wǎng)設(shè)計×大策略營銷門戶×微信小程序開發(fā)×微信公眾號開發(fā)]

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      免費獲取項目策劃

      項目開發(fā)部產(chǎn)品經(jīng)理

      項目開發(fā)部產(chǎn)品經(jīng)理

      免費獲取項目策劃

      我們正使用 cookies 來改善您的訪問體驗

      派迪科技非常重視您的個人隱私,當(dāng)您訪問我們的網(wǎng)站www.bmwdream.cn時,請同意使用所有cookies 。

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookies請訪問我們的 《隱私政策》

      Cookie 偏好

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookie請訪問我們的 《隱私政策》

      管理cookie偏好

      基本 cookies

      始終允許

      這些 cookies 是網(wǎng)站運行所必需的,不能在我們的系統(tǒng)中關(guān)閉。它們通常僅針對您所做的相當(dāng)于服務(wù)請求的操作而設(shè)置,例如設(shè)置您的隱私首選項、登錄或填寫表格。您可以將瀏覽器設(shè)置為阻止或提醒您有關(guān)這些 cookies 的信息,但網(wǎng)站的某些部分將無法運行。這些 cookies 不存儲任何個人身份信息。

      性能 cookies

      始終允許
      這些 cookies 使我們能夠計算訪問量和流量來源,以便我們可以衡量和改進(jìn)我們網(wǎng)站的性能。它們幫助我們了解哪些頁面受歡迎和不受歡迎,并了解訪問者如何在網(wǎng)站上移動。這些 cookies 收集的所有信息都是匯總的,而且是匿名的。如果您不允許這些 cookies,我們將不知道您何時訪問了我們的網(wǎng)站,也無法監(jiān)控其性能。

      功能性 cookies

      這些 cookies 收集信息用于分析和個性化您的定向廣告體驗。您可以使用此撥動開關(guān)來行使選擇不獲取個人信息的權(quán)利。如果您選擇關(guān)閉,我們將無法向您提供個性化廣告,也不會將您的個人信息交給任何第三方。

      定位 Cookies

      這些 cookies 可能由我們的廣告合作伙伴通過我們的網(wǎng)站設(shè)置。這些公司可能會使用它們來建立您的興趣檔案,并在其他網(wǎng)站上向您展示相關(guān)廣告。它們不直接存儲個人信息,而是基于唯一標(biāo)識您的瀏覽器和互聯(lián)網(wǎng)設(shè)備。如果您不允許使用這些 cookie,您將體驗到較少針對性的廣告。
      • <ul id="k6mek"><pre id="k6mek"></pre></ul>
        <ul id="k6mek"></ul>
        <ul id="k6mek"></ul>
      • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
      • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
        <th id="k6mek"></th>
      • <samp id="k6mek"></samp>