Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Due CSS?

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449

    Due CSS?

    Ho la necessità di impostare un sito a due colonne, una sinistra
    per un menu orizzontale e quella destra, considerevolmente più larga,
    per il testo. Nella home page tuttavia, e solo in essa, dovrei avere
    tre colonne: il menu sinistro, una colonan centrale per il testo
    e infine una terza colonna a destra per inserire delle news a altro.
    Mi servono due CSS distinti? COme si può realizzare la cosa?

    Grazie
    M

  2. #2
    Puoi procedere in diversi modi.
    Uno consiste nel creare un foglio di stile generale, che definisce le caratteristiche di tutte le pagine, e uno dedicato per la home page, caricato solo in home page, che la formatta in base alle tue esigenze.
    Un altro prevede che associ degli id agli elmenti della home page a cui vuoi assegnare uno stile particolare e tramite un unico foglio di stile ne definisci le caratteristiche.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Ciao! Si, codencode ha raggggione 8) CSS da la possibilita di sovrascrivere i comandi, quindi puoi fare un css generale con comandi tipo:
    codice:
    .colonna1 { width: 200px; }
    .colonna2 { width: 400px; }
    .colonna3 { width 200px; }
    mentre in home page (dove non hai colonna 3) includi (dopo il css di prima) un nuovo css con comandi tipo:
    codice:
    .colonna1 { width: 300px; }
    .colonna2 { width: 500px; }
    o/ !

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Capito, la cosa mi sembra di realizzazione semplice...

    Grazie!
    M

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Come non detto... In realtà la difficoltà sta nel fatto che ho un index.php
    con, nello header, fra l'altro il seguente (ovvio) codice:
    codice:
     ....
    <link rel="stylesheet" type="text/css" href="stylesheets/layout.css" />
    <link rel="stylesheet" href="stylesheets/print.css" media="print" />
    <script src="stylesheets/blank.js" type="text/javascript"></script>
    </head>
    e le pagine sono singolarmente prive di header, che viene generato per tutte
    dall'index.php. Per cui, come faccio a inserire le righe che mi servono
    senza dover riprodurre in home.php tutto lo header?

    Grazie
    m

  6. #6
    Risolvi con un minimo di codice lato server, usando ad esempio PHP, controllando nell'header se la pagina corrente è index.php. Se lo è, carichi il foglio di stile dedicato.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Sì, suggerimento raccolto :-)

    Un'ultima cosa: poiché le modifiche presenti in layout2.css
    rispetto a layout.css sono poche e relative appunto solo
    alla struttura della pagine, mentre tutto il resto è identico,
    c'è modo di non diver riscrivere in layout2.css le parti uguali?
    Cerco di spiegarmi melgio: poiché con PHP applico layout.css
    a tutte le pagine esclusa home.php,a cui applico lauoyt2.css,
    c'è modo di richiamare layout.css dall'interno di layout2.css
    e poi mettere soltante le regole nuove? Un foglio collegato
    non credo, visto che va nello head...

    mm

  8. #8
    Ciao di nuovo samiel! certamente si, non è necessario scrivere 2 volte lo stesso css.
    Diciamo che i tuoi blocchi di codice sono 3:
    -> uno con le regole comuni tutto il sito (chiamiamolo "common")
    -> uno con le regole per le 2 colonne (chiamaiamolo "2 cols")
    -> uno con le regole per le 3 colonne (chiamaiamolo "3 cols")
    Se vuoi e puoi usare php per gestire le inclusioni mettendo in un unico css "common" e "3 cols" e lo includi sempre ( <link rel="stylesheet" type="text/css" href="3cols.css"> ), poi crei una condizione in php che dice tipo:
    codice:
    $pages = array ("index.php", "pippo.php", "pluto.php");
    if (in_array($_SERVER['REQUEST_URI'], $pages)) {
        echo '<link rel="stylesheet" type="text/css" href="2cols.css">';
    }
    che, quando si verifica la condizione, include 2cols.css che sovrascriverà le parti che ti interessano del css originale... è il modo + "elegante" e semplice.

    Si, c'è modo anche di includere 2cols.css direttamente da dentro 3cols.css, ma dovrebbe essere un file css a verificare la condizione e la cosa è un po piu macchinosa.

    Puoi anche (non è elegante, ma strafunziona) richiamare il tuo 2cols.css da dentro il body delle pagine a 2 colonne, tipo:
    codice:
    <body>
    ....
    <link rel="stylesheet" type="text/css" href="2cols.css">
    ...
    </body>
    o
    codice:
    <body>
    ....
    <style>
    .colonna1 { width: 300px; }
    .colonna2 { width: 500px; }
    </style>
    ...
    </body>
    in questo caso puoi fare a meno di php.

    Siam qui! o/ !

  9. #9
    quanto rumore per nulla
    nella pagina speciale metti
    codice:
    <body class="speciale">
    </body>
    e nel css che carichi in tutte le pagine, in fondo metti
    codice:
    .speciale .colonna1 {
         ....
    }
    .speciale .colonna2 {
        ....
    }
    .speciale .colonna3 {
         ....
    }
    .speciale .colonna4 {
        ....
    }
    tutte le colonne che vuoi

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Ragazzi, ho sonno e non sono abbastanza lucido.
    DOmani provo tutto, intanto grazie per le ampie risposte!

    M

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.