盒模型 – 商品卡元件製作

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

※ 解構元件:

思考:如何把設計稿分解成HTML的結構。

raw-image

圖片結構分析:

  • 卡片最大的陰影區是一個大盒子。
  • 卡片分成左右兩個部分,左邊是中等盒子,右邊是裝圖片的盒子 。
  • 左邊文字區塊(包含標題、價格、簡介、按鈕)。
  • 右邊圖片區塊(盤子上有玫瑰花瓣)。

結構圖:

raw-image

※ 商品卡實作:

建立專案資料夾:

mkdir product_card

建立CSS資料夾:

raw-image

建立images資料夾:

raw-image

建立index.htm檔案:

raw-image
raw-image


在CSS資料夾中建立style.css:

raw-image

建立初始化資料夾:

normalize.css網址:https://necolas.github.io/normalize.css/

raw-image

啟始設定:style.css

說明:是針對元素的選擇標籤做設定。

*{} /* Global */
* {
box-sizing: border-box;
}

說明:

  • 「*」指的是全域設定。
  • 這設定是為了讓盒模型,是以邊界為準的盒模型。

超連結設定:style.css

/* 超連結設定 */
a {
text-decoration: none;
color: #000
}

標題和段落元素:index.htm

<body>
<a href="123456"></a>
<p>123456</p>
<h1>123456</h1>
<h2>123456</h2>
</body>

建構html結構:index.htm

左邊文字區塊(包含標題、價格、簡介、按鈕)

<body>
 <div class="wrapper">
    <div class="product">
      <div class="info">
        <h1 class="name">Cup'o John</h1>
        <h2 class="price">$2.5</h2>
        <p class="des">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Eius impedit omnis nam sed repellendus
          ducimus?</p>
        <a href="#" class="btn">ORDER</a>
      </div>
      <div class="image"></div>
    </div>
  </div>
</body>

說明:wrapper用來幫整個網頁或某個區塊建立結構性外框,方便做整體排版與樣式控制。

初步成果:

raw-image

高度滿版設定 :style.css

html,body {
height: 100%;
}

背景容器設定 :style.css

