Ich verwende Twitter Bootstrap für ein Projekt. Neben den Standard-Bootstrap-Stilen habe ich auch einige meiner eigenen hinzugefügt
//My styles
@media (max-width: 767px)
{
//CSS here
}
Ich verwende jQuery auch, um die Reihenfolge bestimmter Elemente auf der Seite zu ändern, wenn die Breite des Ansichtsfensters weniger als 767 Pixel beträgt.
$(document).load($(window).bind("resize", checkPosition));
function checkPosition()
{
if($(window).width() < 767)
{
$("#body-container .main-content").remove().insertBefore($("#body-container .left-sidebar"));
} else {
$("#body-container .main-content").remove().insertAfter($("#body-container .left-sidebar"));
}
}
Das Problem, das ich habe, ist, dass die $(window).width()
vom CSS berechnete Breite und die vom CSS berechnete Breite nicht gleich zu sein scheinen. Wenn $(window).width()
767 zurückgegeben wird, berechnet das CSS die Breite des Ansichtsfensters als 751, sodass es einen Unterschied von 16 Pixel zu geben scheint.
Weiß jemand, was dies verursacht und wie ich das Problem lösen könnte? Die Leute haben vorgeschlagen, dass die Breite der Bildlaufleiste nicht berücksichtigt wird und die Verwendung der richtige $(window).innerWidth() < 751
Weg ist. Im Idealfall möchte ich jedoch eine Lösung finden, die die Breite der Bildlaufleiste berechnet und mit meiner Medienabfrage übereinstimmt (z. B. wenn beide Bedingungen mit dem Wert 767 verglichen werden). Weil sicherlich nicht alle Browser eine Bildlaufleistenbreite von 16px haben werden?