Tak więc zanurkowałem w "Responsywny design" i dobrze zrozumiałem, jak to działa. Są jednak dwie rzeczy, których potrzebuję, aby się rozejrzeć.Jaki jest "właściwy" logiczny sposób budowania dobrego, responsywnego projektu za pomocą CSS3?
My „logiczny” sposób myślenia jest tak: Jeśli rozmiar ekranu jest mniejsza niż 320px, a następnie zrobić A, jeśli wielkość ekranu jest mniejsza niż 480px zrobić B.
@media only screen and (max-width: 320px) { Do one thing here}
@media only screen and (max-width: 480px) { Do another thing here}
Problem polega na tym, że css w max-width: 480px
wpływa także jeśli szerokość ekranu jest mniejsza niż 320.
Kiedy patrzę na przykładach, widzę, że używasz coś takiego:
@media only screen and (min-width: 290px) {}
@media only screen and (min-width: 544px) {}
@media only screen and (min-width: 960px) {}
to w zasadzie mówi to jest ekran większy niż 290px, zrób to i jeśli ekran jest większy niż 544px, zrób to. Ale dostanę ten sam problem tutaj. Kod w wersji min-width: 290px
będzie również używany w każdym rozmiarze ekranu większym niż 290 pikseli.
Więc jedynym rozwiązaniem można myślę, że będzie działać tylko dla określonego zakresu ekranu, wykorzystuje to:
@media only screen and (max-width: 320px) {}
@media only screen and (min-width: 321px),
only screen and (max-width: 480px){}
@media only screen and (min-width: 640px),
only screen and (max-width: 481px){}
Może ktoś mi doradzić w tej sprawie?
Patrząc na przykłady, widzę łup "zbędnego" kodu. Wiele z tego samego kodu jest powtarzana, po prostu mają różne wartości:
@media only screen and (max-width : 930px),
only screen and (max-device-width : 930px){
nav li a {
width: 25%;
border-bottom: 1px solid #fff;
font: 400 11px/1.4 'Cutive', Helvetica, Verdana, Arial, sans-serif;
}
nav li:last-child a, nav li:nth-child(4) a { border-right: none; }
nav li:nth-child(5) a { border-bottom: none; }
}
@media only screen and (max-width : 580px),
only screen and (max-device-width : 580px){
nav li a {
width: 50%;
font: 400 12px/1.4 'Cutive', Helvetica, Verdana, Arial, sans-serif;
padding-top: 12px;
padding-bottom: 12px;
}
nav li:nth-child(even) a { border-right: none; }
nav li:nth-child(5) a { border-bottom: 1px solid #fff; }
}
Dla dużych stron, mogę sobie wyobrazić, że to stworzy dużo kodu i dużych plików CSS.
Czy to staje się nowym standardem, ponieważ musimy pracować z elastycznym wzornictwem?
byłaby to opcja do zrobienia po ?:
@media only screen and (min-width: 640px) { @import url("css/640.css");}
nie * jeden * poprawny, logiczny sposób robienia tego. Istnieje wiele sposobów na skórze kota! To zależy również od twojego układu. – BoltClock
On, tak, jestem tego w pełni świadomy. Ale próbuję dowiedzieć się, jaki jest dobry sposób, aby rozpocząć wdrażanie tego. – Steven