# 北科大專題課程-1 前後端概述 & HTML+CSS 概述 ##### 2020/08/23 ###### 黃豊凱KevinHuang --- ### 基礎觀念 ![](https://i.imgur.com/WqCyhmG.png) --- ### 網頁系統基本知識 - 網頁系統架構:前端、後端、資料庫 - 程式語言(C#、HTML、CSS、JavaScript) - 程式開發架構(MVC) - 框架(.Net Framework、.Net Core) - 什麼是前後端分離?API又是什麼? --- ### 網頁系統架構 > 前端、後端、資料庫 --- ### 前端後端=前台後台? --- ### 前端後端=前台後台? ### *錯!* - 前台:使用者操作的介面 - 後台:管理者操作的介面 - 前端:系統架構中負責畫面、使用者操作 - 後端:系統架構中負責邏輯運算、存取資料 --- ### 前端、後端、資料庫 ###### 流程與各自的語言與框架 ![](https://i.imgur.com/Sh6BtUn.png) --- ### 前端、後端、資料庫 ###### 更簡單的理解方法 ![](https://i.imgur.com/RAQE2C2.png) --- ### 程式語言 > (C#、HTML、CSS、JavaScript) --- ### 程式語言 - C#:後端程式語言 - HTML:前端元素 - CSS:前端樣式 - JavaScript:前端動畫效果、進行動作 --- ### 今日目的 - [學會HTML](https://www.w3school.com.cn/html/index.asp) - [學會CSS](https://www.w3school.com.cn/css/index.asp) --- ### 課後延伸 - [什麼是DOM](https://www.w3school.com.cn/htmldom/index.asp) --- ### 前端推薦工具 - VSCode - JSBin - WebStorm(付費,學生可免費一年) --- ## 瞭解HTML --- ### 第一步 - 常用的HTML標籤 --- #### 常見 BLOCK 區塊標籤 ```htmlmixed= <div> </div> ``` 這東西很常出現! 這東西很常出現! 這東西很常出現! (因為很重要所以說3次) --- #### 常見 BLOCK 區塊標籤 特點:獨占一行,對高度、寬度、行高以及頂和底邊距都可設置的屬性值生效;如果不給寬度,塊級元素就默認為瀏覽器的寬度,即就是100%寬; | | | | | -------- | -------- | -------- | | form | h1 | h2 | | h3 | h4 | h5 | | h6 | p | table | | ul | | | | | | | --- #### 常見 INLINE行內標籤 特點:可以多個標籤存在一行,不能直接設置行內標籤的高度、寬度、行高以及頂和底邊距,完全靠內容撐開寬高! | | | | | -------- | -------- | -------- | | a | br | label | |select | span | textarea | | | | | --- #### 常見INLINE BLOCK行內區塊標籤 特點:結合的行內和區塊的優點,不僅可以對寬高屬性值生效,還可以多個標籤存在一行顯示; | | | | -------- | -------- | | input | img | | | | --- #### 注意事項 切忌使用 行內標籤 去包 區塊標籤 會造成 HTML 解析錯誤 --- ### 第二步 - HTML屬性值 使用HTML 標籤 就會用到 專屬標籤的 “屬性值” --- ### HTML屬性值 ```htmlmixed= <img src="路徑" alt="圖片描述"/> <input type=""> ``` --- ### 其他常用到屬性值的標籤 | | | | | -------- | -------- | -------- | | button | checkbox | date | | file | hidden | number | | password | radio | search | | submit | text | time | | url | | | --- ### 第三步 - 瞭解ID CLASS NAME 屬性值 --- ### ID屬性值 ```htmlmixed= <input id="list_box"> ``` ID 是唯一值,在一份HTML 只能有一個唯一的ID 不然HTML 會解析錯誤 --- ### Class屬性值 ```htmlmixed= <input class="list_box"> <div class="list_box"> ``` CLASS 可多重宣告 --- ### name屬性值 ```htmlmixed= <form> <input name="list_box"> </form> ``` NAME 值 包在 form 裡面, 許多的程式語言都會用來當成取值的屬性 EX: PHP ASP --- 這些屬性值都是未來在CSS 、JS 或 其他各式各樣的語言所不可或缺的。 接下來的CSS JS 課程,將會教如何搭配使用這些屬性值。 --- ### 第四步 - 常用的基礎HTML架構 ```htmlmixed= <html> <head> <title> </title> <link rel="stylesheet" type="text/css" href="style.css"> <style></style> <script></script> </head> <body> 網頁內容 </body> </html> ``` --- ### 語意式HTML5架構 HTML5使用語意標籤取代掉了不具意義的`<div>`所構成的HTML文件 以下介紹六個最主要架構出HTML5的語意標籤: --- ### 六個最主要的語意標籤 ```htmlmixed= <header> ``` 位於HTML5頁面頂部,通常放置網站的Logo、大標題或是主要資訊 ```htmlmixed= <nav> ``` 通常放置代表網站的連結或選單 ![](https://i.imgur.com/Eux7JX9.png) --- ### 六個最主要的語意標籤 ```htmlmixed= <article> ``` HTML5頁面內可以有多個,可以作為區分內容之用 ```htmlmixed= <section> ``` article中可以有很多個`<section>`,通常用於章節或標題的段落區分 ![](https://i.imgur.com/Eux7JX9.png) --- ### 六個最主要的語意標籤 ```htmlmixed= <aside> ``` 定義文章區塊以外的內容,通常使用於內容相關的邊欄 ```htmlmixed= <footer> ``` 位於頁面底部,大多顯示著作權、作者等 ![](https://i.imgur.com/Eux7JX9.png) --- ### 用語意標籤製作HTML5文件的好處: (1)看標籤就可以知道哪個部份是標題、哪裡是選單 (2)搜尋引擎在搜尋網頁內容時,可以搜尋到準確的資料與資訊 (3)因為標籤都具有意義了,這樣在維護文件時,就會變得更簡單與容易,在團隊的工作中尤其重要 --- ### 語意標籤範例 ```htmlmixed= <body> <header>...</header> <nav>...</nav> <article> <section> ... </section> </article> <aside>...</aside> <footer>...</footer> </body> ``` --- ## 瞭解CSS --- ### 第一步 - 如何把CSS套用到網頁上 --- ## 如何把CSS套用在網頁上 ### 1.行內套用 直接將CSS寫在HTML上 ```htmlmixed= <p style="color:#000">123</p> ``` --- ## 如何把CSS套用在網頁上 ### 2.嵌入套用 樣式可以嵌入於HTML中(通常在`<head>`內) ```htmlmixed= <head> <style> li{color:#000} </style> </head> ``` --- ## 如何把CSS套用在網頁上 ### 3.外部連接套用 ```htmlmixed= <link rel="stylesheet" type="text/css" href="路徑"> ``` 將CSS載入 假如有多個外部連結,越後面套入的CSS 優先權越高 --- ### 第二步 - 使用選擇器(Selector) 越嚴謹的選擇器 權限越高 ID、CLASS、標籤、後代選擇器 --- ### ID選擇器 ID選擇器 => # ```htmlmixed= <p id="good">123</p> ``` 要將ID為 good 的內容字顏色改成白色 ```css= #good{color:#FFF} ``` --- ### Class選擇器 CLASS選擇器 => . ```htmlmixed= <p class="good">123</p> ``` 要將CLASS為 good 的內容字顏色改成白色 ```css= .good{color:#FFF} ``` --- ### 標籤選擇器 直接選擇標籤 ```htmlmixed= <p>123</p> ``` 要將p標籤的內容字顏色改成白色 ```css= p{color:#FFF} ``` --- ### 後代選擇器 ```htmlmixed= <li>000</li> <ul> <li>123</li> </ul> ``` 要將 ul li 的內容字123顏色改成白色 ,內容字000不改變 ```css= ul li{color:#FFF} ``` --- ### Grouping 數個選擇器共同有同樣樣式 ```htmlmixed= <p>123</p> <div>456</div> <li>789</li> ``` 將p, div, li 內容字顏色都改為白色 ```css= p, div, li{color:#FFF} ``` --- ### 第三步 - 了解margin、padding、border 調整版面可能會有許多種需求 Ex:圖片外要有留白空間,最外面還要有外框,圖片與圖片之間要有間隔 就需要使用到margin padding border --- ### 了解margin、padding、border - padding :為留白,區塊與區塊裡內容的距離,增加空間 - border :為邊框,整體大小最外面的邊框 - margin :為邊界,區塊與其他區塊的距離 --- ### 了解margin、padding、border ```htmlmixed= <img src="123.jpg"/> <img src="456.jpg"/> ``` 將兩張圖片的內容 - 向外增加2px的灰色 - 邊框為1px黑色 實線 - 邊界設定上1px右2px下3px左4px (順時針) ```css= img{ background:#666; padding:2px; border:1px solid #000; margin:1px 2px 3px 4px; } ``` --- - padding是區塊內增大 - border是區塊的邊框 - margin是區塊外的邊界 --- ### 第四步 - 寬度width與float 想要調整區塊的排列就需要用到float 使用float又必定需要用到width (不然內部元素大小突然很大的時候版面會崩壞) float屬性有分為left, right, none float 是依照區塊寬度來進行排列 --- ```htmlmixed= <div class="a"> <div class="nav b">b</div> <div class="nav c">c</div> <div class="nav d">d</div> </div> ``` ```css= .a{width:300px;} .nav{width:150px;background-color:red;float:left;} ``` 畫面會為 ![](https://i.imgur.com/AUxjdI7.png) --- 如果區塊寬度超過該外框的寬度,就會往下一行排列 ```css= .a{width:300px;} .nav{width:160px;background:red;float:left;} ``` 畫面會為 (因為寬度不夠放下兩個區塊) ![](https://i.imgur.com/w2CoWTj.png) --- 如果為 ```css= .a{width:300px;} .nav{width:150px;background:#666; float:left;} .b{float:right;} ``` 畫面會為 ![](https://i.imgur.com/sm0proZ.png) --- ### 第五步 - position 相對位置、絕對位置、固定位置 --- ### position 接下來要了解的是 區塊的位置定義 - 相對位置 relative : 依照區塊與區塊之間來設定的位置 - 絕對位置 absolute : 依照瀏覽器來設定的位置 - 鎖定位置 fixed : 依照瀏覽器框框來設定的位置,不管使用者如何拉動瀏覽器的scrollbar,位置永遠固定在瀏覽器框框 --- ### position ```css= top: 以上方為基礎算位置,top:10px 上方間隔 10px left: 以左邊為基礎算位置,left:10px 左邊間隔 10px right: 以左邊為基礎算位置,right:10px 右邊間隔 10px bottom: 以左邊為基礎算位置,bottom:10px下方間隔 10px ``` Facebook 最上方的 #blueBar 就是用了 ```css= #blueBar{position:fixed;top:0;} /*鎖在瀏覽器上方*/ ``` --- ### position 子元素會繼承父元素的位置設定(很重要) 在正常的思考 絕對位置 absolute: 依照瀏覽器來設定的位置 但是當你的父元素設定了 absolute 之後,子元素也設定 absolute 子元素會依照父元素的位置當作起始位置去作定位 --- ## Todolist 切版練習 --- ### Todolist 切版練習 - 開啟一個HTML與CSS檔案 - 設計待辦清單的畫面排版與顏色 - 還不用加入任何的操作動作唷! --- ### Todolist 切版練習 ![](https://i.imgur.com/DyfWjAM.gif) --- ##### 學程式不只是學習某個語言或框架, ##### 更重要是學習怎麼自學更多 ![](https://i.imgur.com/dhYvv2w.png)
{"metaMigratedAt":"2023-06-15T11:58:14.142Z","metaMigratedFrom":"YAML","title":"北科大專題課程-1 前後端概述 & HTML+CSS 概述","breaks":true,"contributors":"[{\"id\":\"51ff12a4-2c72-4ebf-8d92-b365963be44a\",\"add\":7269,\"del\":22}]"}
    607 views