---
# System prepended metadata

title: 7/14 線上 Slack 助教
tags: [大學生體驗營 - 2021 夏季班]

---

---
tags: 大學生體驗營 - 2021 夏季班
---

# 7/14 線上 Slack 助教

## 今日助教輪班時間

Luna： 7/14 (三)
回覆時間：下午 1:00 - 下午 5:00

## 發問規範

老師助教同學們好，**這是我的 Codepen**，我**原本預期**「JS 第 8 行會出現數字 8」，**但卻出現**「預期外的結果是 0」，想問下問題出在哪裡？

## 注意

1. 請各位先到 Slack 上將問題放在助教服務內的 thread，如圖
 ![](https://i.imgur.com/nHE3sOx.png)
2. 遵循以上的發問規範以便助教查看問題，不可直接貼上網址而沒有說明文字或者只提供截圖
3. 助教會依照 Slack 上的順序回覆問題
4. 以下問題區塊只能由助教自行增加
5. 助教會將回覆寫在下方問題區塊

## 問題

1. Cloudia：
助教你好：
這是我的Codepen連結：https://codepen.io/hkps87/pen/xxdgVOB
連結中是這次主線任務的banner和footer部分
我在.banner img有寫overflow: hidden;
但不知道為什麼banner的圖片還是超出了父元素的高度
導致footer不是在最下面
再麻煩助教解答了
感謝～～
> 助教回覆：
> 這邊其實不應該在 `.banner img` 設定 overflow，因為圖片通常都設定了 `max-width: 100%;`，而且又有 `max-height: 100%;`，所以整個元素的高度會隨著圖片大小改變。
> 但是 overflow 只會作用在有設定高度的元素上，並且較常用在處理文字溢出的狀況，可以參考連結內的使用範例。
> 這邊建議你寫法：
> 1. 把圖片設定成背景，有看到你寫了一行 `background-size: contain;`，但是他並不會對 img 的圖片產生作用，只會對使用 background-image 設定的背景產生作用
> 2. 根據設計稿設定高度，因為這邊的圖片並沒有裁切剛好，所以必須設定高度讓它符合設計
> 3. 建議在 `.banner` 內層可以放 `.container`，並使用相對位置與絕對位置來設定文字位置
> 4. 這邊對 background 還設定了位置在正中心、不要重複圖片，以及用覆蓋來顯示。
> 分別對應 `background-position: center center;`, `background-repeat: no-repeat;`, `background-size: cover;`。
> 使用 cover 而非 contain 是因為：contain 會把整張圖都顯示出來，所以可能會在顯示時沒有滿版的效果，cover 則是延展到鋪滿整個元素大小。
> 
> 除了圖片問題之外，我發現你有一些設定是可以不用設定的，因為預設值跟你要設定的值是相同的，所以可以不用再設定一次。
> 我這邊修了一份 [codepen](https://codepen.io/Iotalh/pen/PomWOgx)，你可以參考看看。
> 有些地方不要設定寬度，請盡量用 padding 去推擠出寬度。
> 這份設計稿有很多會重複使用到的設定，你可以嘗試把這些常用設定都抽出來使用，以及把大部分字體、行高、字體大小的設定都設定在 body。
> 還有不用設定 `.warp` 的 `max-width: 1920px;`，也不用設定 flex，因為預設就是由上往下排列。這層 div 也可以直接拿掉。
> 可以觀察網頁內容的寬度，可以發現大部分都在同一個範圍裡面，並可以以此寬度設定 `.container` 的寬度。
> 如果有看不懂用意的設定，歡迎再提問。
> [overflow 參考資料](https://www.w3schools.com/css/css_overflow.asp)

---

2. Cloudia：
助教你好：
我還有第二個問題
以下是 Codepen 連結：https://codepen.io/hkps87/pen/bGWgoPL
想問助教目前我的 ul 寬度不正常
但是為什麼在 .wrap 裏面
註解掉 display:flex; 以後就回到正常了
或是不用調 .wrap
(我昨天是發現在 .content 裡面不加上 margin: 0 auto; 寬度也正常，但我又希望他置中，所以不知道問題出在哪裡)
謝謝助教～～

> 助教回覆：
> `.wrap` 不可以設定 flex 哦，因為內層只有一個 content 而已。
> `.wrap` 也不用設定 `max-width: 1920px;`
> `.content` 不用設定 flex 排版，因為預設就是由上到下排列。
> 這邊是受到內層的 `max-width:1110px` 和 `margin:0 auto` 的影響所以才導致 `.content` 受限在這個範圍內
> 所以就算外層的 flex 沒有拿掉，內層把寬度拿掉也可以恢復正常尺寸
> 附上我修好的一份 [codepen](https://codepen.io/Iotalh/pen/ExmZoqp)
> 這邊建議你使用 img 標籤來顯示圖片，因為它並不是背景圖，也可以避免圖片越來越多時，要一直增加只使用一次的 class
> 也請不要用 % 來設定 padding


---

3. 羿宣：
老師助教同學們好，這是我的 [codepen](https://codepen.io/Ann828/pen/YzVNrKo)，我原本預期「css第五行可以改變照片顯示位置，想要做的跟範例照片一樣(手指部分畫面有裁切)」，但卻出現「畫面右側因為left -140px，而有留白」，想問下該怎麼改善？謝謝助教！

> 助教回覆：
> 因為 background-position 是移動整張圖片的位置，但並不會放大，所以右側就會產生留白。
> 建議你可以使用已經裁切好大小的圖片來替換會比較方便，不然就要先讓圖片置中 `background-position: center center;`，再利用 background-size 進行縮放，例如：`background-size: 110% 870px;`，但縮放可能會不夠準確，因此還是建議用裁切好的圖片去替換，附上裁切好的圖片
> ![](https://i.imgur.com/9wuU4ZP.jpg)

---

4. 小羊：
    老師助教好，我像請問有關圖片的問題，第一個是我發現當圖片設定高度時，圖片會有變形的情況，和設計稿的等比放大縮小不同，變得比較窄因為有設定高度為520px(codepen第一張圖)，另外想請問有甚麼方法可以讓圖片局部放大(想要突顯圖某個區塊)，譬如想要凸顯這張圖(下方連結)的香水部分而不是連同背景也顯示 https://hexschool.github.io/webLayoutTraining1st/perfume-week6/index2.jpg 。

    第二個問題是(codepen的第二張圖) 香水電商的index.8的圖有sold out的，上面的遮罩我有設定樣式，但好像沒有效果，設計稿的背景色比較深，想問一下是哪方面出了問題？這裡是codepen的連結 https://codepen.io/eqsmebaz-the-selector/pen/KKmaXQo 謝謝助教麻煩了~~ :pray:

> 助教回覆：
> 如果你要使用 background 來處理圖片，就必須用 background-image 來設定圖片，而不是用 img 標籤。
> 第一個問題：
> 如果要放大可以使用 [background-size](https://developer.mozilla.org/en-US/docs/Web/CSS/background-size) 去處理，可以填入寬高放大的倍率達到放大的效果。但是建議還是使用裁切好的圖片，才不會在放大過程中導致變形或是畫面放大到變得失真。
> 第二個問題：
> 因為你這邊上色的方式是設定背景顏色，但在 img 標籤設定背景的話，img 本身的圖會覆蓋在背景顏色之上，所以才會看不到效果，可以參考 codepen 裡面的寫法。
> 附上 [codepen](https://codepen.io/Iotalh/pen/VwbPXjP) 給你參考。

5. 小松
老師助教同學們好，這是我的 Codepen (https://codepen.io/120061203/pen/jOmyzNv)。
我原本預期「CSS 第 35 行會制作出覆蓋整張圖片的Sold Out的效果」，但卻出現「預期外的結果是 高度超過圖片的高度」，想問下問題出在哪裡？ 謝謝助教

> 助教回覆：
> 你這邊在 `a.soldOut::before` 使用了 `position: absolute;` 來設定，但是也要在 `a.soldOut::before` 外層，也就是 `a`，設定 `position: relative;`，這樣 absolute 才會知道要以哪一個元素為基準點哦


(這邊只能由助教編輯，問題請到 thread 上詢問)