Giải thích như vậy cũng mù mờ lắm, để thử cái này của mình nhé
( Không biết bạn đã xem qua bài tut của mình chưa nhỉ, thôi post qua đây nhé )
Tiện đây giải thích điểm khác nhau của cả 3 thứ : descendant selector, child selector và first-child selector
Đầu tiên mình có code HTML :
Code:
<p class="my-class">p.my-class</p>
<div id="my-id">
<ol>
<li>div ol li</li>
<li>div ol li</li>
<li>
<p class="my-class">div ol li p.my-class </p>
</li>
</ol>
</div>
Tiếp theo mình có code CSS như sau :
Code:
/* Group Selectors */
p,ol,li { border:1px solid black; padding-left:10px; font-family:monospace;
margin:10px; margin-left:0px; }
ol { margin-left:0px; padding-left:40px; margin-top:20px; }
/* Position Selectors */
div *.my-class { font-size:1.2em; font-weight:bold; } /* Descendant Selector */
#my-id p { background-color:gold; } /* Descendant Selector */
#my-id > * { border:3px solid black; } /* Child Selector */
li:first-child { font-weight:bold; color:red; } /* First-child Selector */
li + li { font-style:italic; color:blue; } /* Sibling Selector */
Ở VD này, mình minh họa cho cả bài viết, tuy nhiên ở đây ta sẽ chỉ chú ý đến 4 dòng cuối của CSS.
Đầu tiên là :
Code:
#my-id p { background-color:gold; } /* Descendant Selector */
Cái này thì dễ hiểu, nó sẽ chọn toàn bộ các tag <p> có trong #my-id
Kế tiếp ta có :
Code:
#my-id > * { border:3px solid black; } /* Child Selector */
Cái này hay đây, bác thử chạy thực nghiệm xem kết quả nhé.
Ta chọn tất cả child của #my-id, khi đó, sẽ chỉ có duy nhất tag ol được chọn, vì theo cấu trúc trên, rõ ràng chỉ có ol là cấp con trực tiếp của #my-id . Các tag li, và p là con, cháu của tag ol hoàn toàn không được trọn ( Nếu ở đây ta viết #my-id * thì cả ol, li, p sẽ đều được chọn)
Kế đến là :
Code:
li:first-child { font-weight:bold; color:red; } /* First-child Selector */
Đoạn này nói nôm na là nó sẽ chọn tag li đầu tiên, thế thôi ( Bác xem thử http://jt-vn.com/blog/wp-content/css.../example2.html nhá )
Bonus:
Code:
li + li { font-style:italic; color:blue; } /* Sibling Selector */
Hà hà, cái này hay nè, nó chọn tag li nào mà trước nó ( ngang cấp nhá) là 1 tag li , kết quả ta sẽ có tag li từ thứ 2 trở đi được chọn
Tham khảo thêm tại đây nhé http://www.jt-vn.com/blog/index.php/cssxhtml/23/
Bookmarks