Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di Anu
    Registrato dal
    Nov 2012
    Messaggi
    28

    CSS: La proprietà :focus - selezionare una riga

    Salve a tutti, sono nuovissimo del forum(mi presenterò nell'apposita sezione..)
    Vorrei porvi un quesito:

    data la seguente lista:

    <div class="ciao">
    <ul>[*]elemento1[*]elemento2[*]elemento3[*]elemento4[/list]
    </div>

    Vorrei che un elemento della lista rimanesse "attivo" al click.
    Ho letto della proprietà focus, ma a quanto sembra non funziona.

    CSS:

    .ciao{
    background:grey;
    }
    .ciao ul{

    }
    .ciao ul li{
    width:100%;
    cursorointer;
    backgroundink;
    }
    .ciao ul li:hover{
    background:black;
    color:white;
    }
    .ciao ul li:focus{
    background:red;
    }

    Grazie infinite

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Con solo CSS non si puo` fare.

    Sposto in JS
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di Anu
    Registrato dal
    Nov 2012
    Messaggi
    28
    Ottimo grazie, è già un'informazione molto utile!

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <div class="ciao" onclick="this.style.backgroundColor='qui-metti-il-colore-che-vuoi'">
    <ul>[*]elemento1[*]elemento2[*]elemento3[*]elemento4[/list]
    </div>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Credo che Anu intendesse una cosa di questo tipo:

    codice:
    CSS:
    .ciao{
      background:grey;
    }
    .ciao ul li{
      width:100%;
      background: ...;
    }
    .ciao ul li:hover{
      background:black;
      color:white;
    }
    
    
    JS:
    var lastobj = "";    /* globale per ricordarsi ultimo evidenziato */
    
    function attiva(obj) {
      lastobj.style.backgroundColor = "grey";
      obj.style.backgroundColor = "red";
      lastobj = obj;
    }
    
    
    HTML:
    <div class="ciao">
      <ul>
        <li onclik="attiva(this);">elemento1
        <li onclik="attiva(this);">elemento2
        <li onclik="attiva(this);">elemento3
        <li onclik="attiva(this);">elemento4[/list]
    </div>
    Nota: con questa sintassi non funziona nei brwoser IE vecchi (e neppure nei nuovi con DTD transitional)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Prova a vedere se è questo quello che cerchi:
    codice:
    <!DOCTYPE html>
    <html>
        <head>
        <meta charset=utf-8 />
            <title>Cambia colore sfondo al click</title>
            <style>
                .ciao{
                    background:grey;
                }
                .ciao ul{
                }
                .ciao ul li{
                    width:100%;
                }
                .ciao ul li:hover{
                    background:black;
                    color:white;
                }
                .rosso {
                    background:red;
                }
            </style>
        </head>
    
        <body>
            <div class="ciao">
                <ul>
                    <li onclick="this.className='ciao rosso'">elemento1
                    <li onclick="this.className='ciao rosso'">elemento2
                    <li onclick="this.className='ciao rosso'">elemento3
                    <li onclick="this.className='ciao rosso'">elemento4[/list]
            </div>
        </body>
    </html>

  7. #7
    Utente di HTML.it L'avatar di Anu
    Registrato dal
    Nov 2012
    Messaggi
    28
    Grazie a tutti e tre,
    il metodo di ferie e cavicchiandrea funziona, solo che il li poi rimane selezionato non posso più toglierlo... Mi sono dimenticato di specificare che deve essere una selezione univoca, ovvero solo un elemento per volta.
    Per quanto riguarda Mich_, il crossbrowser è fondamentale per questo sito che devo fare

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il fatto e` che le pseudoclassi nei browser IE si applicano solo ai tag <a>.
    Pertanto in questo senso tutti i metodi non funzionano allo stesso modo.

    Se pero` usi una DTD Strict, allora anche IE (dal 6 in poi) funziona in modo standard, e le pseudoclassi dovrebbero funzionare anche per gli altri tag.

    Per quanto riguarda la parte JS, fondamentalmente la logica che sta sotto ai tre metodi e` simile; nel mio pero` c'e` anche il reset dell'ultimo elemento selezionato prima di selezionare il prossimo.

    So che ci sono metodi piu` furbi per farlo, ma sono ormai anni che non uso piu` JS, e non ricordo piu` tante cose.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di Anu
    Registrato dal
    Nov 2012
    Messaggi
    28
    Originariamente inviato da Mich_
    Il fatto e` che le pseudoclassi nei browser IE si applicano solo ai tag <a>.
    Pertanto in questo senso tutti i metodi non funzionano allo stesso modo.

    Se pero` usi una DTD Strict, allora anche IE (dal 6 in poi) funziona in modo standard, e le pseudoclassi dovrebbero funzionare anche per gli altri tag.

    Per quanto riguarda la parte JS, fondamentalmente la logica che sta sotto ai tre metodi e` simile; nel mio pero` c'e` anche il reset dell'ultimo elemento selezionato prima di selezionare il prossimo.

    So che ci sono metodi piu` furbi per farlo, ma sono ormai anni che non uso piu` JS, e non ricordo piu` tante cose.
    Capisco.. in tal caso non potrei semplicemente assegnare un tag <a> alla[*] e poi disabilitare il suo utilizzo oppure viola qualche regola?
    Grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Esatto: quello e` il workaround che si usa:
    codice:
    [*] ...   [*] ... 

    Poi nel CSS devi anche aggiungere:
    codice:
    .... li a {
      display: block;
      width: 100%;
      height: 100%;
    }
    e ricorda poi di applicare tutti gli attributi CSS e il JS al tag <a> anziche` al tag[*]
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.