我要成為切版魔法師 #1 - 不管啦,就是要正方形!

更新於 發佈於 閱讀時間約 2 分鐘

網頁中經常會出現正方形的設計,在切版時如果直接設定固定寬高就是破版的節奏,但單用百分比設定長寬,RWD 時還是會變得不夠正,這邊提供兩個方法:

第一個方法:直接設定固定寬高(被打

只適用在網頁很小的元素上,不受 RWD 影響、也不會導致破版,那還是可以省事點,直接設定固定寬高。

第二個方法:使用 padding 特性來撐出等比例的正方形

當 padding 設定為百分比時,所依據的單位是以父容器寬度來計算(不是本身元素),假如今天父容器寬度為 100px,子元素 padding 設定 10%,就會得出 10px

按照以上特性,就可以知道子元素的 padding 和 width 百分比數值相同時,就會呈現正方形(因為它們的參考基準都是父容器的寬度),要注意 height 要設定 0,避免內容撐出多餘的高度,導致整體並不是正方形。

.box{
width: 30%;
padding-bottom: 30%;
height: 0;
}

圖片使用 img 標籤無法放入到容器中怎麼辦?

純文字和使用 background-image 語法加入圖片都可以透過上面的這個方式直接放置在容器中,但使用 img 標籤就會完全消失,主要是因為 height 已經被強制設定為 0,解決方法可以透過以下步驟:

  1. img 標籤使用 position: absolute ,放置圖片的容器設定 position: relative,透過定位方式將圖片放入到容器中
  2. 記得圖片也要設定寬度與高度 100%,否則不會以外層容器為基準縮放
  3. 搭配 object-fit: cover; 避免圖片變形
.box{
width: 33%;
padding-bottom: 33%;
height: 0;
background: #000;
position: relative;
}

img{
width: 100%;
height: 100%;
position: absolute;
object-fit: cover;
}


希望看完這篇的你,都能順利在網頁上做出自由縮放的正方形!

若有錯誤歡迎指正,感謝看完這篇的大家。

留言
avatar-img
留言分享你的想法!
avatar-img
傑米的沙龍
7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在學習 CSS 的過程中,Padding 與 Margin 是兩個經常出現的名詞,但對於初學者來說,可能會有些難以理解。因此,本篇文章將解釋這兩個非常重要的 CSS 屬性。當你掌握後,便能設計出更具層次或易讀的網頁。
Thumbnail
在學習 CSS 的過程中,Padding 與 Margin 是兩個經常出現的名詞,但對於初學者來說,可能會有些難以理解。因此,本篇文章將解釋這兩個非常重要的 CSS 屬性。當你掌握後,便能設計出更具層次或易讀的網頁。
Thumbnail
UIEdgeInsets 是一個結構體,用來表示矩形的邊距。它通常在視圖佈局中使用,用於修改視圖的框架(frame)。邊距值可以是正數或負數,這會對矩形的大小產生不同的影響。 UIEdgeInsets 結構體 UIEdgeInsets 結構體包含四個屬性: top:矩形頂部的邊距 left:
Thumbnail
UIEdgeInsets 是一個結構體,用來表示矩形的邊距。它通常在視圖佈局中使用,用於修改視圖的框架(frame)。邊距值可以是正數或負數,這會對矩形的大小產生不同的影響。 UIEdgeInsets 結構體 UIEdgeInsets 結構體包含四個屬性: top:矩形頂部的邊距 left:
Thumbnail
隨機不重疊的圓形 | p5.js 變化版,dist() 除了用來判斷兩個圓是否重疊,也可以拿來判斷滑鼠在哪個圓內。
Thumbnail
隨機不重疊的圓形 | p5.js 變化版,dist() 除了用來判斷兩個圓是否重疊,也可以拿來判斷滑鼠在哪個圓內。
Thumbnail
網友看了EXCEL小知識 | 如何讓EXCEL的文字轉90度躺下來這篇教學後提出了一個問題。 💬請問能讓中文是直的,數字是橫的嗎?直式標準信封的文字格式 中文是直的,數字是橫,應該是長這樣子 【📝圖文教學】 《文字
Thumbnail
網友看了EXCEL小知識 | 如何讓EXCEL的文字轉90度躺下來這篇教學後提出了一個問題。 💬請問能讓中文是直的,數字是橫的嗎?直式標準信封的文字格式 中文是直的,數字是橫,應該是長這樣子 【📝圖文教學】 《文字
Thumbnail
CSS 裡的「寬度,最大寬度,最小寬度」分別是什麼呢? ➊ width 用來設定元素的寬度,且 width 作用範圍僅在 content-box 區塊 ➋ max-width → 用來設定元素的最大寬度 ➌ min-width → 用來設定元素的最小寬度
Thumbnail
CSS 裡的「寬度,最大寬度,最小寬度」分別是什麼呢? ➊ width 用來設定元素的寬度,且 width 作用範圍僅在 content-box 區塊 ➋ max-width → 用來設定元素的最大寬度 ➌ min-width → 用來設定元素的最小寬度
Thumbnail
排版微調 VOL.1-詳細解說版 排版微調是我社群的一個系列內容,這篇則是提供給訂閱會員的詳細解說版,會說明為何調整的原因跟我的看法,以及原本設計可能有的問題,如果你是設計初學者那這份內容會很適合你,因為會很細節的去講解排版原因。
Thumbnail
排版微調 VOL.1-詳細解說版 排版微調是我社群的一個系列內容,這篇則是提供給訂閱會員的詳細解說版,會說明為何調整的原因跟我的看法,以及原本設計可能有的問題,如果你是設計初學者那這份內容會很適合你,因為會很細節的去講解排版原因。
Thumbnail
在上一篇文章-跟著KP用21天征服Responsive Layout-W2-Flexbox基礎-flex-item的伸縮 。我們提到了flex-item的width會由自身的內容長度決定。這其實是件很不可控的事情,所以我們在開發上會傾向於對flex-item設置width。 flex-item
Thumbnail
在上一篇文章-跟著KP用21天征服Responsive Layout-W2-Flexbox基礎-flex-item的伸縮 。我們提到了flex-item的width會由自身的內容長度決定。這其實是件很不可控的事情,所以我們在開發上會傾向於對flex-item設置width。 flex-item
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News