2009-03-05 21 views

Trả lời

179

Có cách nào để áp dụng kiểu Lớp cho chỉ một cấp thẻ td không?

*:

.MyClass>tbody>tr>td { border: solid 1px red; } 

Nhưng! Bộ chọn trực tiếp của con '>' không hoạt động trong IE6. Nếu bạn cần hỗ trợ trình duyệt (mà bạn có thể làm, than ôi), tất cả các bạn có thể làm là chọn phần tử bên trong riêng và bỏ thiết lập các phong cách:

.MyClass td { border: solid 1px red; } 
.MyClass td td { border: none; } 

* Lưu ý rằng người đầu tiên ví dụ tham chiếu đến phần tử tbody không được tìm thấy trong HTML của bạn. Nó nên đã có trong HTML của bạn, nhưng các trình duyệt nói chung là ok với việc bỏ nó ra ... chúng chỉ thêm nó vào đằng sau hậu trường.

+0

Đoạn mã đầu tiên của bạn (sử dụng bộ chọn con) dường như không hoạt động trong Firefox 3.0.1. Tôi nhận được một đường viền màu đỏ xung quanh phần 'NÀY KHÔNG CÓ BẤT K' '. –

+0

Điều này không hoạt động trong Chrome hoặc – bstoney

+1

ví dụ thứ hai của bạn là chính xác, nhưng ví dụ đầu tiên của bạn sẽ đặt đường viền trên mọi thứ. ".MyClass> tr> td" có thể hoạt động (trong các trình duyệt tốt) – nickf

2

Tôi đoán bạn có thể thử

table tr td { color: red; } 
table tr td table tr td { color: black; } 

Hoặc

body table tr td { color: red; } 

nơi 'body' là một bộ chọn cho mẹ của bảng

Nhưng các lớp học có nhiều khả năng đúng cách đi đây.

8

phong cách này:

table tr td { border: 1px solid red; } 
td table tr td { border: none; } 

mang lại cho tôi:

this http://img12.imageshack.us/img12/4477/borders.png

Tuy nhiên, sử dụng một lớp học có lẽ là cách tiếp cận ngay tại đây.

+0

Sử dụng một lớp trên mọi phần tử td có thể hơi dư thừa, bạn có thể sử dụng một lớp trên phần tử bảng chứa, và sau đó bạn vẫn phải loại trừ các cấp thứ hai của bảng - ví dụ đầu tiên của bạn là chính xác. – thomasrutter

6

Chỉ cần tạo bộ chọn cho các bảng bên trong MyClass.

.MyClass td {border: solid 1px red;} 
.MyClass table td {border: none} 

(Để quát áp dụng cho tất cả các bảng bên trong, bạn cũng có thể làm table table td.)

46

thế nào về việc sử dụng CSS: first-child pseudo-class:

.MyClass td:first-child { border: solid 1px red; } 
+12

Điều đó sẽ không hoạt động. Điều này sẽ chọn tất cả các 'td' con trong cây con' .MyClass' là phần tử đầu tiên chứa phần tử chứa của chúng, và do đó cũng sẽ tạo kiểu cho 'td' bên trong. – Lazlo

3

tôi muốn thiết lập chiều rộng của cột đầu tiên của bảng và tôi thấy rằng cột này hoạt động (trong FF7) - cột đầu tiên rộng 50px:

#MyTable>thead>tr>th:first-child { width:50px;} 

nơi đánh dấu của tôi là

<table id="MyTable"> 
<thead> 
    <tr> 
    <th scope="col">Col1</th> 
    <th scope="col">Col2</th> 
    </tr> 
</thead> 
<tbody> 
    ... 
</tbody> 
</table> 
4

Tôi nghĩ, Nó sẽ hoạt động.

.Myclass tr td:first-child{ } 

or 

.Myclass td:first-child { } 
+0

Cái đầu tiên có chọn 'td' đầu tiên của mỗi hàng và cái thứ hai chỉ chọn' td' đầu tiên của trang không? –

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