2010-06-08 12 views
29

Nó thường được hỏi - nhưng tôi chưa thấy câu trả lời hay (và tôi đã nhìn). Nếu bạn đặt hình nền trong CSS thành hàng trong bảng - hình ảnh sẽ tự lặp lại trong mọi ô. Nếu bạn đặt position: relative (cho hàng) và đặt background-image: none (đối với các ô), nó giải quyết được sự cố trên IE nhưng không giải quyết được trên chrome! Tôi không thể sử dụng định vị nền vì có nhiều cuộc gọi và kích thước của chúng thay đổi. (Và hình ảnh không symmetrical- Đó là một phai ra từ một phía Bất kỳ ai ??Chúng tôi có thể giải quyết vấn đề về hình ảnh nền của bảng, trong chrome, trong các bảng đa ô?

Ví dụ về mã css:..

tr { height: 30px; position:relative;} 
tr.green { background: url('green_30.png') no-repeat left top; } 
tr.orange { background: url('oranger_30.png') no-repeat left top;} 
tr.red { background: url('red_30.png') no-repeat left top; } 
td { background-image: none; } 

HTML là cơ bản - Một bảng tế bào đa

Mục tiêu là để có các màu sắc khác nhau mờ dần thành từng hàng, nhưng nó có thể là bất kỳ hình ảnh nào không có hoa văn.

+0

Bạn có một ví dụ trực tiếp hoặc một số đánh dấu/cúp souce? – Kyle

+1

Có vẻ như Firefox là trình duyệt duy nhất hoạt động như mong muốn. Chrome, IE, Opera và Safari đều làm cho hình ảnh nền khởi động lại trong mỗi ô, thay vì chạy không bị gián đoạn hoàn toàn cho toàn bộ hàng. Sự cố này được liệt kê trên http://code.google.com/p/chromium/issues/detail?id=44361 nhưng có vẻ như nó sẽ không được khắc phục. –

+0

Hoạt động tốt với tôi khi sử dụng Google Chrome 5.0.375.55, trên Ubuntu 9.10. http://jsfiddle.net/pzjUt/ và những gì tôi thấy: http://img153.imageshack.us/img153/3521/resultm.png – jackocnr

Trả lời

11

Ok, tôi đã dành thời gian đọc về điều này và không thể tìm thấy bản sửa lỗi dễ dàng cho tất cả các trình duyệt. thấy bạn đang sử dụng các hàng có chiều cao cố định, tôi đã phát triển giải pháp riêng của mình:Về cơ bản, thay vì đặt hình nền trên hàng, bạn đặt nó trên một div vị trí tuyệt đối trong ô đầu tiên của mỗi hàng (và mở rộng nó để điền vào toàn bộ hàng). Điều này là hơi hacky, nhưng có thể là cách đáng tin cậy duy nhất để đạt được những gì bạn muốn.

+1

NÀY THỰC SỰ GIÚP TÔI! CẢM ƠN RẤT NHIỀU!! – Soph

4

Thêm phao: từ trái sang hàng, cần sửa nó.

tr {float:left;} 
+0

đã làm việc cho tôi. giải quyết vấn đề trong chrome và safari; không gây ra bất kỳ vấn đề nào, mà tôi có thể thấy, trong firefox và internet explorer (nơi mà vấn đề ban đầu không tồn tại) – that0th3rGuy

+5

Khi áp dụng sửa lỗi này, tôi sẽ mất tất cả độ rộng cột của mình. Sẽ chỉ hoạt động nếu bạn có chiều rộng được xác định trước? – blo0p3r

+0

@ blo0p3r Bạn nói đúng. Nhưng nó là một loại phong cách flex: [Xem codepen của tôi] (http://codepen.io/HerrSerker/pen/JEvHA) – HerrSerker

2

Tested trong Chrome 54 trên Windows 10:

tr { 
    background-attachment: fixed; 
} 

Mặc dù có vẻ như nó không phải không có lỗi - hình nền chỉ lặp đi lặp lại trong suốt viewport tại thời gian tải, có nghĩa là các tế bào xuất hiện khi bạn cuộn xuống không có nền.

+0

Nhận xét ở dưới cùng là những gì đã giúp tôi, cảm ơn! – Ecko

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