Skip to content · ⁨Bỏ qua nội dung⁩

GAC011 Computing II: Web Development · ⁨GAC011 Tin học II: Phát triển Web⁩

GAC Computing · ⁨Tin học GAC⁩ · Topic 2 · ⁨Chủ đề 2⁩

2.1

What this module is, and how it is marked · ⁨Mô-đun này là gì và cách chấm điểm⁩

English

GAC011 is where you build and publish a real website. Six units take you from a design on paper through HTML, CSS and JavaScript to a launched site and a plan for promoting it.

Everything is assessed on what you produce: a storyboard 分镜脚本 and design, the site itself, and a social media strategy 社交媒体策略, plus coursework. There is no written exam.

  • Design counts as much as code. The module's outcomes name aesthetics, layout, navigation and usability alongside the scripting.
  • ⚠ The site you design here is the thing GAC017 gives a back end and a database. A weak plan now costs time in the next module.

You can run every example in this module in the site's own code playground, and the HTML, CSS and JavaScript references there go deeper than these notes do.

Tiếng Việt

GAC011 là nơi bạn xây dựng và công bố một trang web thực tế. Sáu đơn vị học tập dẫn dắt bạn từ thiết kế trên giấy thông qua HTML, CSS và JavaScript đến một trang web đã ra mắt và kế hoạch tiếp thị cho nó.

Mọi thứ đều được đánh giá dựa trên những gì bạn tạo ra: một storyboard và thiết kế, chính trang web, cùng một chiến lược mạng xã hội, và bài tập lớn. Không có bài thi viết.

  • Thiết kế quan trọng không kém mã code. Các kết quả đầu ra của module nêu rõ thẩm mỹ, bố cục, điều hướng và tính dễ sử dụng bên cạnh việc lập trình.
  • ⚠ Trang web bạn thiết kế ở đây sẽ là nền tảng mà GAC017 cung cấp backend và cơ sở dữ liệu. Một kế hoạch yếu kém nay sẽ tốn thời gian ở module tiếp theo.

Bạn có thể chạy mọi ví dụ trong module này trong sân chơi mã code riêng của trang web, và các tham chiếu HTML, CSS và JavaScript tại đó đi sâu hơn nhiều so với những ghi chú này.

Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
storyboard/ˈstɔːribɔːd/ bản phác thảo
social media strategy/ˈsəʊʃl ˈmiːdiːə ˈstrætədʒi/ chiến lược truyền thông xã hội
HTML/ˌeɪtʃ tiː em ˈel/ HTML
CSS/ˌsiː es ˈes/ CSS
selector/sɪˈlektə/ bộ chọn
declaration/ˌdekləˈreɪʃn/ khai báo
2.1

Designing a website · ⁨Thiết kế trang web⁩

Syllabus · ⁨Chương trình⁩
English

Unit 1 of 6 in GAC011 Computing II: Web Development (Level II). The module is taught over about 40 class hours plus 20 hours of independent study, and is assessed at the teaching centre and moderated by ACT — there is no external exam.

Module purpose: On completion of this module, students should be able to design and create a basic website by applying knowledge of website development languages. They will also start coding to create basic dynamic content in a website. Furthermore, they will create a strategy to promote their website with social media.

The module outcomes this unit works towards:

Learning Objective GAC011.1: Design effective websites using aesthetics and formal concepts of layout and organization to communicate effectively using visual components.

Learning Objective GAC011.3: Incorporate best practices in navigation, usability, and written content to design websites that give users easy access to the information they seek.

Tiếng Việt

Đơn vị 1 trong số 6 đơn vị của GAC011 Computing II: Web Development (Level II). Mô-đun được giảng dạy trong khoảng 40 giờ học trên lớp cộng thêm 20 giờ tự học, và được đánh giá tại trung tâm giảng dạy với sự giám sát của ACT — không có kỳ thi bên ngoài.

Mục đích mô-đun: Sau khi hoàn thành mô-đun này, sinh viên sẽ có khả năng thiết kế và tạo một website cơ bản bằng cách áp dụng kiến thức về ngôn ngữ phát triển website. Họ cũng sẽ bắt đầu viết code để tạo nội dung động cơ bản cho website. Ngoài ra, họ sẽ xây dựng chiến lược quảng bá website của mình thông qua mạng xã hội.

Các kết quả học tập mà đơn vị này hướng tới:

