Cách dụng CSS Selector

Trước khi tìm hiểu khái niệm CSS Selector là gì thì mình muốn nhắc lại kiến thức về HTML và CSS một chút. Như bạn đã biết các thẻ HTML thường sẽ có thẻ mở và thẻ đóngngoại trừ các thẻ không có thẻ đóng như

CSS Selector có thể chứa nhiều selector đơn giản. Giữa các selector đơn giản, chúng ta có thể bao gồm một selector kết hợp.

Có bốn bộ phối hợp khác nhau trong CSS:

  • Bộ chọn con cháu [cách nhau bởi khoảng trắng]
  • Bộ chọn con [>]
  • Bộ chọn anh chị em liền kề [+]
  • Bộ chọn anh chị em chung [~]

CSS Selector con cháu

Quan hệ con cháu phù hợp với tất cả các selector là con của một selectorđược chỉ định.

Ví dụ sau chọn tất cả các thẻ

bên trong các thẻ

:

div p{ background-color:yellow; }

CSS Selector cha con

Quan hệ con chọn tất cả các phần tử là các selector con ngay lập tức của một selector được chỉ định.

Ví dụ sau chọn tất cả các thẻ

là các phần tử con ruột của phần tử

:

div > p{ background-color:yellow; }

CSS Selector anh chị em liền kề.

Quan hệ anh chị em liền kề chọn tất cả các selector đứng gần nhất với một selector được chỉ định.

Ví dụ sau chọn tất cả các thẻ

được đặt ngay sau các thẻ

:

div + p{ background-color:yellow; }

CSS Selectoranh chị em

Quan hệ anh chị em là tất cả các selector được chọn đứng sau và phải đứng cùng cấp với selector được chỉ định.

Ví dụ sau đây chọn tất cả các thẻ

là anh em ruột của thẻ

miễn là

đứng sau

:

Ngoài ra còn có các cách viết css selector khác bạn tham khảo bảng sau nhé:

SelectorVí dụMô tả
.class.introChọn tất cả các thẻ có class=intro
.class1.class2.name1.name2Chọn tất cả các thẻ có class name1 và name2
.class1 .class2.name1 .name2Chọn tất cả các thẻ có class name2là con của thẻ có class name1
#id#firstnameChọn tất cả các thẻ có id=firstname
**Chọn tất cả
elementpChọn tất cả thẻ

element.classp.introChọn tất cả các thẻ

có class=intro

element,elementdiv, pChọn tất cả các thẻ
và tất cả các thẻ

element elementdiv pChọn tất cả các thẻ

là con của thẻ

element>elementdiv > pChọn tất cả các thẻ

elements where the parent is a

element
element+elementdiv + pChọn tất cả các thẻ

elements that are placed immediately after

elements
element1~element2p ~ ulChọn tất cả các thẻ
    xuất hiện phía sau thẻ

[attribute][target]Chọn tất cả các thẻ có thuộc tính target ví dụ như thẻ
[attribute=value][target=_blank]Chọn tất cả các thẻ có target=_blank
[attribute~=value][title~=flower]Chọn tất cả các thẻ có thuộc tính title chứa từ flower
[attribute|=value][lang|=en]Chọn tất cả các thẻ có thuộc tính lang bắt đầu bằng en
[attribute^=value]a[href^=https]Chọn những thẻ có giá trị bắt đầu là https
[attribute$=value]a[href$=.pdf]Chọn những thẻ có giá trị thuộc tính href kết thúc là .pdf
[attribute*=value]a[href*=fuvavi]Chọn những thẻ có thuộc tính href chứa từ fuvavi
:activea:activeChọn những thẻ a active
::afterp::afterChèn thêm gì đó vào phía sau thẻ

::beforep::beforeChèn thêm gì đó vào phía trước thẻ

:checkedinput:checkedChọn những thẻ đã check
:defaultinput:defaultChọn những thẻ mặc định
:disabledinput:disabledChọn những thẻ bị disabled [vô hiệu hóa]
:emptyp:emptyChọn những thẻ

trống không có text hoặc thẻ con bên trong

:enabledinput:enabledChọn những thẻ không bị vô hiệu hóa
:first-childp:first-childChọn những thẻ

đầu tiên ở bất kỳ vị trí nào. []

::first-letterp::first-letterChọn ký tự đầu tiên của thẻ

::first-linep::first-lineChọn dòng đầu tiên của thẻ

:first-of-typep:first-of-typeTương tự :first-child :first-of-type cũng chọn những thẻ

đầu tiên trong danh sách những thẻ

.

:focusinput:focusChọn những thẻ đang focus
:hovera:hoverChọn những thẻ đang rê chuột
:in-rangeinput:in-rangeChọn những thẻ có giá trị trong phạm vi min max
:indeterminateinput:indeterminateChọn những thẻ có giá trị chưa xác định
:invalidinput:invalidChọn những thẻ có giá trị không hợp lệ
:lang[language]p:lang[it]Selects every

element with a lang attribute equal to it [Italian]

:last-childp:last-childSelects every

element that is the last child of its parent

:last-of-typep:last-of-typeSelects every

element that is the last

element of its parent

:linka:linkChọn tất cả các thẻ unvisited links
:not[selector]:not[p]Selects every element that is not a

element

:nth-child[n]p:nth-child[2]Selects every

element that is the second child of its parent

:nth-last-child[n]p:nth-last-child[2]Selects every

element that is the second child of its parent, counting from the last child

:nth-last-of-type[n]p:nth-last-of-type[2]Selects every

element that is the second

element of its parent, counting from the last child

:nth-of-type[n]p:nth-of-type[2]Selects every

element that is the second

element of its parent

:only-of-typep:only-of-typeSelects every

element that is the only

element of its parent

:only-childp:only-childSelects every

element that is the only child of its parent

:optionalinput:optionalSelects input elements with no required attribute
:out-of-rangeinput:out-of-rangeSelects input elements with a value outside a specified range
::placeholderinput::placeholderSelects input elements with the placeholder attribute specified
:read-onlyinput:read-onlySelects input elements with the readonly attribute specified
:read-writeinput:read-writeSelects input elements with the readonly attribute NOT specified
:requiredinput:requiredSelects input elements with the required attribute specified
:root:rootSelects the documents root element
::selection::selectionSelects the portion of an element that is selected by a user
:target#news:targetSelects the current active #news element [clicked on a URL containing that anchor name]
:validinput:validChọn tất cả các thẻ input elements with a valid value
:visiteda:visitedChọn tất cả các thẻ visited links

Hi vọng bài viết này sẽ giúp các bạn hiểu rõ hơn về CSS Selector là gì? Nếu muốn mình chia sẻ thêm kiến thức gì hãy để lại bình luận bên dưới nhé. Cảm ơn bạn đã xem hết bài viết này.

Video liên quan

Chủ Đề