Strona Simple Bootstrap nie reaguje na iPhonie

84

Ściągnąłem przykład Twittera Bootstrap i stworzyłem z nim prosty projekt railsowy. Skopiowałem css w razie potrzeby i wyświetla się dobrze. Skopiowałem też js i wszystko działa świetnie na moim komputerze: reorganizuje stronę, gdy zmieniam rozmiar mojej przeglądarki. W przypadku korzystania z niektórych „responsywnych narzędzi do testowania projektów” o różnych rozmiarach działa świetnie.

Problem, który mam, dotyczy mojego iPhone'a: ​​wyświetla się tak, jak na moim pulpicie.

Kiedy wypróbowuję stronę Bootstrap Hero Example (od której zacząłem), działa świetnie na moim iPhonie.

Co mogłoby pójść źle? Prawie nie dotknąłem żadnego CSS, po prostu dodałem dopełnienie w stopce.

Do Twojej wiadomości, CSS, który zmieniłem, polega na tym, że łączę moją aplikację application.cssz następującą zawartością:

/* Application stylesheet */

@import url(bootstrap.css);
@import url(bootstrap-responsive.css);

/* Body */
body {
    padding-top: 60px;
    padding-bottom: 40px;   
}   

/* Footer */
footer {
    padding: 20px 0;
}
RaySF
źródło
Czy możesz opublikować stronę testową lub jakiś kod?
Andres Ilich
Odpowiada na mnie. Jak myślisz, dlaczego nie reaguje?
Jesse Wolgamott,
@RaySF Nie widzę przyczyny, dla której to nie powinno działać, chociaż mam pewne wątpliwości co do @importzasady, której używasz, ale to sprawa osobista. Czy możesz opublikować przypadek testowy?
Andres Ilich
@JesseWolgamott nie reaguje na moim iPhonie, kiedy otwieram dwie wspomniane powyżej strony, oficjalne przykłady działają dobrze (np. Menu nie jest wyświetlane tak samo), ale moja strona wyświetla się tak jak na pulpicie.
RaySF
1
@RaySF Ze względu na charakter mojej pracy musiałem zbadać sposoby zwiększenia kompatybilności i podniesienia wydajności bardzo dużych arkuszy stylów, które zostały ułożone w stos przy użyciu @importmetody notacji. Po drodze zauważyłem, że wiele problemów wynikało z tej techniki i odkryłem, że wystąpił duży spadek wydajności (a także wiele błędów, których nie można było wyjaśnić), które zostały później naprawione przez dołączenie arkuszy stylów za pomocą <link>tagu HTML . Wątpliwości, które zostały później poparte pytaniami takimi jak ta tutaj w SO.
Andres Ilich

Odpowiedzi:

184

Upewnij się, że dodałeś:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

do twojego <head>.

Miałem podobny problem i błędnie pomyślałem, że to tylko kwestia szerokości widocznego obszaru.

Aktualizacja : sprawdź odpowiedź @NicolasBADIA, aby uzyskać bardziej kompletną wersję.

Víctor López García
źródło
8
i to, aby działały zarówno widoki pionowe, jak i poziome: <meta name = "viewport" content = "width = device-width; initial-scale = 1.0; maximum-scale = 1.0; user-scalable = 0;" />
virtualeyes
@virtualeyes, dzięki za wskazówkę! masz jakiś pomysł, jak umożliwić skalowanie użytkownika i sprawić, by widok lanscape działał poprawnie?
Andrei
Nie, używam JQuery mobile, nie jestem zwolennikiem responsywnego projektowania. Niech telefon komórkowy będzie mobilny, a tablety i nowsze - komputer. Cokolwiek pomiędzy, nie obchodzi mnie to ;-)
virtualeyes
111

Kod zaproponowany przez frntk nie działa po włączeniu urządzenia w widoku poziomym, a rozwiązanie podane przez wirtualne tak jest niepoprawne, ponieważ używa średnika zamiast przecinków. Oto poprawny kod:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />

Źródło: https://developer.mozilla.org/en/Mobile/Viewport_meta_tag

Nicolas BADIA
źródło
4
Przykłady na oficjalnej stronie Twitter Bootstrap powinny zostać zaktualizowane, aby to wykorzystać.
wenbert
1
Wielka uwaga, dzięki! Miałem podobny problem z obracaniem ekranu, teraz działa jak urok.
Mark Vital,
8
To powinna być zaakceptowana odpowiedź!
Sheharyar,
6

To prawda, bardzo mały przypadek, ale warto o tym wspomnieć.

Jeśli korzystasz z przekierowania domeny przez dostawcę DNS, Twoja witryna może zostać opakowana w ramkę iframe. Na przykład GoDaddy użyj tej techniki, jeśli maskujesz swoją domenę i przekierowujesz.

nieważne
źródło
2
Spędziłem godziny próbując rozwiązać ten problem i ostatecznie trafiłem na ten komentarz. Dziękuję Ci!
Ed Shee
Ten komentarz uszczęśliwi niewielką grupę ludzi.
Nicolas Rojo
Nie widzę zawiniętej ramki iframe, ale mając ten problem z odpowiednimi metatagami, czy mimo to mogą ukryć ramkę iframe?
helle,
3

Utknąłem z tym problemem przez kilka godzin.

Nie zapomnij również umieścić zawartości w pliku <div class="container-fluid">...</div>

dpigera
źródło
To container-fluidzałatwiło sprawę dla mnie!
Paula