Mục tiêu học tập GAC011.1: Thiết kế các website hiệu quả sử dụng thẩm mỹ và các khái niệm chính thức về bố cục và tổ chức để truyền đạt hiệu quả thông qua các thành phần trực quan.

Mục tiêu học tập GAC011.3: Áp dụng các thực hành tốt nhất trong điều hướng, tính thân thiện và nội dung văn bản để thiết kế các website giúp người dùng dễ dàng truy cập thông tin mà họ đang tìm kiếm.

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

English
  • Start on paper. A wireframe 线框图 shows structure without colour, which is the only way to argue about structure.
  • Information architecture 信息架构 is what goes where: the pages, and the path a visitor takes between them.
  • Visual hierarchy 视觉层次 tells the eye what matters — through size, weight, spacing and contrast, not through decoration.
  • Design for the audience, and say who they are before you choose anything.
Tiếng Việt
  • Bắt đầu trên giấy. Một wireframe (bản phác thảo) thể hiện cấu trúc mà không dùng màu sắc, đây là cách duy nhất để tranh luận về cấu trúc.
  • Kiến trúc thông tin xác định nội dung đặt ở đâu: các trang web, và đường đi mà khách truy cập đi qua giữa chúng.
  • Cấp bậc trực quan chỉ cho mắt thấy điều gì quan trọng — thông qua kích thước, độ đậm, khoảng cách và độ tương phản, chứ không phải qua trang trí.
  • Thiết kế cho đối tượng mục tiêu, và xác định họ là ai trước khi chọn bất kỳ yếu tố nào.
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
wireframe/ˈwaɪəfreɪm/ bản vẽ khung wireframe
Information architecture/ˌɪnfəˈmeɪʃn ˈɑːkɪtektʃə/ Kiến trúc thông tin
Visual hierarchy/ˈvɪʒuːəl ˈhaɪərɑːki/ Bậc thang thị giác
2.2

Creating a website using HTML · ⁨Tạo trang web bằng HTML⁩

Syllabus · ⁨Chương trình⁩
English

Unit 2 of 6 in GAC011 Computing II: Web Development (Level II). The module is taught over about 40 class hours plus 20 hours of independent study, and is assessed at the teaching centre and moderated by ACT — there is no external exam.

The module outcomes this unit works towards:

Learning Objective GAC011.2: Create and publish a website using scripting languages to add interactive components.

Tiếng Việt

Đơn vị 2 trong số 6 đơn vị của GAC011 Computing II: Web Development (Level II). Mô-đun được giảng dạy trong khoảng 40 giờ học trên lớp cộng thêm 20 giờ tự học, và được đánh giá tại trung tâm giảng dạy với sự giám sát của ACT — không có kỳ thi bên ngoài.

Các kết quả học tập mà đơn vị này hướng tới:

Mục tiêu học tập GAC011.2: Tạo và xuất bản một website sử dụng ngôn ngữ lập trình script để thêm các thành phần tương tác.

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

English
  • HTML 超文本标记语言 marks up meaning, not appearance. A heading is <h1> because it is a heading.
  • An element 元素 has an opening tag, content and a closing tag; an attribute 属性 goes in the opening tag.
  • Semantic elements 语义化元素 — <header>, <nav>, <main>, <article>, <footer> — tell a browser, a search engine and a screen reader what a region is.
  • Every image needs alt text 替代文本. It is what a blind visitor hears and what a search engine reads.
Tiếng Việt
  • HTML đánh dấu ý nghĩa, không phải ngoại hình. Một tiêu đề là <h1> vì nó là một tiêu đề.
  • Một thẻ (element) có thẻ mở, nội dung và thẻ đóng; một thuộc tính (attribute) nằm trong thẻ mở.
  • Các thẻ ngữ nghĩa — <header>, <nav>, <main>, <article>, <footer> — báo cho trình duyệt, công cụ tìm kiếm và trình đọc màn hình biết vùng nội dung đó là gì.
  • Mọi hình ảnh đều cần văn bản thay thế. Đó là những gì người khiếm thị nghe thấy và công cụ tìm kiếm đọc được.
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
element/ˈelɪmənt/ nguyên tố
attribute/ˈætrɪbjuːt/ thuộc tính
Semantic elements/səˈmæntɪk ˈelɪmənts/ Phần tử ngữ nghĩa
alt text/ɒlt tekst/ văn bản thay thế (alt text)
2.3

