Giáo án Tin học 12 · Kết nối tri thức · Chung, Khoa học máy tính và Tin học ứng dụng
Tin họcLớp 12Phần 4. Chủ đề 4 · Giải quyết vấn đề với sự trợ giúp của máy tính · Chung

Giáo án Bài 17. Các mức ưu tiên của bộ chọn

Kế hoạch bài dạy theo mẫu Công văn 5512/BGDĐT-GDTrH · 2 tiết (90 phút)

I. Mục tiêu

1. Kiến thức

  • Nêu được thứ tự ưu tiên các quy tắc tác giả thông thường khi cùng mức quan trọng: bộ chọn có id đặc hiệu hơn class, thuộc tính, lớp giả; nhóm này hơn tên phần tử và phần tử giả.
  • Giải thích được cách so sánh độ đặc hiệu theo bộ ba (id, class, phần tử) từ trái sang phải, không cộng dồn để kết luận nhiều class vượt một id.
  • Giải thích được vì sao khai báo sau thắng khi hai bộ chọn bằng nhau về độ đặc hiệu và cùng nguồn.
  • Phân biệt được giá trị khai báo trực tiếp trên phần tử với giá trị chỉ thừa kế từ phần tử cha.
  • Vận dụng được các quy tắc trên để dự đoán màu, kiểu chữ và nền của một phần tử trong đoạn mã cụ thể, rồi kiểm tra kết quả bằng trình duyệt.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: HS chủ động đọc ví dụ, dự đoán kết quả trước khi thử trên máy và tự ghi nhận xét vào phiếu học tập.
  • Giao tiếp và hợp tác: HS trao đổi theo cặp và nhóm để thống nhất cách so sánh độ đặc hiệu, trình bày lập luận bằng thuật ngữ đúng.
  • Giải quyết vấn đề và sáng tạo: HS phân tích xung đột giữa các quy tắc, đề xuất cách sửa mã mà không dùng !important và kiểm chứng bằng bằng chứng quan sát được.

b) Năng lực đặc thù

  • Sử dụng và quản lí các phương tiện công nghệ thông tin và truyền thông: HS soạn tệp HTML/CSS bằng phần mềm soạn thảo, lưu đúng mã UTF-8 theo tên tệp, mở bằng trình duyệt để kiểm tra.
  • Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông: HS dùng trình duyệt để kiểm tra dự đoán về màu và nền của phần tử, sửa mã khi kết quả không khớp.
  • Ứng dụng công nghệ thông tin và truyền thông trong học và tự học: HS dùng bài giảng, ví dụ và bài tập tương tác trên trang NeoEdu để tự kiểm tra sau giờ học.
  • Hợp tác trong môi trường số: HS chia sẻ tệp và kết quả kiểm tra trong nhóm, thống nhất đáp án trước khi báo cáo.

3. Phẩm chất

  • Chăm chỉ: HS kiên trì thử nhiều tình huống, ghi lại kết quả thực tế của từng lần chạy mã và so sánh với dự đoán ban đầu.
  • Trách nhiệm: HS hoàn thành phần việc được nhóm giao, kiểm tra lại mã của mình trước khi nộp.
  • Trung thực: HS ghi đúng kết quả quan sát được trên trình duyệt, không sao chép đáp án mà không giải thích lập luận.

II. Thiết bị dạy học và học liệu

1. Giáo viên

  • Máy tính kết nối máy chiếu, trình duyệt web và phần mềm soạn thảo văn bản thuần (ví dụ Notepad hoặc VS Code).
  • Bài giảng trình chiếu nội dung bài 17, mã mẫu tự biên soạn và bảng so sánh độ đặc hiệu.
  • Phiếu học tập số 1 và Phiếu học tập số 2 (in hoặc chiếu).
  • Học liệu số NeoEdu: trang bài học có bài giảng, ví dụ và bài tập tương tác tại neoedu.vn/learn/12/informatics/bai-17-cac-muc-uu-tien-cua-bo-chon.

2. Học sinh

  • Máy tính có trình duyệt web và phần mềm soạn thảo văn bản thuần.
  • Vở ghi, bút, giấy nháp để dự đoán và ghi kết quả.
  • Tệp thư mục làm việc đặt tên theo nhiệm vụ (ví dụ bai17_nhom.html) lưu bằng mã UTF-8.

III. Tiến trình dạy học

Hoạt động 1: Mở đầu · 10 phút

