5

Tôi áp dụng cho stackoverflow làm phương sách cuối cùng của mình. Tôi đã nhận lỗi ie6 này trong khi sử dụng hình ảnh ở nền của liên kết. Dường như ie6 cuộn nền. Làm thế nào tôi có thể tránh nó?IE6 background-position (?) Issue

Tại một số chiều rộng nó cho thấy như thế này:
alt text http://img135.imageshack.us/img135/8849/badie1.png

Và tại một số khác nó cho thấy như thế:
alt text http://img522.imageshack.us/img522/8180/badie2.png

IE7 & FF chương trình này giống như tôi mong đợi:
alt text http://img142.imageshack.us/img142/2296/goodie.png
Các liên kết được đặt bên trong div đang trôi nổi ở bên phải.

<a href="/tr" class="menuLink" style="background-image:url(/img/tr.png);">TR</a> 
<a href="/eng" class="menuLink" style="background-image:url(/img/eng.png); margin-right:30px;">ENG</a> 
<a href="/logout" class="menuLink" style="background-image:url(/img/logout.png);"><?=$ui["exit"];?></a> 

    .menuLink { 
    font-family:"Tahoma"; 
    font-size:11px; 
    color:#003300; 
    text-decoration:underline; 
    font-weight: bold; 
    background-position:0% 50%; 
    background-repeat:no-repeat; 
    } 
    .menuLink:hover { 
    font-size:11px; 
    color:#047307; 
    text-decoration:underline; 
    font-weight: bold; 
    } 

Mọi gợi ý làm cách nào để tránh điều này?

+0

Câu hỏi tương tự: http://stackoverflow.com/questions/594870/fix-for-background-position-in-ie –

+3

Thử thêm "' zoom: 1' "vào kiểu của các phần tử - hasLayout trong IE có thể gây ra một số lỗi lạ http://www.satzansatz.de/cssd/onhavinglayout.html.Tôi đã không thử nó, nhưng đây là một trong những điều đầu tiên tôi cố gắng khi gỡ lỗi loại công cụ này vì nó thường thay đổi cách nền của kết xuất của – cryo

Trả lời

1

Tôi sẽ tìm một giải pháp hoạt động cho IE6 và sử dụng Conditional Comments để lọc ra các phiên bản thích hợp khác cho IE7, FF, v.v. Tôi cũng sẽ tránh sử dụng phần trăm trong background-position cho IE6 (reference).

+0

Tôi đã cố gắng sử dụng background-position:center left; thay thế. Nó cho thấy như vậy. Vì vậy, những gì exatly tôi nên bình luận có điều kiện ... – turezky

+0

Hãy thử sử dụng một giá trị pixel vì tất cả mọi thứ bạn đang xử lý là pixel. –

+0

Thay đổi phần trăm thành pixel không hoạt động: ( – turezky

0

Thay đổi

background-position:0% 50%; 

để

background-position:50% 50%; 

và thêm

background-repeat: no-repeat; 

này sẽ tập trung hình ảnh horizontially cũng như theo chiều dọc và ngăn chặn các hình ảnh từ ốp lát.

+0

Nếu tôi làm như vậy, hình ảnh của tôi sẽ bị bỏ qua phía sau văn bản :(Và các trung tâm ở đó, tôi cần các hình ảnh trước văn bản ... – turezky

3

Tôi chỉ gặp sự cố này và tôi thấy rằng sử dụng overflow:hidden trên phần tử có hình nền giải quyết được nhiều sự cố IE6 của tôi (mặc dù không phải tất cả).

+0

Đã giải quyết được vấn đề cụ thể này chưa? :) – turezky

+0

Giải quyết nó cho tôi! – strongriley

1

Như khuyên trong this answer-a somewhat related question, tôi khuyên bạn nên sử dụng background-position-xbackground-position-y thay vì background-position cho IE (pre-IE8).

+0

Thật không may, điều này không hoạt động: ( – turezky

1

Bạn không thể sử dụng vị trí nền với bất kỳ * ie6 .png sửa chữa giải pháp là tạo hình ảnh gif hoặc 8 bit.

* Không mà tôi sử dụng/thử

+1

http: //www.dillerdesign .com/thử nghiệm/DD_belatedPNG/- Giữ vị trí nền.Đó là tốt nhất PNG Fix IMO.Nhưng tôi sẽ nguy hiểm một đoán PNG Fix là giết chết vị trí nền cũng – Mig

+0

@MiG Tôi đã sử dụng sửa chữa tập tin htc [link] (http : //.twinhelix.com/css/iepngfix/) không giữ được vị trí nền. DD_belatedPNG giữ nguyên. – Harish

+0

Tôi đã có thể nhận được m y 32-bit PNG để xếp hàng hoàn hảo bằng cách sử dụng tràn: ẩn như được đề xuất ở trên. – strongriley

1

Nếu bạn có padding-top hoặc padding-bottom trong phần tử của bạn với những hình ảnh nền và background-positioning - trong IE6, bạn có thể thay đổi bạn padding-top: 16px; để margin-top: 16px; và nó sửa chữa vấn đề.

Nó không đẩy các yếu tố khác đi và tăng gấp đôi padding nữa.
Nếu không, trong IE7 và IE8 thuộc tính padding hoạt động.