Using CSS to enhance your website · ⁨Sử dụng CSS để nâng cấp trang web của bạn⁩

Syllabus · ⁨Chương trình⁩
English

Unit 3 of 6 in GAC011 Computing II: Web Development (Level II). The module is taught over about 40 class hours plus 20 hours of independent study, and is assessed at the teaching centre and moderated by ACT — there is no external exam.

The module outcomes this unit works towards:

Learning Objective GAC011.1: Design effective websites using aesthetics and formal concepts of layout and organization to communicate effectively using visual components.

Learning Objective GAC011.2: Create and publish a website using scripting languages to add interactive components.

Tiếng Việt

Đơn vị 3 trong số 6 đơn vị của GAC011 Computing II: Web Development (Level II). Mô-đun được giảng dạy trong khoảng 40 giờ học trên lớp cộng thêm 20 giờ tự học, và được đánh giá tại trung tâm giảng dạy với sự giám sát của ACT — không có kỳ thi bên ngoài.

Các kết quả học tập mà đơn vị này hướng tới:

Mục tiêu học tập GAC011.1: Thiết kế các website hiệu quả sử dụng thẩm mỹ và các khái niệm chính thức về bố cục và tổ chức để truyền đạt hiệu quả thông qua các thành phần trực quan.

Mục tiêu học tập GAC011.2: Tạo và xuất bản một website sử dụng ngôn ngữ lập trình script để thêm các thành phần tương tác.

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

English
  • CSS 层叠样式表 controls appearance, and keeping it out of the HTML is the whole point of the separation.
  • A selector 选择器 chooses elements; a declaration 声明 sets a property to a value.
  • The box model 盒模型 explains layout: content, then padding, then border, then margin.
  • Responsive design 响应式设计 makes one page work on a phone and a laptop, usually with flexible widths and a media query 媒体查询.

Worked example. A card that is too wide on a phone.

The fix is not a fixed pixel width. Set max-width so the card never exceeds the screen, let it shrink below that, and add a media query only for the change that a smaller screen genuinely needs, such as stacking two columns into one.

Designing the flexible case first, and treating the media query as the exception, is what "responsive" means.

Tiếng Việt
  • CSS điều khiển ngoại hình, và việc giữ nó tách rời khỏi HTML chính là mục đích cốt lõi của sự phân tách. sự phân tách.
  • Mô hình hộp (box model) giải thích cách bố trí: nội dung, sau đó là padding (đệm), rồi border (viền), cuối cùng là margin (khoảng cách).
  • Thiết kế responsive (phân phối linh hoạt) khiến một trang web hoạt động trên cả điện thoại và laptop, thường với
  • Thiết kế thích ứng giúp một trang web hoạt động trên điện thoại và laptop, thường với Ví dụ minh họa. Một thẻ (card) quá rộng trên điện thoại.

Ví dụ minh họa. Một thẻ (card) quá rộng trên điện thoại.

Giải pháp không phải là cố định độ rộng theo pixel. Đặt max-width để thẻ không bao giờ vượt quá màn hình, hãy để nó "Responsive" nghĩa là thiết kế trường hợp linh hoạt trước, và coi media query là ngoại lệ. nhu cầu, chẳng hạn như gộp hai cột thành một.

Thiết kế trường hợp linh hoạt trước, và xem truy vấn phương tiện (media query) là ngoại lệ, chính là điều "responsive" có nghĩa.

Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
box model/bɒks ˈmɒdl/ mô hình hộp
Responsive design/rɪˈspɒnsɪv dɪˈzaɪn/ Thiết kế responsive
media query/ˈmiːdiːə ˈkwɪərɪ/ truy vấn phương tiện
2.4

Adding interactivity with JavaScript · ⁨Thêm tương tác với JavaScript⁩

Syllabus · ⁨Chương trình⁩
English

Unit 4 of 6 in GAC011 Computing II: Web Development (Level II). The module is taught over about 40 class hours plus 20 hours of independent study, and is assessed at the teaching centre and moderated by ACT — there is no external exam.

The module outcomes this unit works towards:

Learning Objective GAC011.2: Create and publish a website using scripting languages to add interactive components.

Tiếng Việt

Đơn vị 4 trong số 6 đơn vị của GAC011 Computing II: Web Development (Level II). Mô-đun được giảng dạy trong khoảng 40 giờ học trên lớp cộng thêm 20 giờ tự học, và được đánh giá tại trung tâm giảng dạy với sự giám sát của ACT — không có kỳ thi bên ngoài.