Đoán màu chữ khi các quy tắc xung đột

a) Mục tiêu

HS nhận ra tình huống nhiều quy tắc cùng áp dụng cho một phần tử và có nhu cầu tìm quy tắc quyết định màu chữ.

b) Nội dung

GV chiếu đoạn mã gồm ba quy tắc cho màu chữ: p { color: navy; }, .ghi { color: green; }, #ket-qua { color: maroon; } và phần tử <p id="ket-qua" class="ghi">Chiều cao 4cm.</p>. HS dự đoán màu chữ của đoạn văn và viết lí do ngắn gọn vào vở.

c) Sản phẩm

Mỗi HS ghi một dự đoán kèm lí do, ví dụ: “Màu maroon vì id là bộ chọn mạnh nhất”, hoặc “Màu green vì class viết sau p”. GV ghi nhận các dự đoán khác nhau trên bảng để làm vấn đề cho cả lớp giải quyết trong tiết học.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu đoạn mã, nêu câu hỏi: “Đoạn văn này có màu gì? Vì sao em nghĩ như vậy?” GV yêu cầu HS dự đoán trước khi chạy thử.

    Học sinh

    HS đọc mã, suy nghĩ và ghi dự đoán cá nhân vào vở trong 2 phút.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV mời HS thảo luận nhanh theo cặp bàn, yêu cầu ghi thêm câu hỏi còn thắc mắc.

    Học sinh

    HS trao đổi với bạn cùng bàn, ghi lại lí do và câu hỏi chưa rõ.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 3 đến 4 HS nêu dự đoán và lí do, ghi các ý kiến lên bảng. Gợi ý: “Các lí do này dựa trên điều gì?”

    Học sinh

    Trả lời dự kiến: “Em nghĩ maroon vì có id”; “Em nghĩ green vì class mạnh hơn tên phần tử”; “Em không chắc, vì có nhiều quy tắc cùng nhắm vào p”.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV nhận xét: các dự đoán khác nhau cho thấy cần có thứ tự so sánh rõ ràng. GV dẫn vào bài: “Hôm nay chúng ta học cách trình duyệt chọn quy tắc nào khi nhiều quy tắc cùng áp dụng.”

    Học sinh

    HS ghi tên bài học và câu hỏi cần trả lời vào vở.

Hoạt động 2.1: Hình thành kiến thức mới · 20 phút

Độ đặc hiệu của các bộ chọn

a) Mục tiêu

HS nêu được thứ tự đặc hiệu của id, class, tên phần tử và giải thích cách so sánh bộ ba từ trái sang phải.

b) Nội dung

HS làm việc nhóm 4 theo Phiếu học tập số 1: xếp bốn bộ chọn p, p.ghi, .ghi, #ket-qua theo thứ tự tăng dần độ đặc hiệu; ghi bộ ba (id, class, phần tử) của từng bộ chọn; giải thích vì sao có thể không cộng điểm để so sánh. Nhiệm vụ trọng tâm là so sánh p.ghi với .ghi và #ket-qua với p.ghi.

c) Sản phẩm

Bảng xếp hạng HS hoàn thành trong Phiếu số 1: p (0,0,1) < .ghi (0,1,0) < p.ghi (0,1,1) < #ket-qua (1,0,0). Kết luận đúng: so từ trái sang phải, một id luôn hơn mọi số class và phần tử; p.ghi hơn .ghi vì ở vị trí class bằng nhau, vị trí phần tử của p.ghi lớn hơn; không cộng dồn các số để so sánh.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV phát Phiếu học tập số 1, giải thích cách đọc bộ ba (id, class, phần tử): ví dụ #ket-qua là (1,0,0), .ghi là (0,1,0), p là (0,0,1). Nêu câu hỏi: “Vì sao p.ghi mạnh hơn .ghi nhưng vẫn yếu hơn #ket-qua?”

    Học sinh

    HS nhận phiếu, đọc hướng dẫn và xác nhận nhiệm vụ trong nhóm.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quan sát các nhóm, gợi ý khi nhóm bối rối: “Hãy so vị trí thứ nhất trước, nếu bằng nhau thì so vị trí thứ hai.”

    Học sinh

    Nhóm điền bộ ba cho từng bộ chọn, xếp thứ tự và viết lí do vào phiếu.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời một nhóm trình bày bảng xếp hạng và nhóm khác nhận xét. Hỏi: “Nếu có 11 class và một id thì bên nào thắng? Vì sao?”

    Học sinh

    Trả lời dự kiến: “Id thắng vì so từ vị trí id trước, 1 lớn hơn 0 dù có 11 class.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: độ đặc hiệu là bộ số (id, class, phần tử), so từ trái sang phải; id > class > phần tử; p.ghi hơn .ghi nhưng yếu hơn #ket-qua. GV nhấn mạnh: không cộng điểm để so sánh.

    Học sinh

    HS ghi thứ tự đặc hiệu và quy tắc so sánh vào vở, sửa phiếu nếu cần.

