2012-05-19 13 views
35

pracuję na zasadzie eksperymentu & I okazało się, że „Zarys” własność CSS2 nie jest realizowany w ten sam sposób na Webkit & GeckoCSS „Zarys” różne zachowanie zachowanie na Webkit & Gecko

W poniższym skrypcie Mam absolutny div pozycji wewnątrz innego div, ale pływający poza nim. Zarys na Webkicie określa rzeczywisty div dla rodziców, podczas gdy na Gecko, rozszerza się, aby pokryć element potomny.

http://jsfiddle.net/KrCs4/

Am I brakuje czegoś? Czy istnieje właściwość, którą muszę nadpisać w Gecko? lub powinien zostać zgłoszony jako błąd?

Webkit Zrzut ekranu:

Webkit Screenshot

Firefox Zrzut ekranu:

Firefox Screenshot

EDIT:

Potwierdza to być błąd, a tutaj jest obejście: http://jsfiddle.net/7Vfee/ (trzeba upewnij się, że rodzic jest ustawiony: względny lub bezwzględny dla t jego obejście do pracy.

+0

ugh, nie mając pojęcia, próbowałem innej metody – ShibinRagh

+0

Firefox Bug : https://bugzilla.mozilla.org/show_bug.cgi?id=687311 – epascarello

Odpowiedz

17

to niespójne zachowanie Gecko jest dobrze znane i dość odpowiednio udokumentowane, choć dziwnie nie na MDN ale na SitePoint Reference:

Firefox włącznie wersji 3.5 będzie narysować kontur kontur wokół treści element, który przekroczył granice, a nie wokół rzeczywistych ustawionych wymiarów elementu.

Dotyczy to wszystkich wersji Firefoksa. Obecnie nie widzę możliwości obejścia tego problemu, poza usunięciem absolutnie umieszczonego div z jego obiektu nadrzędnego i umieszczenie go względem ... czegoś innego.

+1

Dlaczego serwis SitePoint ma więcej dokumentacji niż oficjalna specyfikacja W3C? http://www.w3.org/TR/CSS2/ui.html#dynamic-outlines –

+0

@Xavier Ho: SitePoint skupia się na zgodności i zachowaniu przeglądarek. Zadaniem specyfikacji nie jest określenie szczegółów implementacji. – BoltClock

+0

Zadaniem W3C jest zdefiniowanie zachowania przeglądarki, niezależnie od implementacji. O ile wiem, zarys nie jest bardzo dobrze zdefiniowany, jeśli chodzi o rozmiar. –

30

miałem ten sam problem, więc zamieniłem go z użyciem zarys użyć box-shadow:

box-shadow: 0px 0px 0px 1px #FFF; 

zamiast

outline:1px #dcdcdc solid; 
+0

Późniejszy komentarz, ale chciałem dodać, że Firefox również narysuje obrys: po treści dodanej w CSS. Używanie box-shadow jak wyżej rozwiąże problem. W rzeczywistości jedynym powodem, dla którego mogę myśleć o używaniu konspektu do czegokolwiek, byłoby wsparcie dla IE8 - najwyraźniej może to być konturowe, ale nie box-shadow. – crowhill

+0

@crowhill Innym powodem używania konturu jest to, że umożliwia on dodanie przesunięcia. –

+3

To powinno być zaznaczone jako poprawiona odpowiedź! –

Powiązane problemy