1. Khung là gì?
Khung (border) của một phần tử trong trang web là đường viền bao quanh phần tử đó. Khung giúp phân chia các vùng nội dung, làm nổi bật tiêu đề, đoạn văn hoặc khối thông tin. Trong CSS, khung được tạo bằng ba thuộc tính chính: kiểu đường viền, độ dày và màu sắc.
1.1 Mô hình hộp
Trong CSS, mỗi phần tử được xem như một hộp chữ nhật gồm bốn lớp, tính từ trong ra ngoài:
- Nội dung (content): chữ, ảnh…; kích thước đặt bằng
width,height. - Vùng đệm (
padding): khoảng trống giữa nội dung và khung, mang màu nền của phần tử. - Khung (
border): đường viền bao quanh vùng đệm. - Lề (
margin): khoảng trống bên ngoài khung, ngăn cách phần tử với các phần tử xung quanh; lề luôn trong suốt.
- 1 giá trị:
padding: 10px;cả bốn cạnh bằng 10px. - 2 giá trị:
margin: 10px 20px;trên–dưới 10px, phải–trái 20px. - 4 giá trị:
padding: 5px 10px 15px 20px;lần lượt trên, phải, dưới, trái (theo chiều kim đồng hồ). - Từng cạnh:
padding-top,margin-left…
Một khối có width: 200px; padding: 10px; border: 2px solid black; margin: 15px;. Chiều rộng hộp tính đến mép ngoài khung là bao nhiêu?
Lời giải
Theo mặc định, width chỉ là chiều rộng phần nội dung. Chiều rộng đến mép ngoài khung là (px). Tính cả lề thì phần tử chiếm (px).
2. Ba thuộc tính cơ bản của khung
2.1 Thuộc tính kiểu đường viền: border-style
border-style quy định hình dáng của đường viền. Đây là thuộc tính bắt buộc: nếu không khai báo kiểu đường viền thì khung sẽ không xuất hiện, dù bạn đã đặt độ dày và màu sắc.
Các giá trị thường dùng:
none: không có đường viền.solid: nét liền.dashed: nét gạch đứt.dotted: nét chấm.double: hai đường song song.
2.2 Thuộc tính độ dày: border-width
border-width quy định độ dày của đường viền. Có thể dùng từ khoá hoặc độ dày có đơn vị đo kèm theo.
Các giá trị thường gặp:
thin: mảnh.medium: trung bình (mặc định).thick: dày.- Giá trị đo cụ thể:
2px,3pt,0.5em.
Khi dùng từ khoá, trình duyệt tự quyết định số liệu. Trong bài thực hành, nên dùng pixel (px) để kiểm soát chính xác độ dày khung.
2.3 Thuộc tính màu: border-color
border-color xác định màu của đường viền. Nếu không khai báo, trình duyệt lấy màu chữ hiện tại làm màu khung.
Ba cách khai báo màu phổ biến:
- Tên màu:
red,green,blue,gray. - Mã hexa:
#ff0000,#8e44ad. - Giá trị RGB:
rgb(255,0,0).
3. Thuộc tính viết tắt và viết theo từng cạnh
Thay vì ba dòng riêng biệt, ta gộp border-width, border-style, border-color vào một dòng duy nhất theo thứ tự:
border: [border-width] [border-style] [border-color];
Ví dụ: border: 2px solid blue; tạo khung dày 2 pixel, nét liền, màu xanh.
Khi chỉ cần đường viền ở một hoặc vài cạnh, dùng các thuộc tính riêng:
border-top: cạnh trên.border-right: cạnh phải.border-bottom: cạnh dưới.border-left: cạnh trái.
Cú pháp cho từng cạnh cũng theo dạng viết tắt: border-top: [width] [style] [color];
borderđặt khung cho cả bốn cạnh.border-top,border-right,border-bottom,border-leftchỉ đặt cho cạnh được gọi tên.- Nếu chỉ khai báo
border-topmà không cóborder, các cạnh còn lại không có khung.
4. Ví dụ minh họa
Cho đoạn mã HTML và CSS sau. Hãy chỉ ra kết quả hiển thị khung của từng phần tử.
Lời giải · 2 bước
Đoạn mã:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Trang tinh</title>
<style>
h1 {
text-align: center;
border: 3px double green;
}
.khung_do {
border: 2px dashed red;
}
.khung_duoi {
border-bottom: 4px solid orange;
}
</style>
</head>
<body>
<h1>Tieu de chinh</h1>
<p class="khung_do">Doan van co khung net dut mau do.</p>
<p class="khung_duoi">Chi co vien ben duoi.</p>
</body>
</html>Bước 2
Phân tích:
- Thẻ
h1có khung dày 3px, kiểu hai đường (double), màu xanh lá. - Phần tử lớp
khung_docó khung nét gạch đứt (dashed), độ dày 2px, màu đỏ ở cả bốn cạnh. - Phần tử lớp
khung_duoichỉ có đường viền dày 4px, nét liền, màu cam ở cạnh dưới; các cạnh trên, trái, phải không có khung.
Viết bộ chọn CSS tạo khung cho bốn cạnh, dày 2px, kiểu solid, màu tím bằng mã hexa #8e44ad.
Lời giải · 2 bước
.khung {
border: 2px solid #8e44ad;
}Bước 2
Hoặc viết đầy đủ:
.khung {
border-width: 2px;
border-style: solid;
border-color: #8e44ad;
}5. Lưu ý và lỗi hay gặp
- 1.Thiếu kiểu đường viền:
border: 4px red;không hiện khung vì thiếuborder-style. Cầnborder: 4px solid red; - 2.Ghi số không có đơn vị:
border-width: 2;là không hợp lệ khi muốn dùng độ dày cụ thể. Phải viết2px. - 3.Nhầm
nonevớihidden: cả hai đều ẩn đường viền, nhưng với bảng biểu sự khác biệt có thể xuất hiện. Trong bài khung đơn thuần, hai giá trị đều khiến khung biến mất. - 4.Chỉ đặt
borderrồi lại ghi đèborder-topthiếu style: nếu chỉ ghiborder-top: 2px blue;thì cạnh trên sẽ không hiện do thiếuborder-style.
Khi viết tắt border, các thành phần không khai báo sẽ lấy giá trị mặc định:
border-widthmặc định làmedium.border-stylemặc định lànone.border-colormặc định là màu chữ hiện tại.
6. Ôn tập
Hãy trả lời các câu hỏi sau.
- 1.Thuộc tính bắt buộc để khung hiện ra là thuộc tính nào?
- 2.Vì sao đoạn mã
border: 2px black;không tạo được khung trên trang web? - 3.Hãy viết mã CSS tạo khung cho thẻ
h2gồm: dày 1px, nét liền, màu xanh dươngblue. - 4.Làm thế nào để chỉ hiển thị đường viền ở cạnh trên của một đoạn văn?
- 5.Liệt kê các giá trị kiểu đường viền thuộc nhóm đường đứt hoặc điểm.
Gợi ý trả lời
- 1.Thuộc tính
border-style. - 2.Vì thiếu
border-style; mặc định lànonenên không có đường viền. Cần thêmsolid,dashedhoặc kiểu phù hợp. - 3.
h2 { border: 1px solid blue; }hoặc viết đầy đủ ba dòng vớiborder-width: 1px;,border-style: solid;,border-color: blue;. - 4.Dùng
border-top: [width] [style] [color];. Ví dụ:border-top: 2px solid black;. - 5.
dashed(nét gạch),dotted(nét chấm).