---
# System prepended metadata

title: 8/13 線上 Slack 助教
tags: [網頁切版直播班 - 2021 夏季班]

---

---
tags: 網頁切版直播班 - 2021 夏季班
---

# 8/13 線上 Slack 助教


## 今日助教輪班時間

JasonLu：8/13 (五) 
回覆時間：下午 1:00 -下午 5:00

## 發問規範

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

## 注意

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

## 問題

1.Gillian：老師助教同學們好，這是我的 Codepen（https://codepen.io/gillianyy/pen/RwVvmgR），
我原本預期「HTML 第1行下了"justify-content-lg-center後", 會呈現出"exhibition /signin/ sign out"元素置中」，但卻出現「元素靠左排列 」，想問下問題出在哪裡以及怎麼修改呢？ 非常謝謝你們

> 助教回覆： 這是因為 .navbar-collapse 內設定的 flex-grow:1; 造成的。
> ![](https://i.imgur.com/DhNNarC.png)
> 建議加上.flex-grow-0 來避免區塊佔滿剩餘的空間。 加上 .flex-grow-0 之後畫面預期會變這樣:
 ![](https://i.imgur.com/0aT3oyj.png)

---

2.Tori :想問助教一些非程式碼問題，[github repo](https://github.com/aer456987/Art_Exhibition) 、[github pages](https://aer456987.github.io/Art_Exhibition/)

問題一：
1. 第六週首頁的熱門特展區塊，設計稿給的圖片是1x1
我的作法  ( 圖一、圖三 )：
使用 col-4 + overflow-hidden 裁切圖片寬度，圖片高度給 100%，圖片寬度 auto 自適應，col-4 的高度是用文字區塊的高度決定
優點：圖片不會變形，任何螢幕寬度下圖片區塊都能被填滿
缺點：在不同的螢幕寬度下，圖片無法完美呈現1 : 1 比例 ( 圖三 )

2. 照著設計稿圖片比例限制為 1x1 ( 圖二、圖四 )：
優點：圖片比例在任何螢幕寬度下都能維持 1x1 ，符合設計稿
缺點：在特定的螢幕寬度且不改變文字區塊內容的前提下，會因為圖片的高度已經固定，會出現以下兩種問題

螢幕寬度變大時，文字區塊上下 padding 會很大很空 ( 圖二 )

螢幕寬度變小時，文字被擠壓，區塊高度變高，導致圖片下方出現空白 ( 圖四 )，這問題要解決就需要改變文字區塊的呈現內容才行

**這個問題主要是想問問助教，在面對這種圖片比例鎖死的設計稿，會使用 方法1 ( 用文字區塊去決定高度，圖片寬度自適應 ) 還是 方法2 ( 圖片比例比照設計稿 1x1，文字區塊的高度由圖片決定 ) 做撰寫呢？**

助教回覆：
1.助教的寫法會選擇方法一設定高度的方式，如果圖片尺寸沒有辦法和設計稿一樣的話助教會給它設定 350px 的高度讓圖片符合設計稿的高度。要注意對圖片寫固定寬高會有變形的問題，需要對 img 加上 [objcet-fit:cover;](https://wcc723.github.io/development/2020/10/11/img-cover/) 

範例:
```
<div class="col-md-5 col-lg-6 col-xl-4 img-position-center h-3xl h-md-auto">
   <img src="./assets/images/exhibition/exhibition-3.jpg" alt="展覽圖片" >
</div>

img-position-center img {
 height: 345px;
 object-fit: cover;
}

```

---

3.lumei：助教好 這是我的repo和pages，想請教關於swiper的問題
問題一：為什麼拖拉至下一頁時第一張照片會無法完整顯示呢？ 跟Slides per view 效果看起來有所差異
問題二： 目前寫的程式中最後一張半會無法拖拉顯示，這是為什麼呢？ （swiper程式在index.html 第169行開始)
問題三：想請問在js檔案裡的sliderPerView:4 指的是一頁顯示4張嗎？spaceBetween:30 是margin-right:30px嗎？但像是sliderPerView雖然寫4，是不是也會因為螢幕大小導致最後一張顯示的部分有所差異呢？

 助教回覆： 
1.  主要是因為在 .swiper-slide 加上了 width:auto !important; 寬度變更為 350px，所以造成拖拉至下一頁時上一張照片會無法完全消失。
區塊滑動時在 .swiper-wrapper 會透過 js 動態設定樣式 transformt:ranslate3d(負的偏移植,0,0) 讓區塊往左平移，偏移值為 .swiper-slide 那一層 js 動態設定的 width、margin-left 相加，以同學的作業為例，偏移植為 -(274px+30px)=-304px
因此，.swiper-slide 350px 往左偏移 304px 會多出 46px 無法完全消失

1.與問題一樣是  width:auto !important; 造成的，建議將  width:auto !important; 移除，並且將 sliderPerView 改成 3 
2. sliderPerView:4 指的是在 .swipper-container 同時顯示 4 張幻燈片； spaceBetween:30 指的是 margin-right:30px 沒有錯； sliderPerView 寫 4 的話 會直接影響到 .swiper-slide 的寬度，不會影響到最後一張幻燈片的顯示


對於早上問題的回覆 還是有不太理解的地方想請問
1.問題2的建議是將width:auto !important; 移除，才不會造成最後一張無法拖拉顯示，但移除的話間隔也會一起消失。 因為想要兩者都有，有什麼方式可以達成嗎？
2.問題1提到.swiper-wrappejs 動態設定樣式，這個偏移值是透過什麼工具查看到的呢？

 助教回覆：
 
 1. 因為，.guessUlike .card-img-top 圖片有設定寬度，導致溢出 .swiper-slide 造成區塊重疊，所以建議把 .guessUlike .card-img-top 寬度值改成 100%。此外設計稿上 swipper-slide 一次是出現3張，因此建議把 sliderPerView 改成 3 
 2. 偏移值是透過瀏覽器的開發者工具查看的(下圖紅色區塊)
 ![](https://i.imgur.com/rV9cdRE.png)



---



4.Alicia Lo ：JasonLu 助教您好，這是我的[codepen](https://codepen.io/dkcyhyre/pen/eYWXRqd)，想詢問今天的每日任務，為什麼當外層的 .swiper-slide 沒有下 width:auto的語法時(CSS第23行)，裡面的img 不會撐開外層的寬高度呢? 再請助教協助解惑了，謝謝助教~!!

> 助教回覆： 主要有 2 個原因 
> 1. 因為在圖片 .card-img-top 有套用到 width:350px; height:350px;的設定，所以 寬度不會占滿 .card
> 2. 因為在 .swiper-slide 那一層有用 style 寫死寬度，所以 div 不會占滿整行
---


5.Karen Huang  ：助教你好，這是我的[repo](https://github.com/CodingSnorlax/dashboard/blob/master/app/index.html) 跟 [page](https://codingsnorlax.github.io/dashboard/)
我想請教有關資料結構的問題（如圖），然後我的問題是在 html 內的第34-48行。
就是當我在寫這邊的時候，我把左側的button跟右邊的 2 comments 包在一個div內了，但總感覺好像把這兩個東西塞在一起沒很明確區隔資料類型的感覺，因為一個是屬於button、一個是有關右邊對話欄的註解(?..我也不太確定這要叫什麼)。
會把兩個東西包在一起是因為，我在寫到右邊的時候，如果在 2 comments 又加上一個div，我右邊的對話欄就會擠下去，無法跟左邊button 水平對齊。
所以
第一個問題是：這邊2  comments既然要和左邊對齊，又要不把對話欄擠下的寫法該怎麼做比較好？
第二個問題是：因為這兩個資料是不同的，照理說應該分成兩個div 比較好嗎（？）

 助教回覆： 
 1.可以把 .dropdown 放到 .col-4 裡面和 list-group 放一起； 2 common 放到 .col-8 裡面和 tab-content 放一起。這個做法會要處理 2 commons 與  .dropdown 對齊的問題，需要在 2 commons 設定 line-height:38px 才能讓 2 個區塊高度相同；此外 span 還要加上 d-block、.text-end，讓文字靠右對齊
 .`<div class="row" style="
    align-items: ;
">
    
      <!-- 左側選單 -->
      <div class="col-4">
        <div class="dropdown">
          <button class="btn btn-white dropdown-toggle" type="button" id="dropdownMenu2" data-bs-toggle="dropdown" aria-expanded="false">
             All(4)
          </button>
          <ul class="dropdown-menu" aria-labelledby="dropdownMenu2" style="">
            <li><button class="dropdown-item" type="button">Chapter Assignment 1 (1)</button></li>
            <li><button class="dropdown-item" type="button">Chapter Assignment 2 (1)</button></li>
            <li><button class="dropdown-item" type="button">Final Assignment (2)</button></li>
          </ul>
          .list-group...
        </div>
       
          
        </div>
      
      <!-- 右側內容 -->
      <div class="col-8">
        <span class="fs-8 text-gray d-block text-end">2 comments</span> <--- 加上 line-height:38px;
        .tab-content
      </div>
    </div>`
    
 2.助教覺得這邊寫在同一個 div 和 分開來寫都可以。寫在一起處理對齊會比較方便；分開會比較符合資料的邏輯，2種方法各有優點。
 
 
---



6.Fred Chang：


1. 不太了解為什麼select和另一個元素在d-flex排版的情況下會占滿整個寬度，但多包一層div就會變元素本身撐開的寬度，附上codepen: 沒包div、有包div。
1. 這是我的Repo、Pages，不曉得為什麼Bootstrap的class="text-right"在index.html的第72.73行沒有作用，所以我在_util.scss先自行定義了，但想了解原因為何。
1. 關於08/10的每日任務，想請問隱藏卷軸最主要是靠css第7行的padding-bottom嗎? 如果是的話就為什麼padding可以覆蓋掉呢?
1. 關於08/11的每日任務，想請問為什麼css的第6行寫before或after都可以呢? 就自己目前的理解是一個在前一個在後，但不清楚為什麼可以顯示在同個地方。

助教回覆： 
1.未包 div:因為.form-select 有設定 width:100%，所以身為 flex 內元件的 select 就會占滿剩餘空間。有包 div: 內元件 div 的寬度分配受 flex-basis 影響，在沒有設定 flex-basis 時預設值為 auto，在 auto 時內元件的寬度會由元素內的文字、padding、margin 撐開。若希望 selcet 能占滿剩餘空間可以在 div 加上 flex-grow:1; 或 width:100%。

2. bootstrap 4 版本的 文字對齊是 text-left/right； bootstrap 5 改成 text-start/end 囉，所以要改成 .text-end 才對，這邊提供[文件](https://bootstrap5.hexschool.com/docs/5.0/utilities/text/#text-alignment)給同學

3.隱藏卷軸主要是在 nav-scroller 設定的 overflow-y:hiddn; 達成的

4. befor 或 after 都可以是因為 position:absoulte、top:0;、left:0 設定的偏移都是以父層設定 relative 的 .timeline-section 為基準點。

---


7. YELLA MOON ：
https://kolyfish.github.io/week6task/
https://github.com/kolyfish/week6task
 助教，您好，我昨天晚上關電腦前，樣式都還有吃到，但今天開電腦，發現樣式全部跑掉了>>
我把varibable的檔案整理了一遍，把有紅字的地方做整理。但是現在還是ㄧ樣無法正常吃到樣式。

> 助教回覆： 助教在 [gh-pages](https://github.com/kolyfish/week6task/tree/gh-pages/assets)裡沒有看到 style 資料夾，同學可以去 dist 資料夾看有沒有編譯出 all.css　( ./assets/style/all.css )

---



8. zyc ：助教您好，
今天做第6週作業的時候，覺得自己還不是很清楚 BS的 container 和 breakpoint 設定，所以想要整理一下自己不清楚的地方：
根據wk6 的設計稿，
 *pc container max-width計算：1280-85-85+30=1140
*mobile container max-width計算：375-15-15+15=360
因此，我的.container一共有4個寬度，想要有3個斷點：
1400 (pc,default)
992 (pad,適用於所有的ipad)
767 (mobile,適用於大部分手機，如 iphone6+ 的414px, iphone6 的375px)
360(mobile-sm,適用於小的手機，如 iphoneSE 的 320px 或其他)
所以，我應該要在_mixin.scss和_grid.scss內這樣設定嗎？（如圖）
問題：
1）這樣設定之後，套用.container 會不會直接依照我的 1140>992>767>360 設定？還是要在對應的 scss 檔內使用 @include 呼叫斷點後再重新寫過一遍code？如果不用 @include 的話瀏覽器是不是還是會依照 BS 的 container 來判斷 container 的 max-width？
2）如果依照上面的設定，BS 的 $grid-breakpoints 還適用嗎？例如在 @include mobile(767px) 的情況下使用 md: 768px（如調用 col-md-4、d-md-flex）會不會無效？ $grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px );
3）還是我想得太複雜了，乾脆都不用設定，直接套用 BS 的.container-fluid 和 .container 就好？

助教回覆： 
1.container 除了 992px 會覆蓋，其他的設定都是新增斷點，新增了 1140、767、360px 3 個斷點，建議不要在 container 這樣寫，這次作業的設計稿和有符合 boostrap，建議使用 bootstrap 的 container 就好。 
2.$grid-breakpoints 還適用哦! 因為 container 使用的變數是 $container-max-widths
3.助教還是建議同學使用 bootstrap 的 container

---


9.沈依蓉:
請問助教: 這串文字的x軸和y軸該如何算才對？我目前是用目測去抓的但好像不該是這樣 !!
repo: https://github.com/lily-oa/local_art
pages: https://lily-oa.github.io/local_art/ 

1.設計稿標記的寬度是 65px，而 .detail_date 的寬度大約是 39px，所以會寫成 top:53px; right:26px；(65px-39px)；另外建議把 .detail_date 移到 .detail_picBox 並且對 .detail_picBox 設定 position:relative;
 ![](https://i.imgur.com/B9Wu2Mf.png)


---


10.Sec:
助教好, 想请问 :
不是很了解设计稿的这部分适不适合使用格线系统呢 ?
关于格线系统之前有问过老师 例如: .col-md-6 的同一层是不能加上 padding 或 margin的, 因为加上去后就会换行, 但是为什么 border加上去 不会换行?
`<div class="col-md-6 p-2 border-2"></div>`

1.下圖紅色區塊有可以使用格線系統；綠色區塊的話也可以考慮使用格線系統，因為圖片、文字都有在隔線內
![](https://i.imgur.com/96y2x01.png)
2.border 加上去不會換行哦! 這是因為 box-sizing: border-box; 讓 50% 的寬度包含 border、padding、content(文字內容)。 另外 .border-2 只有設定 border-width 而已，需要加上 .border 當作基底樣式 ，
```
*, *::before, *::after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
```

---

11.大衛 :
這是我的repo、page，想請教一下：
1.在聯絡方式(圖1)的地方mail的圖沒有跟字同個高度，但我在scss裡面的130行有寫到vertical-align:middle; ，請問是哪裡需要調整呢？
2.在mobile狀態下(圖2)，mail會跳行，我發現應該是被擠壓到，但我是要自己去改推擠，還是我有哪裡要挑整的，麻煩助教了謝謝(綠色的部分是為了看推擠，忘記改回來XD)
3.footer中間的白線好像在mobile時會變短(圖3)

助教回覆:
1.vertical-align:middle; 需要設定在 img 標籤上。因此建議把 .footer .contactnav_item 設定的  vertical-align:middle; 移到 .footer .contactnav img 上
2.可以將 .footer .socialnav_item 設定的 margin-left 調小，讓 mail 不會換行
3.footer中間的白線在 mobile 會變短有 2 個原因
1. 因為 .footer_statement 寬度會自適應父層，所以當載具縮小時  border也會跟著變短
1. 因為在手機板的時候 container 寬度變成了 345px 所以 白線 的長度也會跟著縮小成 345px

---