2013-05-06 8 views
6

Ho aggiunto tutte le mie icone in uno sprite. Ora, ho bisogno di mostrare un'icona da quello sprite con un link. Quando aggiungo lo sprite e ne imposto la posizione di sfondo sul link, tutto lo sfondo del collegamento è lo sprite sprite. enter image description hereottieni l'immagine da sprite e aggiungi a un href

a{ 
    background-image:url('sprite.png'); 
} 
.sprite_link_icon{ 
    padding-left: 20px; 
    background-position: -36px -10px 
} 
<a class="sprite_link_icon" href="">test link test</a> 

Come faccio a impostare la larghezza e l'altezza dello sprite, in modo che mostri solo un'icona?

È l'unico modo per aggiungere due div nel tag "a"? In primo luogo, il div con l'icona sprite e la larghezza e l'altezza impostate, e nell'altro testo?

<a href=""> 
    <div class="sprite_link_icon" style="width: 10px; height: 10px;"></div> 
    <div>test link</div> 
</a> 
+0

possibile duplicato [Clip/Crop background-image con i CSS] (http://stackoverflow.com/questions/7777159/clip-crop-background-image-with-css) – Antony

+0

E con la risposta giusta! – Rudie

risposta

3

Si potrebbe utilizzare :before o :after per spostare lo sfondo reale a un altro elemento (pseudo-) che è esattamente la giusta dimensione di un'icona.

Qualcosa di simile a questo:

.icon { 
    /* nothing special here, just a dynamic element, 
    maybe with a fixed height? */ 
} 
.icon:before { 
    content: ''; 
    display: inline-block; 
    height: 16px; 
    width: 16px; 
    background: url(...) etc; 
    margin-right: .25em; /* might not be necessary due to inline-block */ 
} 

un violino: http://jsfiddle.net/rudiedirkx/RG3Kd/ (con dimensioni di sbagliato, perché non ho un buon sprite a portata di mano).

+0

Questa è la risposta corretta, per quanto mi riguarda. Nessun HTML aggiuntivo, torna a IE7 e facilmente riconfigurabile nel caso in cui le dimensioni dello sprite debbano cambiare. –

0

Non si può fare così, quando si fanno gli sprite dovresti avere idea di quanta sarà la larghezza e l'altezza dell'elemento.

È possibile risolvere il problema quando si aggiunge uno span nel tag "a" e si aggiunge lo sfondo ad esso, con larghezza e altezza specifiche. Oppure puoi riorganizzare il tuo sprite.

0

Utilizzare questo codice in stile:

a 
    { 
     background-color:#00cc00; 
     padding-left:20px; 
     } 

    a span 
    { 
     background-color:#fff;    
     }  

allora questo html:

<a href="#"><span>test link</span></a> 
Problemi correlati