2013-02-26 8 views
14

Robię teraz stronę mobilną i próbuję kierować reklamy na różne urządzenia za pomocą zapytań o media CSS3. Część mojego kodu jest następujący:Jak automatycznie dopasować szerokość korpusu do szerokości urządzenia w zapytaniu o media CSS3?

@media screen and (max-width:320px) { 
body { 
    width: 320px; 
} 
/* some other style */ 
} 

Jak widać, mam ustawić szerokość ciała wyraźnie się upewnić, że nie pokazują szerokość ja ustawiony na biurku w moim normalnym CSS, który jest 920px . Zastanawiam się, czy jest jakiś sposób, aby szerokość ciała była ustawiana automatycznie na szerokość urządzenia i nie muszę ustawiać tego ręcznie za każdym razem, gdy tworzę nowy @media.

Nawiasem mówiąc, ja też dodać następujący kod w moim head tagu:

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

Czy coś złego 'szerokość: 100%'? – cimmanon

+0

'width: 100%' nie działa dla jednostek reklamowych reagujących na AdSense ... musi zdefiniować rozmiar – Jess

Odpowiedz

13

Wystarczy użyć width: auto;

Różnica między width: 100%; i width: auto; jest to, że szerokość zewnętrzna 100% jest 100% + padding-left + padding-right wewnętrzna 100% . Szerokość zewnętrzna width: auto to 100%, szerokość wewnętrzna to 100% - padding-left - padding-right wtedy i tylko wtedy, gdy display jest ustawiona na block i nie jest ustawiona float (a przedtem element pływający nie jest wyczyszczony).

+0

Dzięki, człowieku! Jeszcze jedno pytanie, gdy ustawiam szerokość wszystkich elementów wewnątrz znacznika body w procentach, kiedy powiększam, to Wygląda na to, że szerokość tych elementów jest wciąż taka sama, ale chciałbym również powiększyć ich szerokość, w jaki sposób mogę to osiągnąć? – chaonextdoor

+0

Możesz ustawić tylko właściwość 'min-width' na wartość stałą np. 'min-width: 320px;'. Ustaw tylko dla najmniejszego obsługiwanego rozmiaru '@ media' jako minimalnego dozwolonego rozmiaru. Możesz ustawić 'min-width' dla dowolnego elementu również, ale dobrą praktyką jest ustawienie zawsze dla ciała, ponieważ elementy pływające powinny zmienić swoją pozycję. –

+0

Nie zawsze działa. Na przykład, jeśli spróbujesz ustawić szerokość poppera bootstrap, używając tego. Użyj szerokości: 100vw; poniżej z @ sh3nan1gans –

28

Można również użyć

width: 100vw; 

To spowoduje ustawienie elementu do 100% szerokości rzutni za. Możesz chcieć sprawdzić kompatybilność przeglądarek przed dodaniem: http://caniuse.com/#search=vw

Więcej informacji na temat rozmiaru rzutni: https://css-tricks.com/viewport-sized-typography/

+1

Jest to jedna z najlepszych wskazówek, jakie widziałem przy korzystaniu z CSS w nowoczesnych przeglądarkach. Jest to niezwykle przydatne i może rozwiązać wiele złożonych problemów. Na przykład, jeśli masz przewijany div, który jest szerszy niż rzutnia i chcesz ograniczyć div podrzędny wewnątrz tego div do procent szerokości portu widoku. Wielkie dzięki. – Sunil

Powiązane problemy