2015-01-16 11 views
10

Użyłem następujący CSS w różnych miejscach na mojej stronie:IE pokazuje poziomy pasek przewijania po dom elementem przekształcone

http://jsfiddle.net/uycq29mt/1/

.a { 
    position:absolute; 
    background:red; 
    width:600px; 
    height:100px; 
    left:50%; 
    transform: translate(-50%); 
} 

Po uruchomieniu programu Internet Explorer, zauważysz poziomego paska przewijania która wydaje się ignorować przekształcenie dotyczące całkowitej szerokości strony.

+0

Pracuję nad zespołem IE i ostatnio zgłosiłem błąd w tym zachowaniu. Dodatkowo, [zrobiłem tweeta dla stron, które zostały dotknięte] (https://twitter.com/jonathansampson/status/535521595565961216) przez ten błąd, próbując zrozumieć wpływ tego błędu. Czy masz witrynę na żywo, na którą ma wpływ? Jeśli tak, pomoże nam to zrozumieć pilną potrzebę naprawy. – Sampson

+0

Niestety nie jest jeszcze na żywo, jednak jsfiddle wyraźnie to demonstruje. – hedgehog90

Odpowiedz

15

Istnieje proste rozwiązanie:

http://jsfiddle.net/uycq29mt/2/

.a { 
    position:absolute; 
    background:red; 
    width:600px; 
    height:100px; 
    right:50%; 
    transform: translate(50%); 
} 

Zamiast wysyłać element lewy 50% (w prawo) i przy użyciu transformacji wysłać go w lewo, robię dokładnie odwrotnie. Nigdy nie rozważałem tego do tej pory, ale jeśli umieścisz element skrajnie po lewej stronie, nie wpłynie to na szerokość strony ani pasek przewijania.

dziwne, jeśli nie w pionie równowartość centrowania, dzięki zastosowaniu najwyższej 50% i przetłumaczyć (0px, -50%) nie wydaje się wpływać na pionowy pasek przewijania.

Wygląda na to, że program Internet Explorer nie przelicza granic poziomych, gdy transformacje są używane w ten sposób. Bardzo denerwujące. IE jest do bani.

+0

Napotkaliś my ten problem z centrowaniem w pionie, tak naprawdę, co mnie tutaj sprowadza - http://jsfiddle.net/uycq29mt/12/ To samo rozwiĘ ... zanie wydaje się działać - http://jsfiddle.net/ uycq29mt/13 / – launchoverit

Powiązane problemy