Khóa học IT CSS Cơ bản 029_Danh sách và Bảng
Danh sách
Trong CSS, kiểu danh sách có thể được tối ưu hóa thông qua các thuộc tính như list-style-type, list-style-image và list-style-position.
Loại danh sách
Định nghĩa loại danh sách, bao gồm danh sách không có thứ tự, danh sách có thứ tự và danh sách định nghĩa. none không hiển thị, disc hình tròn đặc, circle hình tròn, square hình vuông, decimal số, lower-alpha chữ thường, upper-alpha chữ hoa, decimal-leading-zero số có số 0 đầu, lower-roman số La Mã thường, upper-roman số La Mã hoa, v.v.
Ví dụ:
.ul-none{ list-style-type: none;}.ul-disc{ list-style-type: disc;}.ul-circle{ list-style-type: circle;}.ul-square{ list-style-type: square;}.ul-decimal{ list-style-type: decimal;}.ul-lower-alpha{ list-style-type: lower-alpha;}.ul-upper-alpha{ list-style-type: upper-alpha;}.ul-decimal-leading-zero{ list-style-type: decimal-leading-zero;}.ul-lower-roman{ list-style-type: lower-roman;}.ul-upper-roman{ list-style-type: upper-roman;} <ul class="ul-none"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-disc"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-circle"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-square"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-decimal"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-lower-alpha"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-upper-roman"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-decimal-leading-zero"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-lower-roman"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul> <ul class="ul-upper-roman"> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> <li>Demo loại danh sách</li> </ul>Hiệu ứng: 
Đánh dấu danh sách
Đặt vị trí đánh dấu của các mục danh sách (bên trong hoặc bên ngoài). inside bên trong, outside bên ngoài
Ví dụ:
.ul-inside{ list-style-position: inside;}.ul-outside{ list-style-position: outside;}li{ background-color: aquamarine;} <ul class="ul-inside"> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> </ul> <ul class="ul-outside"> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> </ul>Hiệu ứng: 
Hình ảnh danh sách
Đặt hình ảnh cho đánh dấu danh sách, có thể đặt thành địa chỉ URL của hình ảnh.
Ví dụ:
.ul-image1{ list-style-image: url("li1.png");}.ul-image2{ list-style-image: url("li2.png");}.ul-image3{ list-style-image: url("li3.png");} <ul class="ul-image1"> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> </ul> <ul class="ul-image2"> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> </ul> <ul class="ul-image3"> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> </ul>Hiệu ứng:
Kích thước được đặt thông qua ul có thể làm cho hình ảnh bị kéo dãn hoặc nén, vì vậy tốt nhất nên sử dụng công cụ chỉnh sửa để đặt kích thước gốc của hình ảnh. Nếu bạn cần điều chỉnh kích thước hiển thị của hình ảnh trong các mục danh sách mà không thay đổi bản thân hình ảnh, bạn có thể sử dụng thuộc tính background-image của li để kiểm soát linh hoạt hình ảnh danh sách.
Ví dụ:
li{ list-style-type: none; background-image: url("li1.png"); background-size: 10px 10px; background-repeat: no-repeat; background-position: 2px center; padding-left: 20px;} <ul> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> <li>Demo đánh dấu danh sách</li> </ul>Hiệu ứng:
Viết tắt: Thuộc tính list-style được sử dụng để đặt đồng thời ba thuộc tính kiểu cho đánh dấu mục danh sách: list-style-type, list-style-position và list-style-image. Các giá trị có thể được bỏ qua, nhưng thứ tự không thể thay đổi.
Ví dụ:
ul{ list-style: square inside url('li1.png');}Bảng
Trong CSS, giao diện và bố cục của bảng có thể được kiểm soát thông qua nhiều thuộc tính như border.
border
Định nghĩa viền của bảng, có thể đặt chiều rộng, màu sắc và kiểu của viền.
Ví dụ:
table { border: 1px solid red;}<table> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr></table>Hiệu ứng:

th td
Trong CSS, th và td có thể kiểm soát kiểu của tiêu đề bảng, hàng bảng và ô dữ liệu bảng.
Ví dụ:
table { border: 1px solid red;}th { background-color: #d6d7d8; /* Đặt màu nền tiêu đề */ color: #333; /* Đặt màu văn bản tiêu đề */ font-weight: bold; /* Đặt văn bản tiêu đề in đậm */ padding: 10px; /* Đặt padding tiêu đề */ text-align: center; /* Đặt căn giữa văn bản */}td { border: 1px solid green; /* Đặt viền dưới giữa các hàng */ padding: 8px; /* Đặt padding ô */ text-align: center; /* Đặt căn giữa văn bản */} <table> <tr> <th>Demo bảng 1</th> <th>Demo bảng 2</th> <th>Demo bảng 3</th> <th>Demo bảng 4</th> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table>Hiệu ứng:

border-collapse
Thuộc tính được sử dụng để kiểm soát cách các viền liền kề của bảng được hợp nhất.
- separate: Không hợp nhất viền, viền bảng vẫn độc lập.
- collapse: Hợp nhất viền, viền bảng được hợp nhất lại với nhau.
Ví dụ:
.table1 { border: 2px solid red; border-collapse: separate;}.table2 { border: 2px solid red; border-collapse: collapse;} <table class="table1"> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table> <table class="table2"> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table>Hiệu ứng:

border-spacing
Định nghĩa khoảng cách viền của bảng, có thể đặt khoảng cách giữa các viền.
Ví dụ:
table { border: 1px solid red; border-spacing: 10px;} <table> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table>Hiệu ứng:

table-layout
Định nghĩa phương pháp bố cục của bảng.
- auto: Bố cục tự động, chiều rộng và chiều cao của bảng được xác định bởi nội dung.
- fixed: Bố cục cố định, chiều rộng và chiều cao của bảng được xác định bởi các giá trị được chỉ định.
Ví dụ:
.table1 { border: 1px solid red; table-layout: auto; width: 100%;}.table2 { border: 1px solid red; table-layout: fixed; width: 100%;}th, td { border: 1px solid red;} <table class="table1"> <tr> <td>Demo bảng 1 Demo bảng 1 Demo bảng 1 Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table> <br> <table class="table2"> <tr> <td>Demo bảng 1 Demo bảng 1 Demo bảng 1 Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table>Hiệu ứng:

caption-side
Định nghĩa vị trí của tiêu đề bảng, có thể đặt các giá trị sau:
top: Tiêu đề ở phía trên của bảng.bottom: Tiêu đề ở phía dưới của bảng.
Ví dụ:
.table1 { border: 1px solid red; caption-side: top;}.table2 { border: 1px solid red; caption-side: bottom;} <table class="table1"> <caption>Demo tiêu đề ABC123</caption> <tr> <td>Demo bảng 1 Demo bảng 1 Demo bảng 1 Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table> <br> <table class="table2"> <caption>Demo tiêu đề ABC123</caption> <tr> <td>Demo bảng 1 Demo bảng 1 Demo bảng 1 Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> <tr> <td>Demo bảng 1</td> <td>Demo bảng 2</td> <td>Demo bảng 3</td> <td>Demo bảng 4</td> </tr> </table>Hiệu ứng: 