Hoạt động 2.2: Hình thành kiến thức mới · 15 phút

Thứ tự khai báo và giá trị trực tiếp hay thừa kế

a) Mục tiêu

HS giải thích được vì sao khai báo sau thắng khi bằng đặc hiệu và phân biệt giá trị khai báo trực tiếp với giá trị chỉ thừa kế từ cha.

b) Nội dung

GV dùng bài giảng và ví dụ trên trang NeoEdu để trình bày hai ý: (1) hai .ghi cùng đặt nền khác nhau thì quy tắc viết sau thắng; (2) đặt color: green trực tiếp cho p sẽ thắng màu chỉ thừa kế từ div cha. HS trả lời câu hỏi: “Nếu viết p { color: navy } ở đầu và p { color: green } ở cuối thì màu nào hiển thị?” và “Vì sao !important không nên dùng để che thiết kế rối?”

c) Sản phẩm

HS ghi kết luận: khi đặc hiệu bằng nhau và cùng nguồn, khai báo sau thắng nên p { color: green } ở cuối sẽ thắng; giá trị khai báo trực tiếp lên p thắng giá trị thừa kế từ cha; !important đổi mức ưu tiên nên làm mã khó bảo trì, chỉ nên dùng khi thật cần thiết.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu hai câu hỏi trên bảng và yêu cầu HS suy nghĩ theo cặp: “Màu nào sẽ hiển thị? Vì sao?”

    Học sinh

    HS đọc câu hỏi, đối chiếu với kiến thức vừa học và thảo luận theo cặp bàn trong 3 phút.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn HS mở trang NeoEdu, xem phần ví dụ về thứ tự khai báo và giá trị thừa kế, ghi nhận kết quả.

    Học sinh

    HS xem ví dụ trên NeoEdu, ghi lại cách hiển thị và so sánh với dự đoán của cặp.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 cặp trả lời. Hỏi thêm: “Nếu chỉ viết color cho div cha, p con có màu theo cha không? Vì sao?”

    Học sinh

    Trả lời dự kiến: “Màu navy sẽ không hiển thị vì quy tắc green sau thắng”; “p con sẽ nhận màu của cha nhờ thừa kế nếu không có khai báo trực tiếp.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: thứ tự khai báo chỉ quyết định khi đặc hiệu bằng nhau; giá trị trực tiếp thắng giá trị thừa kế; !important không phải giải pháp thiết kế. GV nhắc HS đối chiếu lại trong phần Ghi nhớ.

    Học sinh

    HS ghi hai kết luận vào vở và đánh dấu câu nào còn thắc mắc để hỏi lại.

Hoạt động 3.1: Luyện tập · 15 phút

Dự đoán và phân tích đoạn mã mẫu

a) Mục tiêu

HS vận dụng quy tắc đặc hiệu và thứ tự để xác định màu, kiểu chữ, nền của phần tử và đề xuất cách sửa mã mà không dùng !important.

b) Nội dung

HS làm bài theo cặp với Phiếu học tập số 2: bài 1 (chọn bộ chọn có đặc hiệu cao nhất), bài 5 (màu của phần tử có id và class), bài 7 (phân tích đoạn mã mẫu gồm p, .ghi, #ket-qua, p.ghi, hai .ghi nền), bài 8 (sửa xung đột p có hai màu mà không dùng !important).

c) Sản phẩm

