[練習教材] 使用編譯器完成網頁丙級題組一
本篇為提供 HTML/CSS 的 Code 敲打練習使用(採用 VSCode 進行編譯),練習採用國內技術技能檢定中心之網頁設計丙級術科項目之題組一 (17300-104301) 且修訂版本為 109/08/21,實際內容可能不符合實際術科考照電腦環境使用(考場公告僅提供 Dreamweaver 並未表明提供 VSCode 文字編譯軟體)。
關於本練習
本教學主要是針對學生進行作業練習,且根據內容皆以目標時間兩小時內完成為解析目標。同時替換題目的 table 設計更改為 flexbox 設計,除了符合現在主流技術且加深初學者作為入門的練習經驗學習。事前準備有以下要點說明:
- 取得術科題目與素材:
可從技檢中心下載題目 pdf 與網站素材包,此資源將跟實際考試之內容一致。網站素材包內含指定題目所需之媒體影音圖片、文字。網頁乙級術科試題下載:請連結至 → [技能檢定中心] 取得題目與素材包
- 作業時間說明:
參考技術士考試同等作業時間,本練習適合二小時內完成。此時間包含架設 Web 伺服器架設與環境測試(本練習將不示範操作)。 - 環境開發工具:
本練習不符合網頁設計丙級提供應考人使用之開發工具(請詳閱術科題目說明),本解析採用 VSCode 與外掛工具 Live Server 為自主開發練習工具。
No.2 設計首頁
這裡主要是說明各別檔案名稱與用途,可先建立 index.html
, main.html
, guitar_history.html
, guitar_event.html
, guitar_learning.html
等五個檔案即可。接著本節實作只需設計 index.html 的版型設計。
index.html 為主要畫面,參考尺寸需求為設計。並使用區域 <main>
作為之後的 iframe 互動區。
- 記得設定網頁標題為「國立科技高中─校園社團介紹網」
- 採用 flexbox 來設計版面切割,先處理大版面分割,次區域分割下一步驟處理
- 可先添加測試文字為 content 檢測
- 空間分配題目要求可供參考(示意尺寸有邏輯錯誤姓),aside 分配 215px,section 吃剩餘空間,子元素有指定為 770px 事後將多餘空間給 section 之子元素 做 padding。
index.html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>國立科技高中─校園社團介紹網</title>
<link rel="stylesheet" href="style.css">
</head>
<!-- body.main>header.top{top}+aside>nav.menu{menu}+footer.update{update}^section>header.marquee{marquee}+main.content{content}^footer.footer{footer} -->
<body class="main">
<header class="top">top</header>
<aside>
<nav class="menu">menu</nav>
<footer class="update">update</footer>
</aside>
<section>
<header class="marquee">marquee</header>
<main class="content">content</main>
</section>
<footer class="footer">footer</footer>
</body>
</html>style.css * {
box-sizing: border-box;
overflow: auto;
}
body.main {
width: 1024px;
padding: 0 11px;
margin: 10px auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
text-align: center;
}
body > * {
border: solid 1px #7777;
}
header.top {
flex-basis: 1000px;
height: 65px;
}
footer.footer {
flex-basis: 1000px;
height: 20px;
}
aside {
flex-basis: calc(215px);
height: calc(768px - 65px - 20px);
display: flex;
}
section {
flex-basis: calc(1000px - 215px);
display: flex;
} - 接著設計
<aside>
與<section>
這兩個次 flexbox 切割 - 調整部分的 CSS 體驗
style.css body > *:not(aside):not(section),
aside > *,
section > * {
border: solid 1px #7777;
}
aside {
flex-basis: calc(1000px - 770px);
height: calc(768px - 65px - 20px);
display: flex;
flex-flow: column nowrap;
}
aside > nav.menu {
flex-basis: calc(100% - 25px);
}
aside > footer.update {
flex-basis: 25px;
}
section {
flex-basis: calc(1000px - 215px);
display: flex;
flex-flow: column nowrap;
}
section > header.marquee {
flex-basis: 29px;
padding:0 calc((100% - 770px - 2px) / 2);
}
section > main.content {
flex-basis: calc(100% - 29px);
padding:calc((100% - 770px - 2px) / 2);
}
No.3 網站標題區
本篇需要合成圖片(不做示範),請透過 PS 進行合成作業產生檔名 logo.png
解析度 994*60 並放入 top 區
- 使用 a 包住 img 產生連結功能。而圖片與 header 的尺寸不符合。建議將 a 轉
display:block
,使 header 範圍內都能 link 連動。index.html <header class="top">
<a href="index.html">
<img src="logo.png" alt="國立科技高中校園社團介紹網" srcset="">
</a>
</header>style.css header.top>a{
display: block;
}
No.4 跑馬燈廣告區
尺寸 770*29(前面已處理完畢),只需添加 marquee 元素標籤並調整 CSS 即可
- 將原 header 標籤改為 marquee
- 除了原 CSS 屬性要求,添加 line-height 調整外觀
- 標楷體其實整個畫面都要求,可以改由 * 來指定
<section> |
* { |
No.5 選單區
設計 nav 區域,根據題目要求完成超連結。
- 超連結導向到指定的 iframe 位置,屆時由 iframe 驅動畫面變化
- 使用偽類 hover 進行背景替換
<aside> |
nav.menu > header { |
No.6 日期更新區
簡單的調整字體大小即可
<footer class="update">最近更新日期:2020/11/13</footer> |
.update{ |
No.7 網頁內容區
這裡將開始設計主要內容同時規劃主頁面 main.html
- 調整 index.html 內的 content 區,使用 iframe 做設計。因此 main.html 透過嵌入式做整合。
- 注意 iframe 需要跟前面的選單區 target 做同名
- main.html 屬於外部網頁因此 CSS 不共用,我們採用頁首樣式做該頁面之 CSS 規劃
index.html <main class="content">
<iframe src="main.html" frameborder="0" name="imain"></iframe>
</main>style.css .content>iframe{
width:100%;
height:100%;
}main.html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
margin: 0;
background: url('0101.jpg');
text-align: center;
font-family: '標楷體';
font-size: 24px;
color: #00f;
font-weight: bold;
font-style: italic;
}
</style>
</head>
<body>
<img src="0104.jpg" alt="科技高中校長">
<p>
<br>
嗨!歡迎加入國立科技高中。<br>
參加社團不僅可以豐富自己的人生、寬闊自己的視野,<br>
也能砥礪技能、磨練人際、培養第二專長。<br>
選擇一項您喜歡的社團,積極的參與和投入,<br>
您會獲得一陣陣的驚喜!
</p>
</body>
</html>
No.8 吉他社社史
同 main.html 的連動方式做設計,同樣的 CSS 設計放於頁首樣式。本檔案完成後將共同複製給 No.9 與 No.10 使用。
- 原有的超連結選單採用 flex 設計替代 table 題目需求。
- 文字檔匯入貼上後,可選取範圍後按下 Shift+Alt+I 於所有行內尾落多重選取(添加 br 標籤)
|
No.9 吉他社近期活動公告
從 No.8 複製貼來使用命名為 guitar_event.html
,根據題目要求塞入指定文字並設定相關錨點連結。
- 注意這裡都使用頁首樣式來設計(試不依賴 style 行內樣式來設計)
- 內容區我們使用 section 標籤,方便 CSS 屬性的指定,並搭配 flex-basis 比例替代表格之 5*2 需求。
- 最後一段需注意高度方便 TOP 效果明顯。
|
No.10 吉他社教學內容
從 No.8 複製貼來使用命名為 guitar_learning.html
,根據題目要求塞入指定文字並設定按鈕外觀。
- 內容區我們使用 section 標籤,方便設定為 flexbox。
- 將 section>div 設計成按鈕外觀。
|
No.11 頁尾版權區
這裡簡單的將指定文字塞入,添加幾個 CSS 屬性即可。
<footer class="footer">網頁設計及維護:00 江佰瑾</footer> |
footer.footer { |