Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    Buone pratiche per CSS responsivi

    Ciao a tutti,
    piccoli consigli:

    devo rifare un portale, programmato a moduli, in modo altamente responsivo. Ogni modulo ha il suo css e un comportamento particolare in caso di visualizzazione su diversi dispositivi.

    Qualcuno ha qualche link, esperienze su come affrontare questo problema in modo ottimale?
    Sono orientato ad utilizzare less (o sass) come moduli di Gruntjs in modo base (sfruttando variabili, mixin e sintassi annidata) e non troppo avanzato (non voglio avere sintassi poco intellegibili che tra 2 anni non capirei più o saranno cambiate nuovamente).

    Un primo approccio al problema mi ha creato altri problemi e dopo un po' di riflessioni ho più domande di prima e meno risposte.

    Sicuramente la struttura HMVC sarà (perché è già così) questa:

    codice:
    _lib
    _module
    \_module1
      \_php
      \_css
      \_js
    \_module2
      \_php
      \_css
      \_js
    ---
    Primo bivio:
    - uso files css differenti per dispositivi differenti (con dentro comunque le mediaqueries perché i files saranno tutti concatenati e serviti) magari prevedendo uno generale (con i colori, font ecc)

    codice:
    module1
    \_ css
      \_ module1.css
      \_ module1_1024.css
      \_ module1_800.css
      \_ module1_400.css
    oppure

    uso un solo file css per modulo con dentro le varie mediaquery
    codice:
    module1
    \_ css
      \_ module1.css

    Il primo caso è apparentemente più semplice. Ma ho già avuto esperienze con strutture di questo tipo e non sono state idilliache: troppa ridondanza e quando si modifica una cosa, modificarla in tutti i files è problematico (molte volte modifichi il file sbagliato, altre volte te ne dimentichi ecc).
    Darebbe il vantaggio che mi lascerebbe la libertà di decidere se servire un file mobile.css ai dispositivi mobile, con risparmio di banda, calcolo da parte del dispositivo ecc. (cosa che non sono sicuro di volere, ma non lo so ancora).

    Il secondo invece si presta lo stesso a una certa ridondanza, che però può essere ottimizzata. Una formula non l'ho ancora trovata ma ho viso che ci sono possibilità. per esempio

    Codice PHP:
    .module1 {    

        
    background-color#afafaf;    
        
    color#000;    width: 1000px;

        
    @media (max-width1186px) { 
           
    width900px;    
        }
        @
    media (max-width800px) {
            
    width600px;
        }
        @
    media (max-width400px) {
            
    width200px;
        }
        
    h1 {
            
    color:#f00;
            
    span {
                @
    media (max-width1186px) {
                    
    width200px;
                }            @
    media (max-width800px) {
                    
    width100px;
                }
                @
    media (max-width400px) {
                    
    width50px;
                }
            }
        }

    Potrei anche fare un mixin che stampa le varie mediaqueries nelle diverse risoluzioni. Tipo:

    Codice PHP:
    .responsiveWidth(900,600,200
    Ma ho paura che il risultato finale (cioé la compilazione) non sarà ottimizzato, in quanto una cosa del genere (comodissima)

    Codice PHP:
    .responsiveWidth(900,600,200)
    .
    responsiveMargin(10,7,2
    produrrebbe

    Codice PHP:
    @media (max-width1186px) {
        
    width900px;
    }
    @
    media (max-width800px) {
        
    width600px;
    }
    @
    media (max-width400px) {
        
    width200px;
    }
    @
    media (max-width1186px) {
        
    margin10px;
    }
    @
    media (max-width800px) {
        
    margin7px;
    }
    @
    media (max-width400px) {
        
    margin2px;

    Invece che un meno verbosa

    Codice PHP:
    @media (max-width1186px) {
            
    width900px;    
            
    margin10px;
    }
    @
    media (max-width800px) {
            
    width600px;
            
    margin7px;
    }
    @
    media (max-width400px) {
            
    width200px;
            
    margin2px;

    Voi avete esperienze? Avete trovato una formula migliore?
    Ultima modifica di chumkiu; 18-01-2014 a 13:38

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.