# 議題一、scss編譯討論內容如下(著重在開發文件的流程/檔案開立方式): --- # 【一、介紹】 - 前處理 ( 變數$、物件map-get()、陣列nth($name,index)、函式function、繼承@extend、混合@mixin 、巢狀屬性... ) => 邏輯式的開發 - 後處理(AutoPrefixer) --- ## 1.好處 - 結構化、模組化、提高重用性 => 加快開發速度 - 壓縮CSS體積 - 語法相容性 --- ## 2.基礎語法 - [Sass Basics](https://sass-lang.com/guide) --- ## 3.進階語法 - [@function](https://sass-lang.com/documentation/at-rules/function/) - [色彩函數](https://sass-lang.com/documentation/modules/color/#lighten) - ... ```css lighten(#999,10%)// #999增加百分之10亮度 draken(#999,10%)// #999,減少百分之10亮度 ``` --- # 【二、案例】 --- ## 1.聚洋 --- 檔案放置在 專案名稱/web/css/scss 裡面 ![image](https://hackmd.io/_uploads/rkc_qrEIp.png) --- ![image](https://hackmd.io/_uploads/HkotqBNI6.png) --- ![image](https://hackmd.io/_uploads/HyvnTB48a.png) --- 變數命名:$XXX ![image](https://hackmd.io/_uploads/r1zymU4La.png) --- 巢狀結構 ![image](https://hackmd.io/_uploads/Bk4rQLV8a.png) --- 不要空白的時候使用 "&" ![image](https://hackmd.io/_uploads/SygcmI48a.png) --- RWD寫法 ![image](https://hackmd.io/_uploads/HkdWEL4UT.png) --- 編譯出來的檔案 ![image](https://hackmd.io/_uploads/B1PUE8ELp.png) --- 瀏覽器除錯 ![image](https://hackmd.io/_uploads/ryp0EL48p.png) ![image](https://hackmd.io/_uploads/rJzlSLN8T.png) --- ## 2.菁英 ```htmlembedded= /*---------------------- 基礎設定 ----------------------*/ /* 回頂端 */ /*按鈕*/ /*RWD編輯器表格(X捲軸)*/ /*IE瀏覽器*/ /* 共用樣式設定 */ /* 漸層 */ /* header */ /* 會員登入後 */ /* header__下拉選單 */ /* --共用設定 */ /* --共用:卷軸 */ /* --共用:輸入框設定 */ /* --共用:下拉選單 */ /* 輸入框(預設樣式) */ /*input radio/checkbox樣式*/ /* --共用:輪播箭頭設定 */ /* --共用:輪播點點設定 */ /* --共用:播放按鈕 */ /* --共用:tag */ /* -共用:按鈕 */ /* 第三方按鈕 */ /* -共用:線段 */ /* -共用:頁碼 */ /* -共用:流程 */ /* 自定義頁面 */ /* 關於協會 */ /* 共用-單元二階選單(常見問題、部落格單元使用) */ /*---------------------- 頁面開始 ----------------------*/ /*全頁佈局*/ /* 首頁 */ /* 首頁banner */ /* 標題 */ /* 首頁內容 */ /* 推薦課程 */ /* 課程卡片 */ /* 課程卡片-tag */ /* 課程卡片-進度條 */ /* 課程卡片-老師 */ /* 課程金額 */ /* 課程下方按鈕 */ /* 線上熱門課程 */ /* 企業內訊 */ /* 文章 */ /* 文章--item */ /* 本月精選 */ /* footer */ /* 課程總覽開始 */ /* 課程總覽__文字列表 */ /* 課程總覽__BN */ /* 課程總覽__六大學院 */ /* 課程總覽__六大學院__代表色 */ /* 課程總覽__六大學院__小類 */ /* 課程總覽__搜尋 */ /* 課程總覽__搜尋__預設 */ /* 課程總覽__工具列 */ /* 課程底層 */ /* 課程底層__上面 */ /* 麵包屑 */ /* 收藏 */ /* 分享 */ /* 課程底層__特色 */ /* 課程底層__介紹 */ /* 課程底層__介紹__錨點 */ /* 課程底層__介紹開始 */ /* 課程底層__右側常駐 */ /* 課程底層__右側常駐__ad */ /* 課程底層__介紹__編輯器 */ /* 課程底層__介紹__編輯器__標題按鈕樣式 */ /* 課程底層__介紹__老師 */ /* 課程底層__介紹__檔案下載 */ /* 課程底層__介紹__目錄一覽 */ /* 課程目錄清單 */ /* 課程底層__textarea */ /* 課程底層__留言板 */ /* 課程底層__其他課 */ /* 上課教室 */ /* 上課教室--試看 */ /* 上課教室--收合清單 */ /* 上課教室__播放清單 */ /* 上課教室--已買 */ /* 搜尋 */ /* -搜尋共用:上方 */ /* 會員 */ /* -會員共用:輸入框 */ /* 會員--登入 */ /* 會員等級 */ /* 會員資料填寫 */ /* 但書文字 */ /* 電子發票/收據 */ /* 註冊/付款完成 */ /* 註冊/付款完成動畫 */ /* 會員中心 */ /* 彈窗 */ /* 彈窗--會員 */ /* 彈窗--客服 */ /* 彈窗--輸入框 */ /* -會員中心共用:架構 */ /* -會員中心共用:右邊視窗區塊 */ /* -會員中心共用:右邊視窗區塊--成為菁英會員享有更多優惠 */ /* -會員中心共用:右邊視窗區塊--課程觀看紀錄 */ /* -會員中心共用:右邊視窗區塊--注意事項提醒 */ /* 會員中心__側選單 */ /* 會員中心 */ /* 基本資料 */ /* 系統公告 */ /* 我的課程 */ /* 我的最愛 */ /* 訂單管理 */ /* 訂單__費用明細 */ /* 會籍管理 */ /* 折扣券 */ /* 子帳號管理 */ /* 黃金存摺 */ /* 講師介紹 */ /* 講師介紹__底層 */ /* 聯絡我們 */ /* 常見問題 */ /* 常見問題__搜尋 */ /* 常見問題__內文 */ /* 常見問題__底層 */ /* 相關連結 */ /* 部落格 */ /* 熱門列表 */ /* 社群分享列表 */ /* 購物車 */ /* -購物車共用:架構 */ /* 外部合作課程報名 */ ``` ```htmlembedded= -- 變數(顏色、字級、漸層...) -- common(共用) |--共用樣式設定 (回頂端、IE瀏覽器相容、RWD編輯器表格(X捲軸)、卷軸) -- layout(布局) |--header |-- header__下拉選單 |--footer |-- copyright -- 組件 |-- 按鈕 |-- 表單 |-- 麵包屑 |-- 編輯器 |-- 留言板 |-- 彈窗 |-- 卡片樣式 |-- 圖文列表 |-- 卡片列表 |-- 輪播 |-- 共用:播放按鈕 |-- 共用:輪播點點設定 |-- 下拉選單 (各別頁面/單元) -- 會員 |-- 會員登入 |-- 會員登入後 |-- 會員中心 -- 首頁 |-- banner |-- -- 關於協會 -- .... ``` --- # 【三、Bootstrap】 --- - Bootstrap 使用,直接調整Bootstrap的SCSS檔案,=>客製化系統,減少純客製化 - [bootstrap scss](https://github.com/twbs/bootstrap/tree/main/scss) --- ## 情境一:全站按鈕改為直角 ```css= $border-radius: .25rem !default; $border-radius-sm: .2rem !default; $border-radius-lg: .3rem !default; ``` --- ## 情境二:設計稿色彩定義 ```css= $blue: #0d6efd !default; $indigo: #6610f2 !default; $purple: #6f42c1 !default; $pink: #d63384 !default; $red: #dc3545 !default; $orange: #fd7e14 !default; $yellow: #ffc107 !default; $green: #198754 !default; $teal: #20c997 !default; $cyan: #0dcaf0 !default; $primary: $blue !default; $secondary: $gray-600 !default; $success: $green !default; $info: $cyan !default; $warning: $yellow !default; $danger: $red !default; $light: $gray-100 !default; $dark: $gray-900 !default; ``` --- ## 情境三:客製化卡片 =>[調整_card.scss](https://github.com/twbs/bootstrap/blob/main/scss/_card.scss)  --- ## 情境四:客製化自己的 Bootstrap 架構 1. 複製Bootstrap.scss新增成一支自己的SCSS,EX: cust.scss 3. 去找要調整的代碼,EX:[調整變數](https://github.com/twbs/bootstrap/blob/main/scss/_variables.scss) ```css= $body-color: $gray-900 !default; $body-bg: $white !default; ``` 4. 複製需要的變數並貼上,修改其數值 ```htmlembedded= // Required @import "../node_modules/bootstrap/scss/functions"; // Default variable overrides $body-color: #111; $body-bg: #000; // Required @import "../node_modules/bootstrap/scss/variables"; @import "../node_modules/bootstrap/scss/mixins"; @import "../node_modules/bootstrap/scss/root"; // Optional Bootstrap components here @import "../node_modules/bootstrap/scss/reboot"; @import "../node_modules/bootstrap/scss/type"; // etc ``` --- ## 情境五:移除不需要的元件 註解調不要編譯就可以了,[bootstrap.scss]()https://github.com/twbs/bootstrap/blob/main/scss/bootstrap.scss ```htmlembedded= @import "mixins/banner"; @include bsBanner(""); // scss-docs-start import-stack // Configuration @import "functions"; @import "variables"; @import "variables-dark"; @import "maps"; @import "mixins"; @import "utilities"; // Layout & components @import "root"; @import "reboot"; @import "type"; @import "images"; @import "containers"; @import "grid"; @import "tables"; // @import "forms"; @import "buttons"; @import "transitions"; @import "dropdown"; @import "button-group"; @import "nav"; @import "navbar"; @import "card"; @import "accordion"; @import "breadcrumb"; @import "pagination"; @import "badge"; @import "alert"; @import "progress"; @import "list-group"; @import "close"; @import "toasts"; @import "modal"; @import "tooltip"; @import "popover"; @import "carousel"; @import "spinners"; @import "offcanvas"; @import "placeholders"; // Helpers @import "helpers"; // Utilities @import "utilities/api"; // scss-docs-end import-stack ``` --- # 【四、安裝 SCSS 環境】 --- ## 1. 安裝 插件 - Visual Studio Code => [Live Sass Compiler](https://marketplace.visualstudio.com/items?itemName=ritwickdey.live-sass) --- ## 2. 引入專案設定檔(Visual Studio Code) - 專案目錄新增 .vscode 資料夾 - 新增 settings.json 檔案 ```javascript { "liveSassCompile.settings.excludeList": ["**/node_modules/**", ".vscode/**"], "liveSassCompile.settings.generateMap": true, "liveSassCompile.settings.formats": [ { "format": "compressed", "extensionName": ".min.css", "savePath": "/css/" } ], "liveSassCompile.settings.autoprefix": ["> 1%", "last 2 versions","ie >= 11"], } ``` --- ## 3. chrome設定 ![image](https://hackmd.io/_uploads/BkTzO2f8T.png) --- --- --- --- --- --- --- --- --- --- --- --- # 議題三、開發內容增添更多前端迴圈/陣列作法 ```php= $list=[ ['101廳','102廳','103貴賓室'], ['2樓Lobby','201廳','202廳','203廳','205廳','207貴賓室','208貴賓室'], ['3樓Lobby','301廳','307貴賓室'], ['4樓Lobby','401廳','402廳','403廳','405廳','406貴賓室','407貴賓室','408貴賓室'] ]; ``` ```php= <div class="floorList"> <?php for($i=0;$i<sizeof($list);$i++) {?> <div class="titBox"> <h3 class="tit"><?php echo $i +1?>F</h3> <div class="line"></div> </div> <div class="item"> <div class="textBox"> <div class="linkBox"> <?php for($j=0;$j<sizeof($list[$i]);$j++){ ?> <a href="information-detail.htm" class="bgLink"><?php echo $list[$i][$j]?></a> <?php } ?> </div> <div class="notes"> <p>※<a href="#">一樓平面圖</a>下載 / <a href="#">場地價目表</a>下載</p> <p>洽詢專線 : 02-7724-0109# 1/ 663 </p> </div> <a href="#" class="link noLine">場地洽詢</a> </div> <div class="picBox"> <?php for($j=0;$j<sizeof($list[$i]);$j++){ ?> <img src="<?php echo $web_url; ?>images/information/<?php echo $i+1 ?>f/<?php echo $j?>.jpg" alt=""> <?php } ?> </div> </div> <?php } ?> </div> ``` - [效果畫面:台大會議_本機](http://192.168.173.64/nthcc/web/information) - 檔案位置:T:\nthcc\web\information.php