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;
}

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ę.


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


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.


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>


To container-fluidzałatwiło sprawę dla mnie!
Paula
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.