Đáp án: Bài 1 chọn D (#ket-qua). Bài 5 chọn B (maroon, vì id thắng class). Bài 7: p có màu maroon vì #ket-qua (1,0,0) thắng .ghi (0,1,0) và p (0,0,1); chữ đậm vì p.ghi đặt font-weight bold không xung đột màu; nền yellow vì hai .ghi cùng đặc hiệu, khai báo yellow ở sau. Bài 8: xóa hoặc sửa khai báo p { color: green } ở cuối để giữ một nguồn p { color: navy }; kiểm tra lại các trang khác dùng chung tệp trước khi kết luận.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV phát Phiếu học tập số 2, nêu yêu cầu: làm bài 1, 5, 7, 8; mỗi kết luận phải có lí do bằng độ đặc hiệu hoặc thứ tự khai báo.

    Học sinh

    HS nhận phiếu, phân công ai đọc đề, ai ghi đáp án trong cặp.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quan sát, nhắc HS: “Với bài 7, hãy tách riêng từng xung đột: màu, đậm, nền.” Nếu cần, GV cho HS chạy thử đoạn mã trên máy để đối chiếu.

    Học sinh

    HS làm bài, ghi lập luận cho từng câu, lưu tệp thử nghiệm nếu có kiểm tra trên máy.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 cặp trình bày bài 7 và bài 8. Hỏi: “Vì sao nền là yellow chứ không phải white?”

    Học sinh

    Trả lời dự kiến: “Vì hai .ghi cùng đặc hiệu (0,1,0) nên khai báo sau là background-color yellow thắng.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt đáp án và nhấn mạnh: phân tích từng thuộc tính riêng, không dùng !important; khi sửa xung đột, nên giữ một nguồn quy tắc rõ ràng và kiểm tra phạm vi dùng chung.

    Học sinh

    HS sửa lại đáp án sai (nếu có) và ghi lời giải chuẩn vào phiếu.

Hoạt động 3.2: Luyện tập · 15 phút

Kiểm tra nhanh bằng bài tập tương tác

a) Mục tiêu

HS củng cố khái niệm đặc hiệu, thứ tự khai báo, ghép bộ chọn với đối tượng và trạng thái, đồng thời tự kiểm tra qua học liệu số.

b) Nội dung

HS làm bài theo nhóm 4 với các câu: bài 2 (hai quy tắc .ghi cùng đặt nền khác nhau, quy tắc nào thắng), bài 3 (mười một class luôn vượt một id, đúng hay sai), bài 4 (ghép p.ghi, div p, a:hover với đối tượng/trạng thái), bài 6 (color trực tiếp trên p có thể thắng giá trị thừa kế từ cha, đúng hay sai). Sau đó nhóm truy cập bài tập tương tác trên NeoEdu để đối chiếu.

c) Sản phẩm

Đáp án: Bài 2 chọn B (quy tắc viết sau). Bài 3 Sai, vì độ đặc hiệu so theo bộ từ trái, không cộng điểm. Bài 4: p.ghi – phần tử p thuộc lớp ghi; div p – p là hậu duệ của div; a:hover – liên kết đang được con trỏ trỏ lên theo thiết bị hỗ trợ. Bài 6 Đúng, vì giá trị khai báo trực tiếp khác giá trị thừa kế. Nhóm ghi số câu đúng trên NeoEdu.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu bốn câu hỏi, yêu cầu nhóm làm nhanh rồi kiểm tra trên trang NeoEdu; nhắc nhóm ghi lí do cho từng đáp án.

    Học sinh

    HS nhận đề, thảo luận và thống nhất đáp án trong nhóm.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn HS mở trang bài học trên NeoEdu, làm phần bài tập tương tác và ghi điểm của nhóm.

    Học sinh

    HS làm bài tương tác, so sánh với đáp án của nhóm và sửa nếu sai.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời một nhóm trình bày đáp án bài 3 và bài 4. Hỏi: “Vì sao khoảng trắng trong div p lại có ý nghĩa?”

    Học sinh

    Trả lời dự kiến: “Khoảng trắng chỉ quan hệ hậu duệ, p nằm bên trong div.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt đáp án và nhận xét về các lỗi thường gặp: cộng điểm sai, nhầm dấu chấm với khoảng trắng.

    Học sinh

    HS ghi lại các lỗi đã mắc và cách sửa vào vở.

Hoạt động 4: Vận dụng · 15 phút

Sửa mẫu thông báo để kết quả đúng như dự đoán

a) Mục tiêu

HS vận dụng các mức ưu tiên để thiết kế mẫu thông báo có màu và nền đúng ý, rồi kiểm tra bằng trình duyệt.

b) Nội dung

Mỗi nhóm viết tệp HTML có một đoạn p với hai class là canh-bao và loi, cùng một id là thong-bao. Nhóm đặt quy tắc sao cho thông báo có màu đỏ đậm, nền vàng và chữ đậm; sau đó chạy thử trên trình duyệt, ghi dự đoán trước, kết quả thực tế và lí do nếu khác. Không dùng !important.

