UL và LI nằm trong serieHTML căn bản.UL dùng để chứa các thẻLI và đương nhiên để có hai cấp thì chúng ta phải lồng thêm một cặp UL và LI nữa.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <ul> <li> <a href="#">Trang Chủ</a> </li> <li> <a href="#">Tin Tức</a> <ul> <li> <a href="#">Tin Trong Nước</a> </li> <li> <a href="#">Tin Nước Ngoài</a> </li> </ul> </li></ul> |

position:relative và menu con sẽ có giá trị position:absolute).1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <body> <ul> <li> <a href="#">Trang Chủ</a> </li> <li> <a href="#">Tin Tức</a> <ul> <li> <a href="#">Tin Trong Nước</a> </li> <li> <a href="#">Tin Nước Ngoài</a> </li> </ul> </li> <li> <a href="#">Khoa Học</a> <ul> <li> <a href="#">Viễn Tưởng</a> </li> <li> <a href="#">Sáng Tạo</a> </li> </ul> </li> <li> <a href="#">Pháp Luật</a> <ul> <li> <a href="#">Văn Bản</a> </li> <li> <a href="#">Kiến Nghị</a> </li> </ul> </li> </ul></body> |
1 2 3 | ul{ width: 250px;} |
1 2 3 4 5 6 7 8 9 10 | ul li{ height: 30px; /*Cao 30px*/ line-height: 30px; /*Cho chữ canh giữa 30px*/ list-style: none; /*Không hiển thị dấu chấm đầu menu*/ padding: 0px 10px; /*đẩy nôi dung menu vào 10cm (trái + phải)*/ background: pink; /*màu nèn màu hồng*/ border: solid 1px red; /*đường viền màu đỏ*/ border-bottom: none; /*vì menu liền kề nhau nên border-bottom không cần*/ position: relative; /*chọn làm khung*/} |
border-bottom: none nên ở menu cuối cùng sẽ không có đường viền ở bottom. Để giải quyết nó thì ta sẽ thêm border-bottom cho thẻ li:last-child (thẻ li cuối cùng).1 2 3 | ul li:last-child{ border-bottom: solid 1px red;} |
ul li ul.1 2 3 4 5 6 | ul li ul{ position: absolute; top: -1px; /*cho ngang hàng với menu cha, vì menu cha có border - 1 nên ta phải trừ đi 1*/ right: -250px; /*vì nàm ngoài khung và dài 250px nên là số âm 250px */ display: none; /*Ban đầu sẽ không hiển thị*/} |
li menu cha.1 2 3 | ul li:hover ul{ display: block;} |