2013-04-23 34 views
5

Tôi muốn thay thế màu nền của bảng để tăng khả năng đọc. Sau khi googling một chút tôi tìm thấy mã tôi cần.Màu sắc của hàng thay thế trên bảng có kiểu nội tuyến CSS

tr:nth-child(even) { 
    background-color: #000000; 
} 

Vấn đề trong giải pháp của tôi, tôi không có quyền truy cập vào thẻ head và tôi muốn thực hiện điều này với CSS kiểu nội tuyến, nhưng nó không hoạt động.

<tr style="nth-child(even) background-color: #000000;"> 

Ý tưởng?

+1

Ý của bạn là bạn không có quyền truy cập vào thẻ? Inline phong cách là một cơn ác mộng bảo trì chờ đợi để xảy ra. – cimmanon

+0

Bit đầu tiên của css mà bạn đã chặn sẽ thuộc về bản định kiểu của bạn nếu bạn muốn thay đổi màu nền của mỗi hàng khác. Mã nội tuyến mà bạn đã viết thậm chí sẽ không tự làm việc vì hàng cụ thể đó sẽ là 'lẻ', vì nó sẽ là đứa con thứ nhất. –

+0

Tôi đã viết thẻ đầu nhưng kể từ khi tôi quấn nó quanh dấu ngoặc, nó không hiển thị trong câu hỏi của tôi. cố định ngay bây giờ. Vấn đề là ngay cả khi tôi thêm toàn bộ bảng với các thẻ tr inline, nó không hoạt động. – williamwmy

Trả lời

8

Kiểu nội tuyến là mỗi phần tử, vì vậy bạn sẽ phải chèn kiểu thích hợp vào thuộc tính style của mọi phần tử tr khác. Nếu bạn chưa tạo các hàng này một cách động và bạn không thể sử dụng JavaScript để chèn các kiểu này, thì bạn bị mắc kẹt khi phải áp dụng thuộc tính theo cách thủ công trên mỗi phần tử tr.

+0

Không bị kẹt, nhưng bạn phải áp dụng kiểu nội tuyến cho màu nền trên mỗi hàng. Tồi tệ, nhưng có thể. – Tanner

+0

@Tanner: Đúng, tôi đã làm rõ ngay bây giờ. – BoltClock

+0

Nhưng ngay cả khi tôi tiêm nó trên mỗi tr, nó không hoạt động. Những gì tôi làm là tôi thêm trên mỗi hàng của tr. Tôi nghĩ rằng điều này sẽ giống như, nếu hàng này là ngay cả, làm cho màu nền đen. – williamwmy

1

Ngoài BoltClock câu trả lời, nếu bạn có thể sử dụng jQuery bạn có thể thử một cái gì đó như thế này:

$('tr:nth-child(even)').css("background", "red"); 

này tự động chèn phong cách nội tuyến trong đánh dấu của bạn.

A working fiddle

3

Tôi cũng có tình huống tương tự. Tôi đã giải quyết nó bằng cách đặt một phần kiểu ngay trước bảng của tôi:

<style> 
    table#some_table_id tr:nth-child(even) { background-color:#dddddd; } 
</style> 
<table id="some_table_id"> 
    <!-- table markup removed --> 
</table> 

Không phải là giải pháp thanh lịch nhất, nhưng nó hoạt động cho tôi (trong Google Chrome 29.0.x).

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