2010-03-22 25 views
66

Tôi đã tạo một biểu định kiểu CSS cho dự án của mình. Có cách nào tôi có thể tạo ra một quy tắc css áp dụng cho tất cả các yếu tố bảng EXCEPT yếu tố bảng thuộc lớp "dojoxGrid"? Một cái gì đó như:Làm cách nào để tạo quy tắc css cho tất cả các thành phần ngoại trừ một lớp?

.not(dojoxGrid) table{ 
    width:100%; 
    border-top:1px solid #dddddd; 
    border-left:1px solid #dddddd; 
    border-right:1px solid #dddddd; 
    margin:1em auto; 
    border-collapse:collapse; 
} 
+0

Bạn có cần điều này để làm việc trên trình duyệt không? Các trình duyệt có sự hỗ trợ khác nhau cho các bộ chọn CSS linh hoạt hơn. Nó có thể là một cái gì đó bạn có thể làm trong kịch bản nếu nó hoàn toàn cần thiết, và cần phải được qua trình duyệt. – kibibu

+0

vâng tôi cần nó để làm việc trên các trình duyệt chính. Có cách nào khác tôi có thể đạt được nó hơn là thông qua kịch bản? Cheers – Nick

+0

Cách tiếp cận của Cori sẽ hoạt động trên các trình duyệt tất cả các con đường trở lại ie4, có thể sớm hơn. – kibibu

Trả lời

134

negation pseudo-class có vẻ là những gì bạn đang tìm kiếm.

table:not(.dojoxGrid) {color:red;} 

It's not supported by ≤ IE8 though.

+2

đó là một bộ chọn css3 tốt đẹp để được nhận thức - hy vọng có thể sử dụng trong IE9. – cori

+4

trong khi nhận xét của tôi không trực tiếp áp dụng cho câu hỏi, điều đáng chú ý là ': not' CÓ THỂ được sử dụng như một bộ chọn jquery. tức là '$ (" [dữ liệu-name = 'bob']: không phải (a) ")', là tốt đẹp. – gingerbreadboy

+3

Đây phải là câu trả lời được chấp nhận, vì đó là câu trả lời cho hiệu ứng mong muốn. Câu trả lời được chấp nhận hiện tại là một cách khác để đạt được hiệu quả mong muốn, nhưng không thực sự trả lời câu hỏi. Những người tìm thấy câu hỏi này, rất có thể đang tìm kiếm câu trả lời cho những gì được hỏi chính xác, trong hầu hết các trường hợp, một cách khác không áp dụng. –

11

Sẽ không đặt quy tắc css cho tất cả các bảng và sau đó là quy tắc tiếp theo cho bảng nơi class = "dojoxGrid" hoạt động? Hay tôi đang thiếu một cái gì đó?

+3

Vâng, điều đó hoàn toàn có tác dụng, nhưng bạn sẽ đặt tất cả các thuộc tính đó thành một giá trị. Nếu bạn muốn để chúng "bỏ đặt" thì không. Có lẽ Nick đang cố gắng không che dấu các giá trị cho dojoxGrid khi chúng được đặt ở nơi khác. – kibibu

+1

Tôi nghĩ rằng nó sẽ. Tuy nhiên tôi đang thiết lập một loạt các thuộc tính cho tất cả các bảng, tôi lại có thể ghi đè lên chúng với các giá trị mặc định cần thiết cho dojoxGrid. Tuy nhiên tôi không chắc chắn những giá trị mặc định này là gì khi chúng được tạo ra bởi thư viện dojo. Do đó tôi đang tìm cách khác để đạt được nó. – Nick

4

Đặt cược an toàn nhất là tạo một lớp trên các bảng đó và sử dụng nó. Hiện tại việc nhận được một cái gì đó như thế này để làm việc trong tất cả các trình duyệt chính là không thể.

0

Tôi chỉ có cùng một vấn đề, nhưng: không hoạt động đúng trong trường hợp của tôi vì vậy tôi đã cập nhật các quy tắc css về tải trọng cơ thể.

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