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

    Eliminare celle su alcuni media

    Salve! Mi sto addentrando ora nella programmazione in CSS e HTML, un po' tardino a 24 anni ma tant'è...
    Volevo sapere se qualcuno poteva spiegarmi come ristrutturare le tabelle così da renderle diversamente visibili su diversi dispositivi.
    Una cosa facile, sto ricreando le pagine d'errore (404, 401, 403, ...)
    Se visualizzato con un dispositivo con uno schermo abbastanza grande la tabella viene visualizzata con in alto il logo del sito, alla riga sotto sulla sinistra un'immagine per l'errore (404) e a destra la descrizione dell'errore.
    Per gli handheld volevo levare la descrizione, quindi una cella dalla tabella, lasciando solo due righe: logo e immagine d'errore.
    <Pagina d'errore in questione.>
    Se c'è un sistema alternativo all'uso delle tabelle va benissimo ugualmente, l'importante è che il risultato visivo resti lo stesso.
    Ho già aggiunto tramite CSS una riga che mi ritaglia un logo più piccolo (largo circa quanto l'immagine 404) così da adattarlo a schermi a più bassa risoluzione, il problema ora è eliminare la cella con la descrizione...

    Grazie per l'aiuto!

  2. #2
    Utente di HTML.it L'avatar di Prill
    Registrato dal
    Oct 2006
    Messaggi
    2,947
    Eviterei sicuramente la tabella, inserirei il logo non come sfondo (così ne gestiresti le dimensioni direttamente nel css, usando dimensioni differenti per i diversi media ma usando sempre la stessa immagine), per lo stesso motivo forse sarebbe preferibile un unico sfondo per l'errore (invece di comporre l'immagine con gli sfondi di più elementi), o meglio anche qui l'immagine, unica, inserita direttamente (anche qui nel css si potrebbero impostare dimensioni diverse e avresti sempre la stessa immagine). Quanto a nascondere la descrizione, avresti due div affiancati - o un solo div con l'immagine e il testo - e nel css per i vari dispositivi il testo avrebbe là dove serve un display:none

  3. #3
    Io per ora uso immagini componibili perché tutte le immagini per creare le schermate d'errore stanno contenute nello stesso file *.png, quindi non uso singole immagini per gli errori per alleggerire il materiale caricato sul dominio, in più così ogni qual volta ti esce una schermata d'errore (si spera raramente) non devi caricare nuove immagini per i diversi errori, ne basta una sola template errore
    Sto provando a fare qualcosa con i div ma non riesco ad allinearli orizzontalmente... in più ho visto in giro che alcuni browsers non riescono a impostare correttamente i div a tabella...

  4. #4
    Utente di HTML.it L'avatar di Prill
    Registrato dal
    Oct 2006
    Messaggi
    2,947
    sì, usando la tecnica sprite carichi una sola immagine, ma il tuo css e il codice html sono più pesanti e soprattutto dovrai costruire un'altra immagine ridotta e ricalcolare tutte le posizioni. Ti mostro un esempio (fatto con le immagini ritagliate, perché così l'ho approntato prima di leggere la tua risposta):

    html per tutti i dispositivi
    codice:
    <div id="wrapper">
     <div id="logo">
      [img]logo.png[/img]
     </div>
     <div id="error">
      [img]404.png[/img]
      
    
    Page not found.  Sorry!
    
          The requested URL was not found on this server.</p>
     </div>
    </div>
    css per pc:

    codice:
    #wrapper {
    	width:575px;
    	margin:10% auto 0 auto;
    }
    #logo {
    	text-align:center;
    }
    #logo img {
    	width:296px;
            height:104px;
    }
    #error {
    	height:111px;
    	padding:10px;
    	overflow:hidden;
    	line-height:1.5em
    }
    #img404 {
    	float:left;
    	width:112px;
    	height:111px;
    	margin-right:30px;
    }
    mentre il css per i dispositivi mobili varierebbe le dimensioni del wrapper, del div error, del logo e dell'immagine di errore e avrebbe un display:none sul paragrafo.

    Se vuoi mantenere i cinque sfondi per l'immagine 404, puoi mantenere questo schema, al posto dell'immagine 404 inserisci un div o un altro paragrafo con float left, assegnagli una larghezza e assegna una larghezza anche al paragrafo che segue.
    Nel css per dispositivi mobili l'elemento con l'immagine di errore avrà larghezza settata su auto e il testo affiancato un display:none

  5. #5
    Ma ho visto che hai usato solo ID... Cosa cambia fra ID e CLASS? Io so che un ID non può essere usato più di una volta all'interno del codice mentre una CLASS può essere adottata quante volte serve... Che differenza c'è oltre a questa? Hanno qualche beneficio particolare?

  6. #6
    Utente di HTML.it L'avatar di Prill
    Registrato dal
    Oct 2006
    Messaggi
    2,947
    ho usato solo id perché non ho elementi ripetuti includendo direttamente le immagini ricostruite.

    La differenza, come osservi, è che le classi possono essere attribuite più volte e nel tuo codice ce n'è bisogno.

    Guardiamo il tuo html:

    codice:
    <div align="center">
    <table cellspacing="10">
          <tr>
            <td colspan="3" align="center" nowrap>[img]src.png[/img]</td>
          </tr>
          <tr>
            <td>
    
    </p></td>
            <td width="111" align="center">[img]src.png[/img]
    [img]src.png[/img][img]src.png[/img][img]src.png[/img]
    [img]src.png[/img]</td>
            <td align="left" nowrap>
    
    Page not found.  Sorry!
    
          The requested URL was not found on this server.
    /404.shtml</p></td>
        </tr>
        </table>
    </div>
    Relativamente all'errore 404 (seconda cella della seconda riga) viene inserita un'immagine trasparente le cui dimensioni sono settate su 1 attraverso gli attributi width e height e poi sono sovrascritte dallo stile assegnato attraverso le classi: con err è impostata l'immagine di sfondo e le dimensioni che vanno bene per i numeretti, con top la posizione del bordo superiore contenuta nell'immagine di sfondo e le dimensioni adatte al bordo superiore.
    La stessa cosa viene fatta per tutte le altre immagini che seguono. Vai a capo e inserisci di seguito tre volte l'immagine trasparente che avrà come sfondo i numeretti e poi su un'altra riga l'immagine trasparente che ha come sfondo il bordo inferiore.
    Hai bisogno in questo caso di classi perché le riutilizzi nella pagina (hai per esempio nella tua pagina più volte il numero 4).
    I vantaggi sono che risparmi sul server il numero di immagini richiamate (è tutto in err_temp.png e in src.png) e magari "proteggi", per modo di dire, le tue immagini mettendogli sopra un'immagine trasparente, rendi il codice anche più oscuro per chi voglia copiarlo; gli svantaggi che l'html risultante è poco ortodosso e soprattutto, se non si ha molta dimestichezza coi css, ci si rende la vita difficile se si deve apportare una modifica. E inoltre, avendo tu bisogno di ridimensionare l'immagine per risoluzioni diverse, hai bisogno di creare un'altra immagine che funga da sfondo (a meno di non usare un background-size che non ha supporto su tutti i browser e che richiederebbe ulteriori complicazioni per esser reso funzionante).

    Poi tutto è relativo e ci si può trovare meglio in un modo anzicché in un altro.

    Per usare tutto come sfondo come fai attualmente, ricopia il codice interno alle celle (correggi
    in
    ) e inseriscilo in div flottanti, secondo lo schema proposto su (ai div assegni dimensioni congeniali a seconda dei dispositivi). Il div wrapper conterrà tutto e sarà centrato, conterrà un div header col codice del logo e poi due div flottanti (il primo sarà largo 111px per pc), l'altro largo lo spazio rimanente. Per dispositivi mobili il primo sarà largo il 100% e avrà un text-align:center se vuoi centrare le immagini, il secondo col testo sarà reso non visibile

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.