c) Sản phẩm

Tệp bai17_nhom.html lưu UTF-8 có mã đúng và bảng gồm ba cột: bộ chọn, dự đoán, kết quả quan sát. Kết quả đúng: id #thong-bao quyết định màu đỏ đậm nếu được khai báo trên id; class canh-bao hoặc loi quyết định nền theo thứ tự khai báo khi đặc hiệu bằng nhau.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu yêu cầu thiết kế, nhắc nhóm tạo tệp đặt tên theo nhiệm vụ và lưu bằng UTF-8. Gợi ý: “Hãy dự đoán trước khi chạy thử.”

    Học sinh

    Nhóm nhận yêu cầu, phân công người viết mã và người ghi bảng kết quả.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quan sát, hỏi từng nhóm: “Nếu hai class cùng đặt nền thì khai báo nào thắng?”

    Học sinh

    Nhóm viết mã, mở trên trình duyệt, so sánh kết quả với dự đoán và chỉnh sửa khi cần.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 nhóm trình bày mã và bảng kết quả. Hỏi: “Nhóm đã làm gì khi kết quả khác dự đoán?”

    Học sinh

    Trả lời dự kiến: “Nhóm kiểm tra lại đặc hiệu, thấy id đang bị ghi đè bởi một quy tắc khác nên sửa thứ tự hoặc bộ chọn.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV nhận xét về cách thiết kế gọn, dễ bảo trì và nhấn mạnh việc kiểm tra bằng bằng chứng thay vì đoán mò.

    Học sinh

    HS ghi kết luận cuối cùng và lưu tệp để nộp cho GV.

Phiếu học tập

Phiếu học tập số 1

Nhiệm vụ: Xếp các bộ chọn theo độ đặc hiệu tăng dần.

  • Bộ chọn: p, p.ghi, .ghi, #ket-qua
  • Ghi bộ ba (id, class, phần tử) cho từng bộ chọn.
  • Xếp thứ tự từ thấp đến cao và viết lí do.
  • Trả lời: Vì sao không được cộng dồn số để so sánh? Vì sao p.ghi hơn .ghi nhưng yếu hơn #ket-qua?
  • Trả lời: Với 11 class và 1 id, bên nào thắng? Vì sao?

Phiếu học tập số 2

Bài 1: Bộ chọn nào có độ đặc hiệu cao nhất? A. p; B. p.ghi; C. .ghi; D. #ket-qua.
Bài 5: Với #k{color: maroon}.x{color: green} và <p id="k" class="x">A</p>, màu là gì? A. green; B. maroon; C. yellow; D. không có màu.
Bài 7: Đoạn mã có các quy tắc p { color: navy; }, .ghi { color: green; }, #ket-qua { color: maroon; }, p.ghi { font-weight: bold; }, .ghi { background-color: white; }, .ghi { background-color: yellow; } và phần tử <p id="ket-qua" class="ghi">Chiều cao 4 cm.</p>. Phân tích màu chữ, kiểu chữ và màu nền; giải thích từng xung đột, không dùng !important.
Bài 8: Có p { color: navy; } ở đầu tệp và p { color: green; } ở cuối tệp. Muốn mọi p thống nhất màu navy mà không dùng !important, em sửa thế nào và vì sao cần kiểm tra các trang dùng chung tệp?

Hướng dẫn về nhà

  • Hoàn thành phần còn dang dở của Phiếu học tập số 2 và ghi lại lời giải của bài 7, bài 8 vào vở.
  • Vào trang NeoEdu bài 17, làm lại phần bài tập tương tác và ghi số câu đúng trên tổng số câu.
  • Tạo tệp HTML riêng với một đoạn p có id và hai class mâu thuẫn, dự đoán màu và nền trước khi chạy thử; ghi bảng gồm bộ chọn, dự đoán, kết quả quan sát và nhận xét về điểm khác nhau.
  • Viết 3 đến 5 dòng trả lời câu hỏi: Vì sao không nên dùng !important để giải quyết mọi xung đột CSS?

Giáo án do NeoEdu soạn với sự hỗ trợ của AI, dựa trên nội dung bài học trên Học liệu. Thầy cô nên đọc lại và điều chỉnh cho phù hợp với học sinh của mình; bản Word để sửa trực tiếp.