第一堂 HTML+CSS
世新創聯會
部分引用台大開源社課程內容
JavaScript 可以跟你互動的功能
HTML 架起頁面的結構
CSS 引入頁面的外觀
以某個網頁為例
HTML+CSS+JS 是在瀏覽器提供使用者介面
(表現層)又稱之為前端(Fornt-End)
相對而言
在網站伺服器、資料庫等產生之結果與技術
稱之為後端(Back-End)
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style>
body {background-color: powderblue;}
h1 {color: blue;}
p {color: red;}
</style>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<button type="button"
onclick="document.getElementById('demo').innerHTML = Date()">
Click me to display Date and Time.</button>
<p id="demo"></p>
</body>
</html>
HyperText Markup Language
超文本標籤語言由 W3C 定義和維護
W3C:World Wide Web Consortium,全球資訊網協會
<元素的名稱 屬性="屬性的值"> 元素的內容 </元素的名稱>
< 起 始 標 籤 > < 終止 標籤 >
< H T M L 元 素 >
<a href="https://www.google.com.tw/">Google 首頁</a>
<h1>HTML 基本結構</h1>
<img src="./img/PPAP.png" />
<!DOCTYPE html>
<html>
<head>
網頁的各種資訊
</head>
<body>
網頁的內容
</body>
</html>
起始標籤
-
結束標籤
<head>
<!-- 網頁的各種資訊 -->
<title>NTUOSC | 從零開始 HTML、CSS</title>
<!-- title 元素:網頁的標題名稱 -->
<meta charset="utf-8" />
<!-- meta 元素:一些網頁資訊
其中 charset 用來宣告網頁使用的編碼 -->
</head>
主要用於敘述HTML文件
通常有 title, meta, style, script
meta,因無內容,不需結束標籤,稱為空元素
<html>
<head>
.....(HTML文件資訊、表頭)
</head>
<body>
<h1>My First JavaScript</h1>
<!-- HTML文件內容 -->
</body>
</html>
body內部為顯示內容的地方
<a href="URL"> 點這邊 </a>
<img src="URL" />
<br />
超連結
圖片
換行
<hr>
水平分隔線
<code>...</code>
顯示程式碼
<pre>...</pre>
維持在html樣式
<h1>...</h1>
<h2>...</h2>
<h3>...</h3>
<h4>...</h4>
<h5>...</h5>
<h6>...</h6>
章節標題
段落文字
<p> PPAP </p>
文字class用
<span> PPAP </span>
斜體字
<em> PPAP </em>
粗體字
<strong> PPAP </strong>
標示
<mark> PPAP </mark>
<u> PPAP </u>
加上底線
<ul>
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
</ul>
<ol>
<li>項目一</li>
<li>項目二</li>
<li>項目三</li>
</ol>
無序號清單
有序號清單
有序號清單
<ol type="1">...</ol>
<ol type="A">...</ol>
<ol type="a">...</ol>
<ol type="I">...</ol>
<ol type="i">...</ol>
<ol start="100">...</ol>
<ol reversed>...</ol>
1. 世新大學
2. 系所
a. 資管系
b. 法律系
3. 單位
a.學務處
i. 課外組
b.教務處
<style>
table {
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
<table>
<tr>
<th>吳東叡</th>
<th>施怡婷</th>
<th>黃誠</th>
</tr>
<tr>
<td>徐名嶸</td>
<td>陳富瑜</td>
<td>陳松煒</td>
</tr>
<tr>
<td>林曼婷</td>
<td>蔡承諴</td>
<td>何浩宇</td>
</tr>
</table>
吳東叡 | 施怡婷 | 黃誠 |
徐名嶸 | 陳富瑜 | 陳松煒 |
林曼婷 | 蔡承諴 | 何浩宇 |
<table>
<thead>
<tr>
<th></th>
<th>組長</th>
<th colspan="2">組員</th>
</tr>
</thead>
<tbody>
<tr>
<th>女</th>
<th>陳富瑜</th>
<th>施怡婷</th>
<th>林曼婷</th>
</tr>
<tr>
<th rowspan="2">男</th>
<th>徐名嶸</th>
<th>吳東叡</th>
<th>陳松煒</th>
</tr>
<tr>
<th>黃誠</th>
<th>蔡承諴</th>
<th>何浩宇</th>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">總共</td>
<td>9人</td>
</tr>
</tfoot>
</table>
<form>
帳號:<input ...>
密碼:<input ...>
</form>
Form 元素建立表單
input 元素建立輸入欄位
<input type="text" name="account" value="Wei" placeholder="Wei">
欄位種類
欄位名稱
預先填入值
提示值
<!--文字欄位-->
姓名:<input type="text" placeholder="Wei"><br>
<!--信箱欄位-->
電子信箱:<input type="email" placeholder="email"><br>
<!--密碼欄位-->
密碼:<input type="password" placeholder="passsword"><br>
<!--網址欄位-->
個人網站:<input type="url" placeholder="http://google.com"><br>
<!--電話欄位-->
電話:<input type="tel" placeholder="09-12344556"><br>
<!--數字欄位-->
年齡:<input type="number" placeholder="21">
<!--單選欄位-->
<input type="radio" value="男">男
<input type="radio" value="女">女
<input type="radio" value="其他">其他
<hr>
<!--多選欄位-->
<input type="checkbox" value="生理男">生理男
<input type="checkbox" value="生理女">生理女
<hr>
<!--滑動欄位-->
不喜歡 <input type="range" name="score" min="1" max="5"> 不喜歡
<hr>
<!--顏色欄位-->
顏色:<input type="color">
<!--選擇 年月日 / 時分-->
年月日:<input type="date"> 時分:<input type="time">
<hr>
<!--選擇日期時間-->
日期時間:<input type="date-time local">
<hr>
<!--選擇 月 / 週-->
月:<input type="month"> 週:<input type="week">
<!--下拉式選單-->
<select>
<option>1
<option>2
<option>3
</select>
<hr>
<!--層級式 下拉式選單-->
<select>
<optgroup label="hi">
<option>1
<option>2
<option>3
</optgroup>
<optgroup label="嗨">
<option>1
<option>2
<option>3
</optgroup>
</select>
<!-- 多文字欄位 -->
<textarea rows="5" cols="5"></textarea>
<form>
<!-- 清除按鈕 -->
<input type="reset" name="reset">
<!-- 送出按鈕 -->
<input type="submit" name="submit">
</form>
請做出一個 飯店訂購表單
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style>
h1 {color: blue;}
p {color: red;}
</style>
</head>
<body>
<h1>This is a Heading</h1>
<hr>
<form>
<!--文字欄位-->
姓名:<input type="text" placeholder="Wei"><br>
<!--信箱欄位-->
電子信箱:<input type="email" placeholder="email"><br>
<!--密碼欄位-->
密碼:<input type="password" placeholder="passsword"><br>
<!--網址欄位-->
個人網站:<input type="url" placeholder="http://google.com"><br>
<!--電話欄位-->
電話:<input type="tel" placeholder="09-12344556"><br>
<!--數字欄位-->
年齡:<input type="number" placeholder="21"><br>
不喜歡 <input type="range" name="score" min="1" max="5"> 不喜歡<br>
<hr>
<!--選擇日期時間-->
日期時間:<input type="date-time local">
<!--層級式 下拉式選單-->
<select>
<optgroup label="hi">
<option>1
<option>2
<option>3
</optgroup>
<optgroup label="嗨">
<option>1
<option>2
<option>3
</optgroup>
</select><br>
<hr>
<!-- 多文字欄位 -->
<textarea rows="2" cols="10"></textarea><br>
<!-- 按鈕 -->
<input type="reset" name="reset">
<input type="submit" name="submit">
</form>
</body>
</html>
<div> O </div>
<div class="a"> A </div>
<div class="b"> B </div>
<div class="a b"> AB </div>
<span id="ntuosc"> 臺灣大學開源社 </span>
class
ID 不得重複
Cascading Style Sheets,層疊樣式表
為 HTML 文件添加樣式的電腦語言
由 W3C 定義和維護
<!--引入CSS檔-->
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<!--直接在HTML上定義-->
<head>
p{
font-size: 100px;
}
</head>
<!--在某CSS檔內匯入-->
@import url("main.css");
<!--直接在HTML上定義-->
<head>
<style>
p{
font-size: 100px;
}
</style>
</head>
<!--在某CSS檔內匯入-->
@import url("main.css");
h3 {color:green;}
選擇器
Selector
屬性
Property
值
Value
大括號的部分就是宣告(Declaration)
h3 {color:green;}
以HTML元素為選擇對象
.h3 {color:green;}
以 HTML 元素中的
class="類別名稱"
為選擇對象
.h3 {color:green;}
以 HTML 元素中的
class="類別名稱"
為選擇對象
*.xxx
指所有的.xxx類別都會有同樣效果
h3.other
指屬於other類別的h3元素才會有效果
識別碼選擇器 ID Selector
<style>
#net { color:blue }
#prog { color:green }
#algo { color:red }
</style>
<body>
<h3>嗨大家好</h3>
<ul>
<li id="net">黃緯易</li>
<li id="prog">吳東叡</li>
<li id="algo">施怡婷</li>
</ul>
</body>
組合選擇器
<A>
<B>...</B>
<C>
<B>...</B>
</C>
<B>...</B>
</A>
A B {...} = A元素內的所有後代B
A > B {...} = A元素之子元素B
<B>...</B>
<A>...</A>
<B>...</B>
<C>...</C>
<B>...</B>
A + B {...} = A元素同層且相鄰的B元素
A ~ B {...} = 所有與A元素同層的B元素
虛擬類別
<style>
:first-child {color:green};
li:hover {color:red};
</style>
li元素,滑鼠滑至元素後套用藍色
所有元素的第一個子元素套用綠色
CSS 類別宣告
h3 { color:green };
h3 { text-align:left };
h3 {
color:green
text-align:left
};
h1 { color:green };
h2 { color:green };
h3 { color:green };
h1, h2, h3 { color:green };
分類 | 單位 | 名稱 | 說明 |
---|---|---|---|
絕對長度 |
px
|
CSS 像素 | 和螢幕像素不同
= 1/96 in |
pt
|
點 | 文書編輯器中常見
= 1/72 in |
|
in
|
英吋 | ||
相對長度 |
em
|
字體尺寸 | 目前元素的字體大小 |
rem
|
根 em |
<html> 的字體大小
|
|
%
|
百分比 | 不同屬性不同設定 |
CSS 的樣式屬性百百種
不同的屬性專門處理不同的部分
屬性 描述 屬性值 描述
Font-Family 字體 字體名稱
以逗號隔開多的會一個個嘗試
serif 襯線體
sans-serif 無襯線體
Font-size 大小 各種長度值
Font-weight 字重 100 ~ 900
屬性 描述 屬性值 描述
text-decoration 文字裝飾 none
無樣式
underline 底線
line-through 刪除線
text-align 文字對齊 center 置中
left 置左
right 置右
body {
text-align: center;
font-family: "Noto Sans CJK TC", "微軟正黑體", sans-serif;
}
a {
text-decoration: none;
}
.strong {
font-weight: 700;
}
屬性 描述 屬性值
color 主要顏色(文字) 各種顏色值
background- color 背景顏色
.magic-text {
background-color: #0285f4;
color: black;
}
.magic-text:hover {
background-color: #673a87;
color: white;
}
屬性 描述 屬性值
height 高度 各種長度值
weight 寬度
max-height 最大高度
max-weight 最大寬度
min-height 最小高度
min-weight 最小寬度
.size-1 {
background-color: #0285f4;
width: 50px;
height: 50px;
}
.size-2 {
background-color: #34a853;
width: 100px;
height: 100px;
}
Margin
Border
Padding
content
Margin
Padding
寫法 上下左右 描述
a b c d a b c d 全部分別設定
a a a a a 全部相同
a b a b a b 上下一組 左右一組
a b c a b c b 左右一組 上下分別設定
留白在內
邊距在外
版面配置中威力強大的屬性
決定元素擺放的定位方式,影響網頁排版
屬性值 | 描述 | 如何看待上下左右屬性 |
---|---|---|
static
|
預設 | 無視 |
relative
|
相對定位 | 以自己的原位為基準移動的距離 |
absolute
|
絕對定位 | 和父元素邊界的距離 |
fixed
|
固定 | 和視窗邊界的距離 |
上下左右屬性:
top, bottom, right, left
|
版面配置中威力強大的屬性
每一個元素都有預設的 Display
決定顯示模式,影響網頁排版
屬性值 | 描述 |
---|---|
block |
區塊,就像平常的<div>
|
inline |
行內,就像平常的<span>
|
inline-block |
行內區塊 |
none |
無,不會被顯示出來 |
Responsive Web Design
指設計在不同裝置
(桌機、筆電、手機、平板)
上都能正常顯示瀏覽、檢視,並獲得相同資訊。
網頁設計框架
製作出一 單一履歷頁面
git init
git status
git commit -m "first commit"
git remote add origin xxxxxxxx
git push -u origin master
將剛剛的履歷頁面做好,並加上其他頁面,做成完整的一個獨立靜態網站
心得500字內
期待大家的作業