1. CSS là gì? Vai trò của CSS
CSS (viết tắt của Cascading Style Sheets) là ngôn ngữ dùng để mô tả cách trình bày của các phần tử trong trang web: màu chữ, kiểu chữ, cỡ chữ, căn lề, giãn dòng, khoảng cách giữa các chữ cái, ...
Trong một trang web có hai việc tưởng chừng khác nhau nhưng lại gắn chặt với nhau:
- HTML dùng để tạo nội dung và cấu trúc: tiêu đề, đoạn văn, danh sách, bảng, liên kết, ...
- CSS dùng để định dạng, làm trang web đẹp và dễ đọc hơn.
Nhờ phân chia rõ “ai làm nội dung, ai làm hình thức”, ta có thể thay đổi giao diện của nhiều trang chỉ bằng cách sửa một tệp CSS dùng chung; việc sửa đổi, bảo trì cũng thuận tiện hơn nhiều so với viết định dạng cục bộ từng chỗ.
2. Cấu trúc một quy tắc CSS
bo_chon {
thuoc_tinh_1: gia_tri_1;
thuoc_tinh_2: gia_tri_2;
}Một quy tắc CSS gồm hai phần chính:
- Bộ chọn (selector): cho biết phần tử nào của trang web sẽ được định dạng, ví dụ h1, p.
- Khối khai báo: đặt trong cặp dấu ngoặc nhọn, gồm nhiều dòng dạng “thuộc tính: giá trị”, các dòng này phân cách nhau bằng dấu chấm phẩy.
Ví dụ quy tắc sau làm cho mọi thẻ h1 có chữ màu đỏ, cỡ 20 pixel:
h1 {
color: red;
font-size: 20px;
}
3. Đưa CSS vào trang web
Có ba cách thường dùng:
- 1.
Viết trực tiếp trong thẻ HTML (CSS nội tuyến, inline): dùng thuộc tính style ở thẻ mở.
<h1 style="color: red; font-size: 20px;">Tieu de</h1>
- 2.
Viết khối quy tắc trong thẻ style đặt ở phần head của trang (CSS trong trang, internal):
<style> h1 { color: red; font-size: 20px; } </style> - 3.
Viết trong tệp riêng có đuôi .css rồi liên kết vào trang (CSS ngoài, external). Tệp style.css chỉ chứa các quy tắc CSS:
h1 { color: red; font-size: 20px; }Trong phần head của trang HTML, viết thêm dòng liên kết:
<link rel="stylesheet" href="style.css">
4. Các thuộc tính định dạng văn bản thường dùng
| Thuộc tính | Giá trị thường dùng | Tác dụng |
|---|---|---|
| color | red; green; #FF0000; rgb(255,0,0) | Màu chữ |
| font-family | Arial; Verdana; "Times New Roman" | Kiểu chữ |
| font-size | 16px; 12pt; 120%; 1.5em | Cỡ chữ |
| font-weight | normal; bold; 700 | Độ đậm, nhạt của chữ |
| font-style | normal; italic | Chữ thường hay chữ nghiêng |
| text-align | left; right; center; justify | Căn trái, phải, giữa, đều hai bên |
| text-indent | 20px; 2em | Thụt đầu dòng đoạn văn |
| line-height | 1.5; 150%; 24px | Giãn cách giữa các dòng |
| letter-spacing | 1px; 0.5em | Khoảng cách giữa các chữ cái |
| text-decoration | underline; line-through; none | Gạch chân, gạch ngang, bỏ gạch chân mặc định |
| text-transform | none; uppercase; lowercase | Chuyển chữ thường thành chữ hoa (và ngược lại) |
5. Một số bộ chọn thường dùng
| Cách viết | Tên gọi | Ý nghĩa |
|---|---|---|
| p { ... } | bộ chọn thẻ | Định dạng mọi thẻ p của trang |
| .chu-do { ... } | bộ chọn lớp (class) | Định dạng mọi phần tử có class="chu-do" |
| #mo-dau { ... } | bộ chọn định danh (id) | Định dạng phần tử có id="mo-dau" |
| div p { ... } | bộ chọn con/hậu duệ | Định dạng thẻ p nằm trong thẻ div, kể cả khi p không phải con trực tiếp |
| h1, h2 { ... } | bộ chọn nhóm | Áp dụng cho cả h1 và h2 |
Thuộc tính class có thể dùng cho nhiều phần tử; thuộc tính id chỉ nên xuất hiện một lần trong một trang, nhờ vậy bộ chọn #mo-dau sẽ chỉnh sửa đúng một chỗ duy nhất.
6. Ví dụ minh hoạ
Viết CSS trong trang (dùng thẻ style) cho trang giới thiệu bản thân: thẻ h1 có chữ màu xanh lam (blue), cỡ 24px, căn giữa; mọi đoạn p dùng phông Arial, cỡ 16px, giãn dòng 1.5; đoạn thuộc lớp “dong-dau” còn thụt đầu dòng 2em.
Lời giải · 2 bước
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Gioi thieu ban than</title>
<style>
h1 {
color: blue;
font-size: 24px;
text-align: center;
}
p {
font-family: Arial, sans-serif;
font-size: 16px;
line-height: 1.5;
}
.dong-dau {
text-indent: 2em;
}
</style>
</head>
<body>
<h1>Gioi thieu ban than</h1>
<p class="dong-dau">Em ten la ...</p>
<p>So thich cua em la ...</p>
</body>
</html>Bước 2
Giải thích:
- Bộ chọn h1 tác động lên thẻ h1: chữ màu blue, cỡ 24px, căn giữa.
- Bộ chọn p tác động lên mọi thẻ p: dùng phông Arial, nếu máy không có thì thay bằng phông sans-serif; cỡ 16px; giãn dòng 1.5 lần.
- Bộ chọn .dong-dau chỉ tác động lên phần tử có thuộc tính class="dong-dau", thêm hiệu ứng thụt đầu dòng.
Tách phần CSS ở ví dụ trên sang tệp dinhdang.css rồi liên kết vào trang.
Lời giải · 3 bước
Tệp dinhdang.css chỉ chứa các quy tắc CSS:
h1 {
color: blue;
font-size: 24px;
text-align: center;
}
p {
font-family: Arial, sans-serif;
font-size: 16px;
line-height: 1.5;
}
.dong-dau {
text-indent: 2em;
}Bước 2
Trong phần head của trang HTML, bỏ thẻ style và thay bằng dòng liên kết:
<link rel="stylesheet" href="dinhdang.css">
Bước 3
Hiệu quả hiển thị giống hệt, nhưng nay chỉ cần sửa một tệp là thay đổi được mọi trang cùng dùng tệp đó.
7. Lưu ý và lỗi hay gặp
- Mỗi khai báo trong khối ngoặc nhọn nên kết thúc bằng dấu chấm phẩy. Thiếu dấu chấm phẩy giữa hai khai báo là lỗi thường gặp, khiến cả hai khai báo đó bị hiểu sai và bị bỏ qua.
- Màu có thể viết theo tên (red, blue), theo hệ thập lục phân #RRGGBB (ví dụ #FF0000 là đỏ, #000000 là đen, #FFFFFF là trắng) hoặc theo dạng rgb thành phần đỏ–lục–lam, mỗi thành phần từ 0 đến 255.
- Khi liệt kê nhiều phông chữ, tên phông có dấu cách nên đặt trong cặp dấu nháy, ví dụ
font-family: "Times New Roman", serif;. - Cỡ chữ khi viết bằng số dương cần ghi kèm đơn vị (px, pt, em, %); ngoài ra font-size còn nhận các từ khoá như small, medium, large. Riêng line-height có thể viết không đơn vị (1.5) vì đó là hệ số nhân với cỡ chữ để tính chiều cao dòng.
- Tệp .css chỉ chứa quy tắc CSS; nếu lồng thẻ style vào trong tệp .css thì không hoạt động.
- CSS nội tuyến (thuộc tính style) khó tái sử dụng, chỉ nên dùng khi cần định dạng riêng một phần tử; khi có nhiều trang thì nên chuyển sang tệp CSS ngoài.
- Khi các quy tắc cùng tác động lên một phần tử, thuộc tính không xung đột vẫn được áp dụng đồng thời; nếu xung đột ở cùng một thuộc tính, quy tắc cụ thể hơn (chẳng hạn .chu-do so với p) được ưu tiên; nếu cùng độ cụ thể thì quy tắc khai báo sau được áp dụng.
- Quên đóng dấu ngoặc nhọn cũng là lỗi hay gặp; cần kiểm tra {} cân đối trước khi lưu tệp.
8. Câu hỏi ôn tập
- 1.Nêu hai thành phần chính của một quy tắc CSS và giải thích ý nghĩa của từng thành phần.
- 2.Có mấy cách đưa CSS vào trang web? Cách nào tiện nhất khi ta có nhiều trang cùng dùng chung một bộ định dạng? Vì sao?
- 3.Viết quy tắc CSS để thẻ h2 có chữ màu xanh lá (green), phông Verdana, cỡ 18px, căn giữa.
- 4.Phân biệt bộ chọn lớp và bộ chọn định danh (id).
- 5.Cho quy tắc p { color: #FF0000; font-size: 150%; } — quy tắc này tác động lên những phần tử nào và thay đổi những gì?
- 6.Trong trang HTML, để liên kết với tệp dinhdang.css ta dùng thẻ gì và đặt thẻ đó ở đâu?
Gợi ý trả lời
- 1.Gồm bộ chọn (xác định phần tử được định dạng) và khối khai báo đặt trong ngoặc nhọn, chứa các cặp thuộc tính: giá trị phân cách bằng dấu chấm phẩy.
- 2.Ba cách: nội tuyến (thuộc tính style), trong trang (thẻ style), CSS ngoài (tệp .css). Cách dùng tệp CSS ngoài tiện nhất vì sửa một tệp là áp dụng cho mọi trang liên kết.
- 3.h2 { color: green; font-family: Verdana; font-size: 18px; text-align: center; }
- 4.Bộ chọn lớp viết .ten, dùng được cho nhiều phần tử; bộ chọn id viết #ten, chỉ nên dùng cho một phần tử duy nhất trong trang.
- 5.Tác động lên mọi thẻ p: chữ có màu đỏ #FF0000 và cỡ chữ bằng 150% cỡ chữ của phần tử cha (thường là cỡ mặc định của trình duyệt).
- 6.Dùng thẻ link, có thuộc tính rel là stylesheet và href trỏ đến tệp; thẻ này đặt trong phần head.