2012-09-06 14 views
6

Zapytania CSS @media nie działają w IE8.Przeczytaj plik CSS z JavaScript i dynamicznie zmieniaj stronę

@media (min-width: 768px) { 
/* some css */ 
} 
@media (min-width: 972px) and (max-width: 1024px){ 
/* different css */ 
} 

Teraz mógłby utworzyć oddzielne pliki CSS o nazwie IE_min768.css i IE_min972_max1024 i użyć JavaScript dynamicznie załadować i rozładować pliki jako szerokość strona została skorygowana. Ale to narusza D.R.Y. i byłby trudny do utrzymania CSS w wielu miejscach.

Czy byłoby możliwe użycie Javascript (tylko IE) do odczytu pliku CSS, wykrycie sekcji @media i dynamiczne zastosowanie tego CSS do przeglądarki w poprawnej sytuacji?

+0

Czytałem gdzieś dowcipny spostrzeżenie, że „brak wsparcia zapytania mediów jest pierwszym zapytania media” :-) – Pointy

+0

tylko przypuszczenie, ale można użyć '@ import' wysychać CSS? –

+0

Więcej informacji pod podobnym wpisem: http://stackoverflow.com/questions/7444658/best-solution-framework-to-responsive-design-for-ie7?rq=1 – Kostia

Odpowiedz

6

Nie wynajduj ponownie koła. Po prostu użyj respond.js.

Od readme na GitHub:

Celem tego skryptu jest dostarczenie szybki i lekki (3KB minified/1kB spakowane) skrypt, aby umożliwić reagujących stron internetowych w przeglądarkach, które nie obsługują CSS3 media Zapytania - w szczególności Internet Explorer 8 i poniżej. Jest napisany w taki sposób, że prawdopodobnie poprawi także obsługę innych nieobsługujących przeglądarek (więcej informacji na ten temat wkrótce).

+0

Działa pięknie! Dla kompletności chciałbym również wspomnieć o [css3-mediaqueries-js] (http://code.google.com/p/css3-mediaqueries-js/), do którego twórca odnośników answer.js prowadzi. Odpowiedź działa dla mnie, ponieważ mój CSS nie jest zbyt skomplikowany. – brentonstrine

Powiązane problemy