Visualizzazione dei risultati da 1 a 10 su 10

Discussione: rollover bottone DIV

  1. #1

    rollover bottone DIV

    Salve
    sapete dirmi dove sbaglio?
    Ho scritto tramite css un rollover su un'immagine che mi serve da bottone; come tale ha bisogno di un rollover...

    Allora io ho settato:

    __________________________________________________ ___

    .pulsanteCATEGORIE {
    position:absolute;
    background:url(../images/UP.jpg);
    width: 116px;
    height:28px;
    top:170px;
    left:13px;
    right:13px;
    }

    div:hover.pulsanteCATEGORIE {
    position:absolute;
    background:url(../images/DOWN.jpg);
    width: 116px;
    height: 28px;
    top:170px;
    left:13px;
    right:13px;
    }

    __________________________________________________ ___

    top, left e right mi servono per posizionare correttamente il div all'interno della mia pag html.

    Perchè però quando poubblico la pagina non mi da alcun segno di rollover????
    nell'html ho inserito il div in questo modo:

    __________________________________________________ _______


    <a href="http://www.libero.it"><div class="pulsanteCATEGORIE"></div>
    </a>
    __________________________________________________ ________

    Cosa sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Cosa sbaglio?
    Diverse cose.
    Fondamentalmente sbagli la semantica degli oggetti HTML, cosa che molti browser perdonano, ma non tutti e quindi il risultato finale sara` molto aleatorio.

    Ci sono alcuni modi "standard" di fare il rollover in CSS: ecco alcuni link:
    Bottoni con rollover
    Bottoni creativi e CSS
    Bottoni di submit a tre stati
    Bottoni con rollover flessibili

    PS: quando inserisci codice usa sempre i pulsanti VB che trovi sopra l'area di inserimento testo: in particoalre usa il bottone marcato #
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    ok per il P.S.
    ho guardato i link che mi hai allegato e ti ringrazio ma non sono ugualmente riuscita a far funzionare il mio bottone grafico all'interno del div...

  4. #4
    allora... ora il rollover sul bottone mi funziona ma a questo punto mi è sorta una domanda diversa...

    Il mio layout è così fatto:

    ------------
    ! 1 ! (contiene 1 immagine)
    ------------
    ! 2 ! ( contiene del testo)
    ------------

    il mio bottone si visualizza all'interno del 2° box...
    a me non funzionava perchè lo avevo scritto prima del 1° box... ma scusate la domanda.. i div non dovrei poterli inserire nel modo a me più utile inserendo per la visualizzazione dimensioni e coordinate?

    Mi spiego.. siccome sto facendo un sito che andrà poi posizionato sui motori.. mi è stato detto che i div posso posizionarli a livello di codice come voglio

    esempio se il box1 ha un'immagine e il box2 del testo posso scrivere:
    <div id="container">
    <div id="box2"></div>
    <div id="box1"></div>
    </div>

    ma facendo così il rollover non me lo faceva vedere... a questo punto vi chiedo... ma è vero che me li posso scrivere nell'ordine che più voglio?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per il posizionamento sui motori:
    E` molto importante la correttezza semantica: un codice come il tuo viene valutato molto male, dato che non segue le regole sintattiche e semantiche dell'HTML.
    Un <div> dentro un <a> non ci puo` stare: sarebbe come voler mettere una casa dentro un'automobile; puoi provare a disegnarla, ma poi nella realizzazione qualcosa non funzionera`.
    Tieni presente che la casa ha le fondamenta, l'automobile le ruote, e non puoi pensare di mettere le fondamenta all'auto o le ruote alla casa.

    L'ordine degli oggetti lo puoi cambiare, ma le difficolta` che incontri diventano enormi: in particolare l'uso dei posizionamenti assoluti non e` semplice e se fatto in modo amatoriale, porta quasi sempre a layout assurdi quando visualizzati in browser o sistemi diversi da quello di chi li ha progettati.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    ok ti ringrazio per la dritta delle ruote alla casa

    ma a questo punto se io in ogni caso ho creato un div per inserire un bottone... se non posso inserire scrivere
    <div class="pulsanteCATEGORIE"></div>
    come faccio ad associare il link al bottone?

    Io avrei tranquillamente creato un div e messo dentro una tabella con tutti i miei 7 bottoni... ma siccome mi è stato tassativamente vietato di usare le tabelle come posso fare?
    Ora mi sono fatta 7stili diversi e 7 rollover diversi applicati a 7div diversi...
    dove dentro ognuno dei quali ho messo l'immagine grafica del tale bottone... ma facendo così il link solo prima del div lo posso applicare... o sbaglio?
    Ma poi... ma è così vero che è errato usare le tabelle? anche in questo caso?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma cosa intendi tu per "bottone"?

    Comunque in <div> non puo` stare dentro un <a>. Eventualmente puoi inserire uno <span> dentro il tuo <a>.

    Ma forse non serve. Potrebbe essere sufficiente:
    Categorie

    ma è così vero che è errato usare le tabelle? anche in questo caso?
    E` vero.
    La tua e` una lista, non una tabella. Le tabelle servono per mettere in relazione righe e colonne: una sola riga (o colonna) non fa una tabella.
    Ed e` anche sbagliato usare 7 <a> affiancati: devi usare una lista.

    Mi pare di capire che vuoi realizzare un menu semplice. Prova a vedere le raccolte di menu, come sono fatte: tra i "link utili" ci sono vari riferimenti: quello di CSSplay e` molto ben fornito, e sono tutti menu che puoi copiare senza paricolari formalita` (credo che il copyright ti obblighi solo ad inserire il link nei commenti del menu).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    scusami se mi approfitto ma mi stai aiutando veramente tanto...
    allora si CSSplay sono andata e alcune cose le ho captate... non sono riuscita però a trovare quello che esattamente mi serve...

    Allora provo a farti capire meglio:
    Allora io devo creare usando i div questa cosa Immagine Menu

    dove ogni bottone, CATEGORIE, ALBERGHI etc etc per ora sono tutti controllati da un CSS sul div che li contiene... credo a questo punto di aver fatto un enorme errore da come mi dici.. ma per ora io il menu l'ho settato così..

    CSS:menuSUPERIORE.css --------------------------------------------------------------

    .pulsanteCATEGORIE {
    position:absolute;
    width:116px;
    height:28px;
    top:170px;
    left:20px;
    right:13px;
    background-image: url(../images/btn_nuovi/btn_categorie.jpg);}

    .pulsanteCATEGORIE:hover {
    position:absolute;
    width:116px;
    height:28px;
    top:170px;
    left:20px;
    right:13px;
    background-image: url(../images/btn_nuovi/btn_categorie_up.jpg);}

    .pulsanteALBERGHI {
    position:absolute;
    width:116px;
    height:28px;
    top:170px;
    left:136px;
    right:13px;
    background-image: url(../images/btn_nuovi/btn_alberghi.jpg);}

    .pulsanteALBERGHI:hover {
    position:absolute;
    width:116px;
    height:28px;
    top:170px;
    left:136px;
    right:13px;
    background-image: url(../images/btn_nuovi/btn_alberghi_up.jpg);}
    -------------------------------------------------------------------------------------
    e così via per ogni bottone

    e ho scritto ciò nell'HTML-------------------------------------------------------------

    <a href="http://www.miosito.com"><div class="pulsanteCATEGORIE" title="categorie">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsanteALBERGHI" title="alberghi">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsanteRISTORANTI" title="ristoranti">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsanteSHOPPING" title="shopping">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsanteVIAGGI" title="viaggi">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsantePROMOZIONI" title="promozioni">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsanteSERVIZI" title="servizi">
    </div></a>
    <a href="http://www.miosito.com"><div class="pulsantePUBBLICITA" title="pubblicità">
    </div></a>
    --------------------------------------------------------------------------------------

    Così fatto il menu mi funziona perfettamente, facendomi il rollover a linkando anche al mio sito come gli ho chiesto e mi apparemi esattamente come nella figura allegata... mi rendo ora conto che in effetti però è un pò macchinoso dover fare 7div, che caricano 7 immagini diverse e ad ogni div dare dimensioni e coordinate :s o dio sto impazzendo

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In effetti la cosa e` fattibile in modo molto piu` semplice, senza usare i posizionamenti.

    E poi i bottoni sono tutti uguali, quindi il rollover e` unico per tutti.
    La scritta non puo` far parte della grafica, altrimenti addio accessibilita` ed addio al posizionamento nei motori: un menu realizzato con solo elementi grafici non e` accessibile e non e` indicizzabile.

    Quindi la cosa va realizzata:
    codice:
    <ul id="menu">[*]categorie[*]alberghi
      ...[/list]
    Nella marcatura non va aggiunto altro: e` sufficiente per tutti, e la cosa e` decisamente pulita e chiara.

    Il CSS si deve occupare del resto (la grafica e la formattazione)
    codice:
    #menu {
      width: 100%;
      height: ...;
    }
    #menu li {
      float: left;         /* questo fa affiancare gli oggetti */
      display: inline;   /* pleonastico - per far contento IE */
      margin-right: 1px;  /* lo spazietto piu` chiaro tra i vari link */
      height: ...;
      width: 14%;        /* per 7 oggetti - in alternativa larghezza in px (e` piu` semplice sistemare le immagini) */
    }
    #menu a {
      display: block;
      width: 100%; height: 100%;
      background: url(...);           /* questa immagine e` doppia: contiene anche l'hover */
      background-position: 0 0;  /* posizione dello sfondo per vedere solo lo stato a riposo */
      font: helvetica, Arial, sans-serif;   /* scegli un font simile a quello che vorresti */
      font-variant: small-caps;
      text-align: center;      /* centrare il testo all'interno del "bottone" */
    }
    #menu a:hover {
      background-position: 0 20px;    /* inizio della posizione dello stato :hover dello sfondo */
    }
    L'immagine di sfondo deve essere doppia, come spiegato in alcuni dei link postati sopra.
    Devi fare in modo che il testo assomigli il piu possibile al tuo. Probabilmente helvetica e` un buon compromesso, ma se ne trovi uno migliore, mettilo per primo, poi lascia anche helvetica, arial e sans-serif, inmodo che i brwoser che non conoscono i font piu` simili ne utilizzino di quelli non troppo brutti.

    Questo descritto e` il primo passo. Si puo` poi migliorare, si pososno aggiungere immagini specifiche per ogni bottone, ma occorre conosere le tecniche di progressive-enhancement, altrimenti limiti accessibilita` e usabilita`, e perdi anche visibilita` nei motori.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    ok ora provo a fare come mi hai detto anche se purtroppo già so che qui non gli andrà bene xche da quando un programmatore esterno gli ha detto che il codice è fatto coi piedi hanno deciso di rifare con i div solo una parte del portale e cioè quella a cui loro puntano maggiormente...

    Questo mi crea la vita molto più difficile perchè mi obbliga a creare una struttura che in ogni caso non può risultare diversa dal resto :S

    Cmq ora faccio come mi hai detto... al limite diventerà un mio bagaglio di conoscenze!
    Per loro non so proprio come risolvere

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 © 2026 vBulletin Solutions, Inc. All rights reserved.