2009-08-15 49 views

Trả lời

5

Trong thuật ngữ CSS, một lớp là bộ chọn bắt đầu bằng một điểm dừng đầy đủ, ví dụ:

.foo { ... } 

Nó sẽ được sử dụng trong các hình thức

<div class="foo"> 

Việc sử dụng "class" là theo nghĩa "một bộ hoặc chủng loại vật có một đặc trưng và khác biệt từ người khác bằng cách loại phổ biến hoặc chất lượng ", thay vì vay mượn từ thuật ngữ OO.

Lớp giả là "không thật sự" khi tác nhân người dùng xác định thời gian và/hoặc nội dung đủ điều kiện (như :hover, :active, v.v ...).

4

Đó là pseudo vì bạn không tạo; trình duyệt 'tạo' nó và cho phép bạn đặt nó để thay đổi giao diện của liên kết khi nó ở trạng thái đó.

+0

nhưng tại sao lại là lớp học? Nếu bạn chỉ có thể di chuột hoặc một khu vực của màn hình tại một thời điểm, thì chỉ một p có thể thực hiện quy tắc CSS bất kỳ lúc nào. Lớp không ngụ ý một số phần tử thuộc về một số nhóm phổ biến và quy tắc kiểu lớp có nghĩa là tất cả các phần tử đó sẽ kế thừa quy tắc đó không? – Anthony

+0

@Anthony: Lớp giả có thể được giả định là trạng thái. Và mọi phần tử có trạng thái * hover * có thể được phân loại bằng ': hover'. Vì vậy, bất cứ khi nào một phần tử 'a' nhận trạng thái * hover *, nó có thể được chọn bằng': hover'. – Gumbo

1

Từ w3c CSS2 selector spec:

CSS giới thiệu các khái niệm về giả yếu tố và pseudo-classes cho phép định dạng dựa trên thông tin đó nằm bên ngoài cây tài liệu.

  • Phần tử giả tạo trừu tượng về cây tài liệu ngoài cây được chỉ định bởi ngôn ngữ tài liệu. Ví dụ, ngôn ngữ tài liệu không cung cấp cơ chế để truy cập vào chữ cái đầu tiên hoặc dòng đầu tiên của nội dung của phần tử. Các phần tử giả CSS cho phép các nhà thiết kế biểu định kiểu tham chiếu đến thông tin không thể tiếp cận này. Các phần tử giả cũng có thể cung cấp cho nhà thiết kế biểu định kiểu cách gán kiểu cho nội dung không tồn tại trong tài liệu nguồn (ví dụ: trước: và sau khi phần tử giả cung cấp quyền truy cập vào nội dung được tạo).

  • Các lớp giả phân loại các yếu tố về đặc điểm khác với tên, thuộc tính hoặc nội dung của chúng; về các đặc điểm nguyên tắc không thể suy ra từ cây tài liệu. Các lớp giả có thể là động, theo nghĩa là một phần tử có thể lấy hoặc mất một lớp giả trong khi người dùng tương tác với tài liệu. Các trường hợp ngoại lệ là ': con đầu tiên', có thể được suy ra từ cây tài liệu và ': lang()', có thể được suy ra từ cây tài liệu trong một số trường hợp.

Vì vậy, về cơ bản, một pseudo-class là một cái gì đó bạn có thể đính kèm một phong cách, nhưng bạn không bao giờ in ra cho mình trong HTML. Ngoài ra, một pseudo-clas có thể được thu thập và bị mất tùy thuộc vào tương tác của người dùng với giao diện người dùng.

1

Với CSS2/3 cho phép quy định yếu tố phức tạp hơn (những thứ như đầu vào [type = checkbox] và những thứ tương tự, thuật ngữ pseudo-class có vẻ tên và ghi ngày hơn.

Tuy nhiên, giả lớp là chỉ có các định danh CSS (nhiều hay ít) thay đổi đáng tin cậy với các tương tác của người dùng Với các bộ chọn thuộc tính và những gì không, hầu hết các trình duyệt có xu hướng đi với trạng thái của tất cả các phần tử tải trang và bất kỳ thay đổi nào được bỏ qua.Nhưng với các lớp giả, chúng thực sự thay đổi kiểu khi lớp giả trở thành true (hoặc không đúng). Vì vậy, với định nghĩa cụ thể đó, chúng là các lớp vì quy tắc áp dụng cho bất kỳ phần tử nào có cùng "trạng thái" và do đó có thể được coi là "lớp", nhưng nó giả vì nó không đúng lớp được định nghĩa thuộc tính và bởi vì "lớp" có thể có hoặc không đúng vào bất kỳ thời điểm nào mà trang được xem. Nó cũng thú vị để lưu ý, tôi nghĩ rằng, với một số lớp giả dựa trên giao diện người dùng (tôi đang suy nghĩ cụ thể của :hover) chỉ có một yếu tố tại bất kỳ thời gian nhất định thực sự có thể có "lớp" để nó gần như nhiều hơn một id giả, dựa trên định nghĩa trên của tôi.

Các vấn đề liên quan