2011-11-23 12 views
11

mojej stronie http://dl.dropbox.com/u/49912546/anchor_link_test.htm wyświetla się inaczej, gdy kotwica jest używany zbyt http://dl.dropbox.com/u/49912546/anchor_link_test.htm#vanquish-s - zawartość poniżej obrazu jest przesuwany w górę nieznacznieDlaczego ta strona łamanie układ gdy ogniwo kotwica służy

Dzieje się konsekwentnie w różnych przeglądarkach, więc nie musi być coś w specyfikacji, co oznacza, że ​​to jest prawidłowe zachowanie ... ale co? Dzieje się tak tylko wtedy, gdy obraz jest wczytywany (jeśli src jest nieprawidłowy, błąd nie występuje).

* edytuj Przy okazji, znalazłem obejście już http://dl.dropbox.com/u/49912546/anchor_link_test_solved.htm#vanquish-s, więc nie szukam poprawki błędu - chcę tylko wiedzieć, dlaczego wszystkie przeglądarki mają implementacje CSS, które powodują to zachowanie.

+3

Może powinieneś opublikuj swoje obejście, na wypadek gdyby ktoś inny miał ten sam problem i nie wiedział, jak go rozwiązać. – Yisela

+0

dobry punkt - zrobi – wheresrhys

+0

Proszę przeczytać [Coś na mojej stronie internetowej nie działa. Czy mogę po prostu wkleić link do tego?] (Http://meta.stackoverflow.com/questions/125997/something-on-my-web-site-doesnt-work-can-just- paste--link do tego). Pytania zależne od zasobów zewnętrznych, które należy zrozumieć, stają się bezużyteczne, gdy zasoby zewnętrzne znikną lub zostaną naprawione. Utwórz [MCVE] i umieść go w ** samym pytaniu **. – Quentin

Odpowiedz

5

half content pojawia się przesunięcie w górę ze względu na .panel jego umieszczone jest na overflow:hidden & zawiera treści zaciśnięcia w wyniku.

Gdy przeglądarka próbuje zidentyfikować element w nazwanej kotwicy, widzi to w kontenerze, który może przyciąć jego treść &, więc przewija ten element do góry, aby zapewnić jego widoczność.

Na przykład, jeśli były, aby dodać wszystkie elementy wewnątrz contentInner ale przede nazwanego h3, wtedy nie będzie widoczny na stronie przy nazwie kotwica została wykorzystana jako half content przewijane są takie, że h3 jest na górze. (Ten sam wynik jak gdyby overflow:scroll zostały zastosowane; nazwany kotwica powoduje, że pasek przewijania, aby ustawić się w linii z góry o nazwie elementu)

+0

Po przeczytaniu tego około 5 razy w końcu dostaję to i tak, rozumiem, dlaczego przeglądarka chciałaby się upewnić, że element jest widoczny. Ale czy przeglądarka nie może najpierw sprawdzić, czy połączony element jest przepełniony przed wykonaniem tego rodzaju podnoszenia? Również w przypadkach, gdy element jest ukryty za pomocą innych środków, np. position absolute http://dl.dropbox.com/u/49912546/anchor_link_test_counterexample.htm#vanquish-s, przeglądarka nie próbuje przeciągnąć zawartości do widoku. Dlaczego więc przeglądarki nie akceptują tego, że przepełnienie: ukryte oznacza ukryte i przeskakuje do najbliższego sensownego widocznego miejsca? – wheresrhys

+0

Zgadzam się, że jest to przyziemny sposób robienia rzeczy, jest tu dyskusja na temat tego zachowania; http://www.positioniseverything.net/articles/onetruelayout/appendix/equalheightproblems –

-1

W moim przypadku usuwania overflow: hidden pracował

#maincontent { 
    width: 100%; 
    background: transparent; 
    /* overflow: hidden; */ 
    clear:both; 
}