Các kết quả học tập mà đơn vị này hướng tới:

Mục tiêu học tập GAC011.2: Tạo và xuất bản một website sử dụng ngôn ngữ lập trình script để thêm các thành phần tương tác.

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

English
  • JavaScript runs in the browser and changes the page after it has loaded.
  • The DOM 文档对象模型 is the page as a tree of objects your code can read and change.
  • An event 事件 — a click, a submit, a key press — triggers a function 函数 you wrote.
  • Keep it small at this level: validate a form, toggle a menu, filter a list. A site that fails when JavaScript fails is a design error, not a coding one.
Tiếng Việt
  • Giữ cho nó đơn giản ở mức độ này: xác thực biểu mẫu, bật/tắt menu, lọc danh sách. Một trang web bị hỏng
  • DOM là trang web dưới dạng cây đối tượng mà mã của bạn có thể đọc và thay đổi.
  • Một sự kiện — như nhấp chuột, gửi biểu mẫu, nhấn phím — sẽ kích hoạt một hàm do bạn viết ra.
  • Hosting (lưu trữ) đặt file của bạn trên máy chủ; một tên miền (domain name) dẫn khách truy cập đến đó. khi JavaScript thất bại là lỗi thiết kế, không phải lỗi lập trình.
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
DOM/dɒm/ DOM
event/ɪˈvent/ sự kiện
function/ˈfʌŋkʃn/ hàm
Hosting/ˈhəʊstɪŋ/ Lưu trữ web
domain name/dəˈmeɪn neɪm/ tên miền
Accessibility/ækˌsesəˈbɪlɪti/ Khả năng truy cập
content plan/ˈkɒntent plæn/ kế hoạch nội dung
2.5

Launching your website · ⁨Ra mắt website của bạn⁩

Syllabus · ⁨Chương trình⁩
English

Unit 5 of 6 in GAC011 Computing II: Web Development (Level II). The module is taught over about 40 class hours plus 20 hours of independent study, and is assessed at the teaching centre and moderated by ACT — there is no external exam.

The module outcomes this unit works towards:

Learning Objective GAC011.3: Incorporate best practices in navigation, usability, and written content to design websites that give users easy access to the information they seek.

Learning Objective GAC011.4: Use the website to complement academic work conducted in other media.

Tiếng Việt

Đơn vị 5 trong số 6 đơn vị của GAC011 Computing II: Web Development (Level II). Mô-đun được giảng dạy trong khoảng 40 giờ học trên lớp cộng thêm 20 giờ tự học, và được đánh giá tại trung tâm giảng dạy với sự giám sát của ACT — không có kỳ thi bên ngoài.

Các kết quả học tập mà đơn vị này hướng tới:

Mục tiêu học tập GAC011.3: Áp dụng các thực hành tốt nhất trong điều hướng, tính thân thiện và nội dung văn bản để thiết kế các website giúp người dùng dễ dàng truy cập thông tin mà họ đang tìm kiếm.

Mục tiêu học tập GAC011.4: Sử dụng website để bổ trợ cho công việc học thuật được thực hiện trên các phương tiện khác.

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

English
  • Hosting 托管 puts your files on a server; a domain name 域名 points visitors at them.
  • Test before you launch: every link, on a phone, on a browser that is not yours.
  • Accessibility 无障碍 is not optional — contrast, alt text, keyboard navigation, and text that resizes.
  • ⚠ Check what you are allowed to publish. An image or a font on your site needs a licence that permits it, exactly as a quotation in an essay needs a citation.
Tiếng Việt
  • ⚠ Kiểm tra những gì bạn được phép công bố. Một hình ảnh hoặc font chữ trên trang web cần giấy phép cho phép sử dụng, đúng như một trích dẫn trong bài luận cần trích nguồn.
  • Kiểm tra trước khi ra mắt: mọi liên kết, trên điện thoại, trên trình duyệt không phải của bạn.
  • Quyết định đối tượng mục tiêu và mục tiêu trước khi chọn nền tảng. "Có mặt trên mạng xã hội" không phải là một mục tiêu.
  • Chỉ số đo lường (metrics) phải gắn liền với mục tiêu: phạm vi tiếp cận, sự tương tác, và tỷ lệ nhấp vào trang web của bạn là những thứ khác nhau, và chỉ một trong số đó là lưu lượng truy cập. cho phép nó, giống hệt như một câu trích dẫn trong bài luận cần được ghi nguồn.
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
Metrics/ˈmetrɪks/ Chỉ số đo lường
2.6

