Heim > Web-Frontend > CSS-Tutorial > Warum unterscheidet sich $(window).width() von Medienabfrage-Haltepunkten?

Warum unterscheidet sich $(window).width() von Medienabfrage-Haltepunkten?

Patricia Arquette
Freigeben: 2024-12-22 01:38:25
Original
257 Leute haben es durchsucht

Why Does $(window).width() Differ from Media Query Breakpoints?

Diskrepanz bei der Fensterbreite zwischen $(window).width() und Medienabfragen

In einem Projekt, das Twitter Bootstrap und benutzerdefiniertes CSS verwendet, treten Diskrepanzen zwischen den Werten für die Breite des Ansichtsfensters auf bestimmt durch $(window).width() und Medienabfragen. Obwohl ein Medienabfrage-Haltepunkt auf 767 Pixel festgelegt wurde, gibt $(window).width() durchweg einen um 16 Pixel niedrigeren Wert zurück, was zu einer unerwarteten CSS-Berechnung führt.

Ursachen und Lösungen

Der Hauptgrund dafür Diese Diskrepanz ist auf den Ausschluss der Breite der Bildlaufleiste bei der Berechnung von $(window).width() zurückzuführen. Um dies zu berücksichtigen, wird empfohlen, $(window).innerWidth() zu verwenden, das die Breite der Bildlaufleiste berücksichtigt. Dieser Ansatz ist jedoch möglicherweise nicht geeignet, wenn ein konsistentes Verhalten mit dem Medienabfrage-Haltepunkt gewünscht wird.

1. window.matchMedia() (nur moderne Browser)

Wenn Sie moderne Browser außer IE9 unterstützen können, bietet window.matchMedia() eine nahtlose Lösung. Es ist vollständig auf CSS-Medienabfragen abgestimmt und gewährleistet die Konsistenz zwischen JavaScript und CSS.

2. Die mq-Methode von Modernizr

Für eine breitere Browserunterstützung ist die mq-Methode von Modernizr eine praktikable Option. Es emuliert das Verhalten von window.matchMedia() für Browser, die CSS-Medienabfragen verstehen.

Implementierung

So implementieren Sie die mq-Methode von Modernizr:

if (Modernizr.mq('(max-width: 767px)')) {
    //...
} else {
    //...
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum unterscheidet sich $(window).width() von Medienabfrage-Haltepunkten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage