2011-11-11 59 views
12

tôi tò mò tại sao sử dụng > hoặc combinators khác không ảnh hưởng đến specificity bộ chọn CSS, tức là lý do tại sao div span (phù hợp với một khoảng đâu đó bên trong một div) và div > span (phù hợp với một khoảng là con trực tiếp của một div) được coi là bình đẳng về tính đặc hiệu.Tại sao thanh 'foo bar' và 'foo>' có cùng đặc tính trong CSS?

Tôi nhận ra rằng việc sử dụng các combinator hoàn toàn không liên quan đến tính đặc hiệu nhưng tôi tự hỏi liệu có lý do nào đó cho nó hay không.

+0

Tôi giả sử nó chỉ vì chúng cụ thể như nhau ... "một' span' là hậu duệ của 'div'" và "một' span' là con của 'div' ", thay vì một cái gì đó cụ thể hơn, chẳng hạn như" một 'span' với một số tên lớp là con của' div' ". –

+0

Vâng, bạn có thể lập luận rằng * một số * span bên trong một div không phải là cụ thể như một khoảng đó là một con * ngay lập tức * của một div – ThiefMaster

+0

Vâng, rất đúng. Câu hỏi hay! –

Trả lời

8

Điều này đã thực sự được đưa ra trong danh sách gửi thư nhóm làm việc, cách quay lại khi, trong this thread. Về cơ bản, có một bộ chọn với bộ kết hợp trông cụ thể hơn, nhưng một thuật toán, mở rộng hình thức hiện tại, với ý nghĩ này trở nên phức tạp hơn nhiều so với ba "đơn giản" được sử dụng hiện nay, khá khó hiểu với mọi người.

Cuối cùng,

 
While this could have been the case, this is one of the few things in CSS2 
that have been interoperably implemented for years, and therefore won't 
change in CSS2.1. 

"Nếu nó không vỡ, không sửa chữa nó." dường như là cuộc gọi cuối cùng.

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