.wrapper {
height: 100%;
background-color: #ccc;
background: linear-gradient(#EF9FBF, #F9DED7);
}

說明:

  • background-color: 設定背景為單一色彩。
  • background: linear-gradient();:設定漸層背景,可以從一種顏色逐漸過渡到另一種,甚至多種。

顯示成果:

raw-image

Product Card設定 :style.css

.product {
width: 800px;
height: 540px;
background-color: #fff;
box-shadow: 0 20px 80px 0 rgba(0, 0, 0, 0.5);
}

說明:

  • rgba() 是用來設定「顏色 + 透明度」的工具,適合用在背景色、邊框、文字等地方,讓介面看起來更有層次感。
  • r:紅色成分(0–255)
  • g:綠色成分(0–255)
  • b:藍色成分(0–255)
  • a:透明度(0–1)【0 是完全透明、1 是完全不透】
  • 網頁的座標系統:網頁的原點 (0,0)在左上角, 所以它的X軸是向右為正,Y軸是向下為正。
  • 座標系統原理對應陰影方向:
  1. X 軸向右為正 👉 控制陰影的左右偏移。
  2. Y 軸向下為正 👉 控制陰影的上下偏移。
  3. 所以當 box-shadow 的 Y 值是正數,光源從上照下就代表陰影會往下偏移。如果你想讓陰影往上,只要把 Y 值改成負值就行:box-shadow: 0px -6px 10px rgba(0, 0, 0, 0.3);

顯示成果:

raw-image

Product Card置中設定 :style.css

.product {
display: block;
margin-left: auto;
margin-right: auto;}

說明:水平置中要滿足下列三項條件才能成功

  1. display:block;
  2. 要有寬度值設定
  3. margin水平方向 auto

顯示成果:

raw-image

Product Card往下設定 :style.css

.product {
margin-top: 128px;}

顯示成果:

raw-image

Product Card內容和照片設定 :style.css

.product .info {
display: inline-block;
vertical-align: top;
width: 50%;
padding: 64px 56px;
background-color: #f9f9f9;
height: 100%;
}

.product .image {
display: inline-block;
vertical-align: top;
width: 50%;
height: 100%;
}

顯示成果:

raw-image

Product Card照片設定 :index.htm

<div class="info">
<h1 class="name">Cup'o John</h1>
<h2 class="price">$2.5</h2>
<p class="des">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Eius impedit omnis nam sed repellendus
ducimus?</p>
<a href="#" class="btn">ORDER</a>
</div
//解決4px間隔
><div class="image"></div>
</div>
<div class="image"><img src="./images/rose_coffee.png" alt="">
</div>

顯示成果:

raw-image

解決照片超出範圍 :style.css

.product .image {
/* 解決圖片超出的部分 */
overflow: hidden;
}

顯示成果:

raw-image

調整照片大小 :style.css

.product .image img{
height: 100%;
display: block;
}

顯示成果:

raw-image

處理文字部分 :style.css

/* 調整文字內容 */
.product .name{
font-size: 100px;
font-weight: 300;
color: #444;
white-space: nowrap;
margin-bottom: 16px;
text-shadow: 0 48px 10px rgba(0, 0, 0, 0.05);
}

顯示成果:

raw-image

處理價錢部分 :style.css

/* 調整價錢 */
.product .price{
font-size: 48px;
font-weight: 300;
color: #EA4C73;
margin-bottom: 16px;
}

顯示成果:

raw-image

處理說明部分 :style.css

.product .des{
font-size: 16px;
line-height: 24px;
color: #666;
margin-bottom: 16px;
}

顯示成果:

raw-image

處理定位元素與層級設定 :style.css

.product .name{
/* 定位元素與層級設定 */
position: relative;
z-index: 10;
}

顯示成果:

raw-image

處理按鈕設定 :style.css

.product .btn {
display: inline-block;
/* way1 */
padding: 12px 40px;
line-height: 24px;
/* wqy2 */
/* text-align: center */
/* width:width: 200px; */
text-decoration: none;
font-size: 24px;
letter-spacing: 8px;
color: white;
box-shadow: 0 8px 40px 0 rgba(0,0,0,0.5);
background-color: #EA4C73;
}

顯示成果:

raw-image

解決margin塌陷的問題 :style.css

raw-image
/* 背景容器設定 */
.wrapper {
overflow: hidden;
}

顯示成果:

raw-image

設定卡片圓角 :style.css

/* 卡片圓角設定 */
padding: 16px;
border-radius: 4px;

顯示成果:

raw-image

使用漸層產生器 :style.css

網址:https://cssgradient.io/

raw-image
.product .btn {
background: -webkit-linear-gradient
(45deg, rgba(250, 195, 209, 1) 0%,
rgba(250, 105, 146, 1) 38%, rgba(230, 120, 149, 1) 39%,
rgba(234, 76, 116, 1) 57%,
rgba(234, 76, 116, 1) 72%, rgba(250, 195, 209, 1) 100%);
}

顯示成果:

raw-image




留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
23會員
167內容數
全端網頁開發專業知識分享
2025/07/23
※ 卡片式設計: 好處:採用卡片式設計能有效簡化使用者介面,提升視覺層次感,讓使用者在瀏覽時更能聚焦於核心資訊,如文字與圖片。 排版範例: 瀑布流排版範例: ※ thumbnail: ※ 常見的商品卡片: ※ 切版起手式:
Thumbnail
2025/07/23
※ 卡片式設計: 好處:採用卡片式設計能有效簡化使用者介面,提升視覺層次感,讓使用者在瀏覽時更能聚焦於核心資訊,如文字與圖片。 排版範例: 瀑布流排版範例: ※ thumbnail: ※ 常見的商品卡片: ※ 切版起手式:
Thumbnail
2025/07/22
※ 網頁開發前必做的初始化: 目的: 統一不同瀏覽器的預設樣式。 建立一致的視覺基底。 減少意外排版問題。 ※ 初始化有兩種: ※ reset.css操作: 網址:https://meyerweb.com/eric/tools/css/reset/ 複製內容: 專案內容開啟新的檔案
Thumbnail
2025/07/22
※ 網頁開發前必做的初始化: 目的: 統一不同瀏覽器的預設樣式。 建立一致的視覺基底。 減少意外排版問題。 ※ 初始化有兩種: ※ reset.css操作: 網址:https://meyerweb.com/eric/tools/css/reset/ 複製內容: 專案內容開啟新的檔案
Thumbnail
2025/07/22
※ Display介紹: 說明:展示的屬性的意思,就是來決定元素在瀏覽器中如何呈現的方式。 ※ Display展示屬性: 有以下幾種設定: block:在預設的情況下,div和paragraph的標籤預設的display都是block。 inline-block:讓元素可以排在同一個行內的
Thumbnail
2025/07/22
※ Display介紹: 說明:展示的屬性的意思,就是來決定元素在瀏覽器中如何呈現的方式。 ※ Display展示屬性: 有以下幾種設定: block:在預設的情況下,div和paragraph的標籤預設的display都是block。 inline-block:讓元素可以排在同一個行內的
Thumbnail
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
報價書需要具備的內容有哪些呢?關於設計報價書製作的二三事在這裡!
Thumbnail
報價書需要具備的內容有哪些呢?關於設計報價書製作的二三事在這裡!
Thumbnail
不論是平面設計、介面設計,都能見排版這一詞。而排版的作用,即在明確的設計目標中,將所有元素做有組織的安排,精確地傳達訊息。
Thumbnail
不論是平面設計、介面設計,都能見排版這一詞。而排版的作用,即在明確的設計目標中,將所有元素做有組織的安排,精確地傳達訊息。
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News