or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Web 第十週社課
tags:
Web
HTML
CSS
前端
tcirc39th
社課
臺中一中電研社
社網:tcirc.tw
online judge:judge.tcirc.tw
IG:TCIRC_39th
社課點名表單:google 表單
本次社課實作
web
(圖片來源:angularminds)
開發一個網頁可以包含前端(front-end)、後端(back-end)、資料庫(database)及伺服器(server)
本學期社課主題為網頁前端,包含HTML、CSS、JavaScript
HTML
簡介
HTML是一種標記語言(markup language),不是程式語言
語法
HTML是由多個元素所組成,每個元素包含起始標籤(opening tag)、結束標籤(closing tag)、內容(content)

(圖片來源:mozilla)
標籤
標前決定元素的範圍及種類,範圍為起始標籤到結束標籤,起始標籤寫法為
<標籤名稱>
,結束標籤寫法為</標籤名稱>
,標籤名稱決定了標籤的種類。起始標籤中可以加入屬性,屬性可以提供更多的資訊常搭配css使用。巢狀元素
巢狀元素指在元素的內容中含有另一個元素,可以有無限層
部分標籤允許格式不同
只有起始標籤沒有結束標籤和內容,仍可以有屬性,後面/斜線可加可不加
Hello world
HTML tags
<!DOCTYPE html>
宣告 DOCTYPE 是用來告訴瀏覽器文件類型 (Document Type Declaration, DTD),DOCTYPE大小寫都可以,
<!DOCTYPE html>
代表這是一個HTML5文件<html>
<html>
的範圍即為整個HTML檔案的範圍<head>
<head>
是HTML檔案中的第一個tag,在檔案中必存在且只有一個,其中放置的元素為有關網頁的基本資訊,例如:<title>
,<meta>
,<style>
,<link>
<title>
設定標題 , 如本次社課講義標題是 ⌈Web 第九堂社課 臺中一中電研社 - HackMD⌋ ,在搜尋引擎中出現的即是標題。
<meta>
非常重要的tag,
<meta>
會決定這個網站在搜尋引擎中的排序。<body>
內文都放在這邊
<h1~h6>
標題屬性
<p>
段落tag
<br>
換行
<hr>
產生一個水平分隔線
<pre>
套用內部的排版(TAB, Space, enter etc.)
<b>
設為粗體字
<em>
設為斜體
<mark>
像這樣
<small>
將字縮小
<sub>、<sup>
上標
<sup>
、下標<sup>
<ins>
加底線
<del>
加上
刪除線<ruby>
和
<rt>
並用加上發音,用<ruby>
包住要加上發音的部分<rt>
用在
<ruby>
內,在要標記的文字後用<rt>
包住發音像臺中第一高級中學
<rp>
在瀏覽器不支援
<ruby>
的情況下會顯示<rp>
包住的東西特殊字元
&#代碼使用
<ol>
用編號排序
start
設定數字從多少開始
reversed
倒數
type
有
1
、A
、a
、I
、i
可選<li>
在
<ol>
內包住每一項<ul>
列出每一點,也用
<li>
來包住每一項如:
<a>
超連結
herf
超連結用法
download
可以使點下去會下在其指向的內容物
target
_self
:此為預設,在自己的頁面開啟_blank
:在新分頁開啟_parent
:在父層級的畫面打開連結(像在該分頁iframe中的連結設定target="_parent"
那就會在該分頁開啟連結,而非在iframe內部開啟)_top
:在整個畫面開啟連結frame名稱
:在指定iframe開啟<img>
嵌入圖片
src
放入指定的圖片檔的連結,檔名可以是圖片的網頁超連結或在本機的位址
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →height
、width
設定長寬,如果只設定其中一個的話,會自動等比例調整
alt
設定無法顯示時顯示的文字,預設是
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →<map>
在使用前要先在
<img>
用usemap
來為要成為影像地圖的圖片命名usemap
用
#
定義map的名字name
選定指定的圖片
<area>
map的子tag,設定連結的區域
shape
設定連結區域形狀,有
rect
、circle
、poly
、default
coords
根據
shape
的值會須設定不同數量的座標,單位是px,左上是(0,0),x座標向右為正,y座標向下為正circle
:圓心x座標,圓心y座標,半徑rect
:左上x座標,左上y座標,右下x座標,右下y座標poly
:順時針列出多邊形所有點的x,y座標herf
設定超連結
範例
<audio>
支援MP3、OGG、AAC
一樣用
src
preload
設定是否預先下載
mediagroup
在同一個URL同時撥放多個聲音
loop
循環播放
muted
靜音
autoplay
自動撥放
controls
增加按鈕
<video>
一樣用
src
、controls
、width
、height
、loop
、muted
、autoplay
、preload
poster
設定播放前顯示畫面
<sourse>
<video>
和<audio>
的子tag,應付瀏覽器不支援的情況src
用法相同
type
設定檔案的MIME類型,讓瀏覽器先判斷是否可執行
media
設定在哪一種媒體撥放如:
all
、tv
、screen
、handheld
<embed>
單獨存在,有多項功能
用
type
、src
來設定顯示的東西,並且可以用width
、hight
來調整大小<iframe>
使用
src
來連結顯示畫面,也可以用width
、hight
來調整大小srcdoc
如果瀏覽器支援
srcdoc
屬性,會覆蓋src
的內容,內部放HTML codename
定義此
iframe
名稱來呼叫用<div>
無意義的Tag,但因為可以放屬性所以常用於排版
<table>
表格屬性
<tr>
每一橫行都要用這個標籤包住,要在
<table>
內<th>
每一格標題欄,由左至右
<td>
每一格內容欄,由左至右
<button>
<select>
建立一個可用於選擇的區域
<option>
增加一個選項
value
可以設定要傳出的值<optgroup>
增加一個選項的群組(會顯示但不能選)
<section>
標註文件區域,在內部標題會降一級輸出
<footer>
頁尾區,通常放公司聯絡訊息、版權資訊、相關連結
HTML實作
https://unichk.github.io/tcircWebClass/
CSS
介紹
基本語法
(圖片來源:alphacamp)
選擇器後以大括號刮每一行,一行代表一個屬性+值,每一行結尾都必須有分號,css會將大括號內的每一行都套用在選擇器所選擇的目標上。
選擇器(selector)
*
,選擇所有元素標籤名稱
,選擇所有相同標籤名稱的元素.類別名稱
,選擇所有該類別名稱的元素(類別可在html標籤中用class="類別名稱1 類別名稱2"
屬性設定)#ID名稱
,選擇該ID名稱的元素(類別可在html標籤中用id="ID名稱"
屬性設定)[屬性名稱]
,選擇所有具有該屬性的元素1.可用同時使用多個選擇器,以逗號(
,
)隔開(圖片來源:csssolid)
:
隔開,例如a:visited
::
隔開,例如p::first-line
屬性和值
因為很多所以後面再慢慢列
設定CSS
tag內
head內
習慣在
<head>
內用<style>
包起來,用法如同.css檔外部引入
單位
css中常用到的單位有
px
:像素em
:子元素透過「倍數」乘以父元素的 px 值rem
:每個元素透過「倍數」乘以根元素(html)的 px 值vw
:viewpoint width,1vw = 視窗寬度的1%vh
:viewpoint height,1vh = 視窗高度的1%%
:子元素透過「百分比」乘以父元素的 px 值顏色表示方法
#rrggbb
由三個十六進位的十六位數字組成,由前至後分別為紅、綠、藍rgb(0~255,0~255,0~255)
紅、綠、藍rgba(0~255,0~255,0~255,0.0~1.0)
紅、綠、藍、不透明度hsl(0~360,0%~100%,0%~100%)
角度,飽和度,明度hsla(0~360,0%~100%,0%~100%,0.0~1.0)
角度,飽和度,明度,不透明度HSL
註解
/* comment*/
屬性和值(統稱:declaration)
從這裡開始以下全部都是屬性和值
文字編輯
font-family
字型,如瀏覽器找不到會往後搜尋
CSS Web Safe Fonts
font-size
字型大小
font-style
設定為普通/傾斜體/斜體
font-weight
設定粗體粗度
font
直接設定前面幾個的值 每個值用空白隔開
詳見
color
設定文字顏色
排版
text-align
text-indent
首行縮排大小
line-height
行距大小
letter-spacing
字元間距大小
word-spacing
文字間距大小,是根據空白而定
如:
text-shadow
文字加上陰影
詳見
text-decoration
加上線條,可以是在
詳見
text-decoration-color
background
background-color
設定背景顏色
background-image
設定背景圖片
background-repeat
設定背景圖片是否重複出現
background-position
設定背景圖片位置
center
/left
/right
和center
/top
/bottom
組成兩個值,如:right top
;如果只有一個值,另一個沒寫的值會是center
x% y%
用x座標、y座標比例去抓位置x y
用x座標、y座標去抓位置x% y
/x y%
比例、座標混用background-size
auto
依原本的寬跟高顯示x% y%
可以只設一個,另一個會等比例縮放x y
可以只設一個,另一個會等比例縮放cover
等比例調整為一個圖片覆蓋整個背景contain
等比例調整為一個圖片完全顯示background-attachment
設定是否隨頁面捲動
scroll
(預設) 隨頁面捲動fixed
不隨頁面捲動local
除了在iframe外都會隨著頁面捲動background
將以上含background字眼的功能全部寫在同一個屬性上
長寬
width
設定物件的寬
hight
設定物件的長
Box midel
content box
:中間藍色那塊,顯示內容的位置(如:文字、圖片、標題…)padding
:內邊距,在內容和邊框間的空間,預設是0,加大可以使背景範圍加大border
:邊框,可以設定一些邊框圖案margin
:外邊距,邊框外的部分,預設是透明,如果父Tag有背景,在這裡會顯示margin
設定邊距大小可以用:
margin-top:
margin-right:
margin-bottom:
margin-left:
margin:
上
右
下
左
margin:
上
右和左
下
margin:
上下
左右
margin:
上下左右
※順序不能改
合併
當兩個外邊距相遇時,會採用較大的一方
border
border-style
用法類似margin
如:
border-left-style:none
、boder-style:dotted
詳見
border-color
用法類似margin
如:
border-left-color:red
、boder-color:#ff0000
border-width
用法類似margin
如:
border-left-width:5px
、boder-width:thin
border-radius
border-top-left-radius:
border-top-right-radius:
border-bottom-leftradius:
border-bottom-right-radius:
或是
border-radius:
左上 右上 左下 右下border-radius:
左上 右上左下 右下border-radius:
左上右下 右上左下border-radius:
四角border
border:大小 樣式(必填) 顏色
,用法類似margin各方向單獨設定
如:
border-left:
,用法類似marginpadding
用法類似margin
resize
設定是否可以調整長寬
none
:不可調整both
:長寬皆可vertical
:可調整長horizontal
:可調整寬display
list-style-position
來設定詳細
flex-basis
設定長度或用預設的
auto
flex-direction
設定排列方向
flex-wrap
flex-flow
綜合
flex-direction
和flex-wrap
的功能。第一像是
flex-direction
的值,第二項是flex-wrap
的值flex-grow
設定有留白產生時,對留白的分配占比,設定是純數字,會依同一區塊的左數來進行分配
flex-shrink
設定有溢出版面的情況時,對溢出進行要減少的部分的分配占比,設定是純數字,會依同一區塊的左數來進行分配
align-items
排版處理
align-content
用於多行時排版
space-between
,但最上方和最下方有其他部分空白的\({1\over2}\)align-self
個別設定的排版,可以單個單個設定排版方式
justify-content
position
static
:(預設)absolute
:以畫面左上角為(0,0),會隨畫面捲動fixed
:以畫面左上角為(0,0),不隨畫面捲動relative
:以元素正常方式定位visibility
設定是否顯示
visible
(預設) 顯示hidden
隱藏,但原本的位置會空著collapse
在<tr>、<tbody>、<col>、<colgroup>使用是消去該項,其他則與hidden
object-fit
調整
img
或video
在指定框架內呈現方式none
:(預設) 保持原尺寸cover
:等比例調整為一個圖片覆蓋整個背景contain
:等比例調整為一個圖片完全顯示fill
:無視比例填滿transition
transition-property
設定游標停在上面時的動畫效果(css屬性)
transition-duration
設定動畫總時間(單位為s或ms)
transition-timing-function
改變動畫的速度曲線
詳細
transition-delay
設定動畫延遲時間(單位為s或ms)
:hover
在游標停在上面時使用的值
cursor
設定游標圖示(如要上傳自訂圖示,記得用.cur檔)
CSS framework
CSS框架是預先準備好的軟體框架,讓css的撰寫更容易,且可以有標準化的頁面。框架主要包含至少一種的柵格設計(grid),且配備了更多及基於JavaScript的功能。最常見的例如:Bootstrap
HTML+CSS實作
https://unichk.github.io/tcircWebClass/login.html
參考資料
https://www.w3schools.com/tags
https://www.w3schools.com/cssref/default.asp