2009-04-10 23 views
5

Quando si aumenta l'altezza della linea di un elemento, si inizia a ottenere spazi vuoti tra ogni riga di testo. Il più delle volte va bene, dal momento che non vedi il divario specifico.Eliminare la distanza tra le righe di testo

Ma è problematico quando si dispone di una colonna stretta, con un collegamento che viene eseguito su più righe. Se sposti il ​​mouse sopra il link, c'è un piccolo spazio tra le linee che fa lampeggiare l'effetto hover del link.

Da un punto di vista di progettazione/usabilità, ritengo che ciò costituisca un'esperienza utente negativa (a nessuno piace il flashing casuale). Provare con questo:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In est. Nunc aliquam, eros a aliquam consequat, ante diam rutrum risus, et dignissim ligula turpis et ante. Maecenas leo neque, euismod in, aliquam et, molestie ac, ligula. Integer venenatis. Pellentesque enim. Maecenas aliquet, tortor at molestie sodales, urna velit pulvinar lorem, ac malesuada nibh turpis eu tortor.

posso aggiungere un po 'di imbottitura per i collegamenti per evitare che ciò accada, in alcuni casi, ma non funziona quando il testo è più grande; Ho bisogno di più imbottiture. Qualcuno ha idee per soluzioni?

+0

Che cosa intendi esattamente con "ma non funziona quando il testo è più grande, ho bisogno di più padding"? Puoi fornire un esempio? Non usa le unità relative per la correzione del padding? – mercator

+0

Probabilmente puoi provarlo usando Firebug con il link sopra (ora corretto). Se aggiungi uno sfondo al link, vedrai il divario. Ora aumenta il riempimento, il divario scompare. Ora aumenta la dimensione del carattere, il divario appare di nuovo. Quindi il padding funziona a volte ma non è affidabile. – DisgruntledGoat

risposta

6

Provare a risolvere il problema di lampeggiamento impostando il display: blocco per l'elemento <a> in quella colonna stretta.

+0

Non è una soluzione terribile. Il problema in questo caso è che l'effetto hover appare quando il mouse si trova nella "casella generata" ma non effettivamente sul link (cioè a destra della linea). – DisgruntledGoat

1

Se si conosce il punto di inizio e la fine di ogni linea si potrebbe mettere un arco tondo ogni riga, e trasformarlo in un blocco in linea

#wrap {font-size:14px; line-height:16px;} 
a span{display:-moz-inline-block; display:inline-block;line-height:14px;padding:1px 0;} 
a:hover {background:red;} 

<div id="wrap"> 
dsvlaksvh; asvj asdfh;dhldv hd d dl h dfhd d dfh; daljfda k;d <a href="#" > 
<span>hdv </span><span>dvh ldvhldf dhk </span><span>;dhkdf hdl hdfk 
</span><span>dfhkldf h vkhg j</span></a> glj gj f gjl fjl fj f 
    </div> 
+0

Non sono sicuro che sia intenzionale, ma nella tua span {} non sarebbe il secondo display: il blocco in linea annulla il blocco -moz-inline? –

+0

sì, lo farebbe. è in questo ordine perché ffx 2 non supporta il blocco in linea, quindi è necessario l'hack, ma ffx 3 lo supporta, quindi mettere inline-block per ultimo si assicura che sia applicato – wheresrhys

0

Usare unità relative per impostare l'imbottitura.

L'aggiunta di padding: 0.2ex 0; background: red; utilizzando Firebug/Dragonfly al collegamento di esempio nella domanda funziona perfettamente per me, indipendentemente dalle dimensioni del carattere (impostate tramite CSS o ingrandendo).

L'unico problema con la modifica della dimensione del font in Firefox è che lo sfondo inizia a sovrapporsi alla riga precedente; ma questo è un problema line-height.