Social media marketing · ⁨Tiếp thị mạng xã hội⁩

Syllabus · ⁨Chương trình⁩
English

Unit 6 of 6 in GAC011 Computing II: Web Development (Level II). The module is taught over about 40 class hours plus 20 hours of independent study, and is assessed at the teaching centre and moderated by ACT — there is no external exam.

The module outcomes this unit works towards:

Learning Objective GAC011.5: Use social media to promote or find a website.

Tiếng Việt

Đơn vị 6 trong số 6 đơn vị của GAC011 Computing II: Web Development (Level II). Mô-đun được giảng dạy trong khoảng 40 giờ học trên lớp cộng thêm 20 giờ tự học, và được đánh giá tại trung tâm giảng dạy với sự giám sát của ACT — không có kỳ thi bên ngoài.

Các kết quả học tập mà đơn vị này hướng tới:

Mục tiêu học tập GAC011.5: Sử dụng mạng xã hội để quảng bá hoặc tìm kiếm một website.

Source: Cambridge International syllabus · ⁨Nguồn: Chương trình Cambridge International⁩

English
  • Decide the audience and the objective before choosing a platform. "Be on social media" is not an objective.
  • A content plan 内容计划 says what you will post, how often, and who writes it.
  • Metrics 指标 must connect to the objective: reach, engagement, and click-through to your site are different things, and only one of them is traffic.
  • Measure, then change one thing. Changing everything at once teaches you nothing about which change worked.
Tiếng Việt
  • Xác định đối tượng khách hàng và mục tiêu trước khi chọn nền tảng. "Có mặt trên mạng xã hội" Đánh giá hoàn toàn mang tính thực hành — một cơ sở dữ liệu bạn thiết kế và xây dựng, một **ứng dụng web
  • Kế hoạch nội dung nêu rõ bạn sẽ đăng gì, tần suất ra sao và ai là người viết.
  • Chỉ số đo lường phải liên quan đến mục tiêu: phạm vi tiếp cận, mức độ tương tác, và tỷ lệ nhấp vào website của bạn là những thứ khác nhau, và chỉ có một trong số đó là lưu lượng truy cập. website của bạn là những thứ khác nhau, và chỉ có một trong số chúng là lưu lượng truy cập.
  • Đo lường, sau đó thay đổi một yếu tố. Thay đổi tất cả cùng lúc sẽ không dạy cho bạn điều gì về việc thay đổi nào đã hiệu quả. thay đổi nào đã hoạt động.
Additional notes PDF

A website should help its intended reader

A school-transport report may contain detailed methods and tables. Its website can give classmates a short overview. The page should help them find the main result, inspect the method and reach the approved full report.

These separate notes add practical GAC011 work. Preserve the original handout beside them. Follow your current centre brief for required tools, depth and submission evidence.

Original practice brief. Build one readable page for classmates using invented transport counts. Add navigation, a table and a category filter. Plan how the page supports a report and a short talk. No real responses are collected. Local preview is practice; it is not public publication.

Draw a wireframe with a title, introduction, section links, findings, method and footer. Give each area a clear purpose. Visitors should not have to guess whether a button changes the page or opens another document. Use meaningful text such as “Method and limits”, rather than “Click here”.

Build a complete HTML page

Character encoding 字符编码 tells the browser how to read the file's text. UTF-8 supports many writing systems. The viewport setting helps mobile browsers use the device width. A descriptive title helps people identify the page in a tab.

