Adattare sito web per ogni risoluzione con css e javascript


20 aprile 2011 18 Commenti css, css3, javascript

In vista della dell’uscita del nuovo template di Ebug, sto lavorando a non finire su questo progetto.

Una delle tante problematiche che mi sono trovato a gestire è quello della risoluzione dello schermo, visto la miriade di dispositivi che mi guardano ( iphone, ipad, schermi ultra giganti da 1824px per 960px ) e ho dovuto interagire con tali hardware in maniera tale da rendere il layout il più fluido possibile.

Per fare ciò ho provato diverse tecniche e le due che mi sono più piaciute sono: media queries di css3 e librerie come adaptive.js .
Ambedue le soluzioni sono buone e elastiche , in quanto vi ritrovate a gestire un layout che si ridimensiona in poche righe di codice.

Se volete usare le media queries di css3 questo è il codice ( qua invece trovate la fonte ufficiale ):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}

/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
}

/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
}

/* iPads (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
/* Styles */
}

/* iPads (landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : landscape) {
/* Styles */
}

/* iPads (portrait) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
/* Styles */
}

/* Desktops and laptops ----------- */
@media only screen
and (min-width : 1224px) {
/* Styles */
}

/* Large screens ----------- */
@media only screen
and (min-width : 1824px) {
/* Styles */
}

/* iPhone 4 ----------- */
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5) {
/* Styles */
}

Se invece volte utilizzare una libreria come adaptive.js qua trovare il codice ( qua trovate la fonte ).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Edit to suit your needs.
var ADAPT_CONFIG = {
  // Where is your CSS?
  path: 'assets/css/',

  // false = Only run once, when page first loads.
  // true = Change on window resize and page tilt.
  dynamic: true,

  // First range entry is the minimum.
  // Last range entry is the maximum.
  // Should have at least one "to" range.
  range: [
    '760px            = mobile.css',
    '760px  to 980px  = 720.css',
    '980px  to 1280px = 960.css',
    '1280px to 1600px = 1200.css',
    '1600px to 1920px = 1560.css',
    '1920px           = fluid.css'
  ]
};

E voi quale soluzione preferite ? Dite la vostra con un commento :D




Potresti trovare interessante anche

blusite_html5_css3 La risoluzione giusta per un progetto da webdesigner
Pubblicato in css, css3, javascript |



Iscriviti alla newsletter

Vuoi ricevere ogni articolo che pubblico direttamente sulla tua mail ? Vuoi evitare di perdere qualsiasi articolo pubblico ? Registrati alla mia newsletter in un click.

Inserisci il tuo indirizzo mail:

18 commenti per Adattare sito web per ogni risoluzione con css e javascript

per ottenere un layout fluido e adattivo non basta usare le % e gli em?

@Gio il valore espresso in percentuale è utile per creare layout fluidi , ma se vuoi dare delle dimensioni minime , dove non si può scendere sotto di quelle, la proprietà min-width è la migliore ;)

appunto quindi si può fare quasi tutto solo col css senza aiuto di jquery o affini no?

@Gio il problema è uno solo che min-width ha problemi con alcuni browser tipo IE6 e compagnia bella.

Comunque secondo me la migliore soluzione è quella delle media-queries pure perché ormai ie6 è un browser morto

Ottimo ci proverò nel mi prossimo sito che sto elaborando. Penso che userò il media queries di css3, quindi basta inserire quel codice che hai messo tu, nel css pirncipale del sito e il gioco è fatto? Scusa la domanda stupida, ma sono alle prime armi nel web design e sono pure un autodidatta.
Grazie

@Sergio Sisi, anche con quello in jquery :D

Bisogna però costruire tutto il sito il con il framework 960 grid system, giusto?

No basta solo adptive.js :D

scusate la mia ignoranza. mettiamo che io progetti un sito web, per esempio ottimizzato per la risoluzione 1280X800. Scelgo immagini, testo, contenuti flash ecc. Naturalmente ogni cosa sarà in base all’attuale risoluzione. Se io visualizzassi questo sito su uno schermo gigante sicuramente vedrò il mio sito molto piu piccolo. Dunque la mia domandaè: queste due soluzioni servono per ingrandire o diminuire la pagina in base alla risoluzione? ma cosi facendo le immagini non si sgranano se la differenza è eccessiva???
oppure queste soluzioni servono a caricare un sito con i contenuti in base alla risoluzione? cioè bisogna scegliere diverse immagini uguali da utilizare in base alle varie risoluzioni?? ma se è cosi c’è da suicidarsi….mi date qualhe info in piu please? grazie

@sergio in realtà per giusta regola dovresti scegliere delle immagini con una risoluzione minima se vuoi puntare alla compatibilità tra le diverse risoluzioni, cioè se punti a un sito che si veda sugli schermi 800×600 ovviamente non metti un’immagine di 990×200 , ma qualcosa di più piccolo ^_^

no, non punto ad un sito 800 x 600. vorrei che si vedesse in tutte le risoluzioni. per questo motivo chiedevo se l’immagine si sgrana o meno. Quello che vorrei sapere è se utilizzando questi 2 metodi che hai proposto, realizzando un sito ottimizzato per il 1280×800 ed inserendo quindi delle immagini che vadano bene per questa risoluzione, in uno schermo con risoluzione 1920×1080 per esempio, come si vedrà il sito?

ma questi due codici come e dove li devo inserire?scusate la mia totale ignoranza…

@help ti consiglio di leggere questo mio articolo dove riassumo le proprietà fondamentali per realizzare un sito internet per telefonini mobile 

( qua trovi video, slide , e link utili )

sì ma non capisco dove inserire quei codici

@help quei codice dovrebbero essere inseriti in un foglio di stile, e poi da la dovresti impostare tu al meglio tutti i parametri di larghezza , margine e padding

Anche a me purtroppo non mi è chiaro! In quale stringa (es. <head>) devo inserirlo quel codice?

@Elio per chiarire al meglio le tue idee su come realizzare un layout che si adatti a ogni risoluzione ti consiglio di leggere pure quest’altro mio articolo :D

http://www.ebug.it/guida-nellusare-le-mediaqueries-per-ridimensionare-i-nostri-siti-internet-css3/

Lascia un Commento