Trước khi tìm hiểu khái niệm selector là gì thì mình muốn nhắc lại kiến thức về HTML và CSS một chút xíu. Như bạn biết các thẻ HTML thường sẽ có thẻ mở <tag> và thẻ đóng </tag> và bên trong thẻ đó có thể có nhiều thẻ khác nữa. Vậy ta sẽ gọi thẻ tag đó là thẻ cha và các thẻ nằm bên trong nó là thẻ con.1 2 3 4 5 | <div id="parent"> <div id="children"> </div></div> |
id="parent" là thẻ cha, còn thẻ div có id="children" là thẻ con.1 2 3 | div{ background: red} |
1 2 3 4 5 6 7 8 | <div> <p> Nội dung sẽ có màu đỏ vì nó nằm trong thẻ p. </p></div><p> Nội dung không có màu vì nó nằm ngoài thẻ p.</p> |
1 2 3 | div p{ color: red} |
strong nằm trong thẻ p và thẻ p nằm trong thẻ div.1 2 3 4 5 6 | <div> <p> <strong>Nội dung sẽ có màu đỏ vì nó nằm trong thẻ p.</strong> <span>Nội dung không có màu vì nó nằm ngoài thẻ p.</span> </p></div> |
1 2 3 | div p strong{ color: red} |
CSS cho một thẻ DIV nào đó thôi thì bạn có thể chọn giải pháp là Selector theoID của HTML. Chúng ta sử dụng dấu thăng (#) để đại diện cho ID.div có id="active".1 2 3 4 5 6 | <div id="active"> ACTIVE</div><div> NON-ACTIVE</div> |
1 2 3 | #active{ background: red} |
1 2 3 | div#active{ background: red} |
div#active có nghĩa tìm là thẻ div có id là active.class ngược lại, nghĩa là bạn có thể cho nhiều thẻ HTML có cùng tên class, điều này khá tiện lợi cho CSS. Ví dụ bạn cần style cho một số thẻ div nào đó thôi thì nếu bạn dùng ID thì không hay lắm vì phải viết nhiều lần, chính vì vậy ta sẽ chọn class. Selector cho class sẽ là dấu chấm (.).class="bg-yellow"1 2 3 4 5 6 7 8 9 10 11 12 | <div class="bg-yellow"> Yellow</div><div> NONE</div><div class="bg-yellow"> Yellow</div><div class="bg-yellow"> Yellow</div> |
1 2 3 | .bg-yellow{ background: yellow} |
class="bg-yellow" thêm một thẻ p nữa nhưng bạn muốn chỉ có thẻ div là có tác dụng thì làm thế nào? Đơn giản bạn chỉ cần thêm tên thẻ div đằng trước dấu chấm là được.1 2 3 | div.bg-yellow{ background: yellow} |
ID thì trong mỗi trang web nó là duy nhất nên thông thường chúng ta hay dùng nó ở những vị trí không có tính chất lặp đi lặp lại nhiều lầnClass thì ta có thể đặt nhiều vị trí, chính vì vậy nếu website bạn có nhiều block giống nhau thì hãy chọn classID hay class thì đều tuân theo quy luật phâp cấp, nghĩa là khi truy vấn selector thì sẽ ghi cấp cha rồi tới cấp con. Ví dụ giờ viết CSS cho thẻ h2 có class="title" nằm trong thẻ div có id="main".1 2 3 | div#mian h2.title{ } |
div#main: chọn thẻ div có id="main" div #mian: Chọn thẻ có id="main" nằm trong thẻ div