Save the following complete example as transport.html. Open that file in a browser. It works without a library, account or network request. The built-in style block keeps this first exercise in one file. A later project can move those styles into a separate CSS file and link it from the head.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>School transport: practice report</title>
<style>
:root { --page: #ffffff; --text: #172033; --line: #637083; --link: #164db2; }
body.dark { --page: #080d17; --text: #e9eef7; --line: #8392a8; --link: #a8d2ff; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--page); color: var(--text); font: 1.1rem/1.6 sans-serif; }
header, main, footer { max-width: 48rem; margin: auto; padding: 1rem; }
a { color: var(--link); }
nav { display: flex; flex-wrap: wrap; gap: 1rem; }
section { margin-block: 2rem; padding-block: 1rem; border-top: 1px solid var(--line); }
button, select { font: inherit; padding: .4rem; background: var(--page); color: var(--text); border: 1px solid var(--line); }
:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
table { width: 100%; border-collapse: collapse; }
caption { text-align: left; margin-block: .5rem; }
th, td { text-align: left; padding: .5rem; border-bottom: 1px solid var(--line); }
[hidden] { display: none !important; }
</style>
</head>
<body>
<header>
<h1>School transport</h1>
<p>An original practice example. All counts are invented.</p>
<nav aria-label="Report sections">
<a href="#findings">Findings</a>
<a href="#method">Method and limits</a>
</nav>
<div id="controls" hidden>
<button id="theme" type="button">Use dark theme</button>
<label for="mode">Show transport category</label>
<select id="mode">
<option value="all">All categories</option>
<option value="walk">Walking</option>
<option value="bus">Bus</option>
<option value="cycle">Cycling</option>
</select>
</div>
</header>
<main>
<section id="findings" aria-labelledby="findings-title">
<h2 id="findings-title">Findings</h2>
<p>In this invented group of 36 responses, bus travel has the largest count.</p>
<table>
<caption>Practice counts, not research findings</caption>
<thead><tr><th scope="col">Main mode</th><th scope="col">Responses</th></tr></thead>
<tbody>
<tr data-mode="walk"><th scope="row">Walking</th><td>12</td></tr>
<tr data-mode="bus"><th scope="row">Bus</th><td>18</td></tr>
<tr data-mode="cycle"><th scope="row">Cycling</th><td>6</td></tr>
</tbody>
</table>
<p id="status" role="status">3 transport categories shown.</p>
</section>
<section id="method" aria-labelledby="method-title">
<h2 id="method-title">Method and limits</h2>
<p>Each invented response has one main mode. The counts sum to 36.</p>
<p>The table does not explain choices, travel distance or the whole school's habits.</p>
<p>This page is a short companion to a report and oral presentation. An actual project should link its approved report and sources here.</p>
</section>
</main>
<footer><p>GAC011 practice: no responses are collected or sent.</p></footer>
<script>
const controls = document.querySelector("#controls");
const mode = document.querySelector("#mode");
const rows = [...document.querySelectorAll("tbody tr")];
const status = document.querySelector("#status");
const theme = document.querySelector("#theme");
mode.addEventListener("change", () => {
  let shown = 0;
  rows.forEach(row => {
    row.hidden = mode.value !== "all" && row.dataset.mode !== mode.value;
    if (!row.hidden) shown += 1;
  });
  status.textContent = `${shown} transport ${shown === 1 ? "category" : "categories"} shown.`;
});
theme.addEventListener("click", () => {
  const dark = document.body.classList.toggle("dark");
  theme.textContent = dark ? "Use light theme" : "Use dark theme";
});
controls.hidden = false;
</script>
</body>
</html>

The HTML provides readable content before JavaScript runs. The href="#method" link points to the element with id="method". IDs must be unique on the page. A wrong ID breaks that link even if the label looks correct.

The table's caption states what its numbers mean. Column and row headings describe the cells. The invented values are 12, 18 and 6, giving 36 responses. Bus has the largest count. Those counts do not tell us why people choose a mode.

Explain and adapt the CSS

A CSS custom property 自定义属性 stores a reusable value, such as a colour. The example uses shared page, text, border and link colours. The dark class changes those values together. Text areas and controls use the same page colour in dark mode. Borders and space separate sections.

The universal box-sizing rule makes specified sizes include padding and borders. The reading area grows with the window but stops at 48rem. The navigation can wrap when space is limited. A flexible width often solves the first layout problem without a media query.

The :focus-visible outline helps keyboard users find the current control. Do not remove it just because it is visible. Links retain underlines. Table headings and sufficient contrast help readers understand the data. An actual image needs text suited to its purpose: meaningful information needs a useful description; a purely decorative image can use empty alt text.

Adaptation. Change the page title and introduction for another approved academic topic. Keep a clear heading order. Try a narrow window and enlarged text. If you later add two columns, decide where they should stack and test a suitable media query. Do not add a fixed width that makes the phone scroll sideways.

Trace the JavaScript interaction

An event listener 事件监听器 runs code when its event occurs. The example listens for a changed selection. mode.value gives the selected value. Each row's data-mode attribute becomes row.dataset.mode in JavaScript.

A row is hidden when a specific category is selected and the row does not match. Selecting all makes every row visible. The counter starts at zero for each change. It increases once for each visible category, not once per response. Therefore selecting Bus shows one category, not eighteen categories.

Trace. Select Bus. Walking and Cycling become hidden. Bus remains visible and the status says “1 transport category shown.” Select All categories. The hidden condition is false for every row, so the status returns to three categories.

The theme button adds or removes the dark class. Its label describes the next action. Updating textContent changes text; it does not treat that text as HTML. The status region can announce the changed count to assistive software. Check actual behaviour with the tools available at your centre.

Progressive enhancement 渐进增强 means that useful basic content works before extra features are added. The example keeps interactive controls hidden until their listeners are attached. Without JavaScript, the full table, methods and section links still work. A filter changes the view, not the underlying counts or study limits.

Check, publish and maintain the site

Before any authorised launch, record results of practical checks. Open every link, use the keyboard, enlarge text and try phone-sized layouts. Check both themes and a second browser or device. Verify the complete content still works if the optional script is unavailable. Read errors rather than hiding them.

Relative path 相对路径 means a file location described from another location. For an approved report saved beside your page as report.pdf, an HTML link can use href="report.pdf". Use a meaningful label and identify the PDF. Add the actual report only when you have it; do not leave a broken sample link. Check filenames and upper/lower case on the host.

A static site 静态网站 can serve stored HTML, CSS, scripts and images. The browser can still run interactive JavaScript. A domain name 域名 is an address people use; hosting provides the service that delivers files. A domain alone does not upload your site.

Use your centre's approved publishing process. Check media permission and remove private drafts or participant information. Upload the required files together. Open the actual public URL and verify paths, display and controls there. A successful local preview is not proof of a successful launch.

Keep editable source files and a known working copy. When you revise, check the change and its affected links. Record the version and date. Correcting your local file does not update a hosted copy until the approved publishing process delivers it.

Connect the website to academic work and promotion

The website should complement your report and talk. Its overview gives a clear question, one useful result and the study's limits. The full report carries detailed evidence and references. A slide in the talk can show the page address or an approved QR code. Check that the link reaches the intended version. Do not claim that the practice counts are real findings.

For promotion, define an audience and objective first. For example: help classmates find the approved report during project week. Plan a permitted post with a short accurate description, meaningful link text and a named owner. Follow centre rules and platform requirements. Planning a post does not show that promotion actually happened.

Impressions 展示次数 count displays under the platform's definition. Reach usually refers to distinct accounts under its definition. Neither is automatically the number of people who read the report. Click-through rate 点击率 needs a stated numerator and denominator.

Invented example. Post A receives 400 impressions and 20 link clicks. Post B receives 250 impressions and 25 link clicks. Using link clicks divided by impressions, A has $20/400=5\%$ and B has $25/250=10\%$. B has more link clicks despite fewer impressions.

These numbers do not prove B's wording caused the difference. Timing, audience and repeated clicks may differ. Link clicks also do not prove the report loaded or was read. Choose a change, record its context and compare a measure that matches the objective. Keep unnecessary personal tracking out of the task.

Practice and explained answers

Questions. 1. Which element does the Method link reach? 2. What should the filter display for Cycling? 3. Does filtering change the original total of 36? 4. What remains usable without JavaScript? 5. Why is a domain purchase insufficient for launch? 6. Post C has 600 impressions and 24 link clicks. Find its rate. 7. Does B's higher rate prove its wording is better? 8. Name evidence of a completed website task.

Explained answers. 1. The element whose ID is method; the fragment and ID must match. 2. Only Cycling's row, with six responses and one category shown. 3. No; it changes visible rows, not the original dataset. 4. The text, full table, method and section links; optional controls remain hidden. 5. Files still need approved hosting and delivery, then checks at the actual URL. 6. $24/600=4\%$. 7. No; other differences and measurement limits remain. 8. Show your plan, sources, working page, checks and required publishing, academic and promotion evidence.

Interactive lessons on this topic · ⁨Bài học tương tác về chủ đề này⁩

Work through it step by step, with instant-check exercises. · ⁨Làm theo từng bước, kèm theo bài tập kiểm tra ngay lập tức.⁩

Log in or create account · ⁨Đăng nhập hoặc tạo tài khoản⁩

IGCSE, A-Level & AP