Come posso rimuovere il contorno attorno alle immagini dei collegamenti ipertestuali?


96

Quando usiamo la sostituzione del testo usando i CSS e diamo un rientro di prova negativo, es text-indent:-9999px. Quindi, quando facciamo clic su quel collegamento, la linea tratteggiata appare come nell'immagine di esempio qui sotto. Qual è la soluzione per questo?

inserisci qui la descrizione dell'immagine


3
Per favore non rimuoverlo, è lì per motivi di accessibilità.


Duplicato: stackoverflow.com/questions/1142819/… (ma si prega di vedere i commenti sull'accessibilità sopra!)
JohnB

Sono arrivato su questo utilizzando il termine di ricerca sbagliato. Consiglio a chiunque legga questo di essere a conoscenza di queste sottolineature in IE
JGallardo

Risposte:


167

Per Rimuovi contorno per tag di ancoraggio

a {outline : none;}

Rimuovi contorno dal collegamento immagine

a img {outline : none;}

Rimuovi bordo dal collegamento immagine

img {border : 0;}

1
Grazie, Discover. Questo mi ha infastidito per molto tempo - non solo le foto con collegamenti ipertestuali in IE, ma le foto normali senza collegamento ipertestuale. È stato fastidioso finché non ho trovato la tua risposta (tramite Google, non Stack, stranamente).
Jason Weber

25

Puoi usare la proprietà CSS "outline" e il valore "none" sull'elemento di ancoraggio.

a {
outline: none;
}

Spero che aiuti.



9

Tieni presente che gli stili di messa a fuoco esistono per un motivo: se decidi di rimuoverli, le persone che navigano tramite la tastiera non sanno più cosa è a fuoco, quindi stai danneggiando l'accessibilità del tuo sito web.

(Mantenerli in posizione aiuta anche gli utenti esperti a cui non piace usare il mouse)


Non stiamo rimuovendo: focus style. aggiungendo solo uno schema di stile: nessuno così. ci sarà un altro stile predefinito.
Wasim Shaikh,

1
Qual è allora l '"altro stile predefinito"? Per quanto ne so ce n'è solo uno, la linea tratteggiata.
Wolfr

1
Ok .. Forse possiamo usare lo stile diverso per gli screen reader. questa potrebbe essere una soluzione per l'accessibilità.
Wasim Shaikh

Non solo i lettori di schermo utilizzano il contorno, ad alcune persone piace anche navigare nei siti Web con la tastiera.
user2019515

8

C'è lo stesso effetto bordo in Firefox e Internet Explorer (IE) , diventa visibile quando fai clic su un link.

Questo codice risolverà solo IE:

a:active { outline: none; }.

E questo risolverà sia Firefox che IE :

:active, :focus { outline: none; -moz-outline-style: none; }

L'ultimo codice dovrebbe essere aggiunto nel tuo foglio di stile, se desideri rimuovere i bordi del link dal tuo sito.


1
Grazie Mike, questa è davvero una buona risposta. ma utilizzando -moz-outline-style: nessuno; non è un CSS valido. ancora questa è una buona opzione
Wasim Shaikh,

5

includi questo codice nel tuo foglio di stile

img {border : 0;}

a img {outline : none;}

3

Spero che questo sia utile ad alcuni di voi, può essere usato per rimuovere contorni da link, immagini e flash e da MSIE 9:

    a, a:hover, a:active, a:focus, a img, object, embed {
    outline: none;
    ie-dummy: expression(this.hideFocus=true); /* MSIE - Microsoft Internet Explorer 9 remove outline */
    }

Il codice seguente è in grado di nascondere il bordo dell'immagine:

    img {
    border: 0;
    }

Se desideri supportare Firefox 3.6.8 ma non Firefox 4 ... Fare clic su un input type = image può anche produrre un contorno tratteggiato, per rimuoverlo nelle vecchie versioni di firefox il seguente farà il trucco:

   input::-moz-focus-inner { 
   border: 0; 
   }

IE 9 non consente in alcuni casi di rimuovere il contorno tratteggiato attorno ai collegamenti a meno che non includa questo meta tag tra e nelle tue pagine:

     <meta http-equiv="X-UA-Compatible" content="IE=9" />

@Sparky Credo che dovremmo offrire una risposta che sta rispondendo alla domanda raccontando come farlo nei browser più utilizzati, incluso MSIE in quanto era un browser ampiamente utilizzato nel 2014 e informazioni sul meta tag MS e CSS che possono essere utilizzati per Solo MSIE Era solo una parte della mia risposta per offrire supporto per la maggior parte dei browser incluso MSIE ... La domanda NON riguardava il W3C Valid HTML o CSS ...
jagb

@Sparky +1 per questo motivo è vero e non dovremmo mai fidarci di MS css / html / meta tag poiché raramente pensano agli standard W3C .... Non ho detto che sia bene usare i meta tag Microsoft e il loro codice CSS come gli unici browser che supportano il codice MS sono MSIE e i relativi browser MS. Come risposta richiesta alla domanda "Come posso rimuovere il contorno attorno alle immagini dei collegamenti ipertestuali?"
jagb

Ho semplicemente fatto un commento affermando le mie osservazioni.
Sparky

Tuttavia, mi chiedevo se potessi citare una fonte per affermare che questo meta tag è necessario in "alcuni casi" ; e quali potrebbero essere quei casi.
Sparky

Si prega di leggere il sito Web di Microsoft per alcune ma non tutte le informazioni .. ci sono molte domande qui su Stack Overflow, alcune delle domande possono essere elencate accanto a questa domanda sulla barra di destra .. in alcuni casi MSIE / EDGE non può mostra il contenuto della pagina poiché il browser non lo supporta, in "alcuni casi" il metatag X-UA-Compatible è utile per i visitatori MSIE / EDGE. ci sono più informazioni, una correzione che funzionerà è qui spero che questa sia
un'informazione

3

Questo è l'ultimo che funziona su Google Chrome

:link:focus, :visited:focus {outline: none;}

1

-moz-user-focus: ignore; nei browser basati su Gecko (potrebbe essere necessario! importante, a seconda di come viene applicato)


1

Usa così per HTML 4.01

<img src="image.gif" border="0">


1

Puoi inserire overflow:hiddenla proprietà con il rientro del testo e quella linea tratteggiata, che si estende fuori dalla pagina, scomparirà.

Ho visto un paio di post sulla rimozione dei contorni tutti insieme. Fai attenzione quando lo fai perché potresti ridurre l'accessibilità del sito.

a:active { outline: none; }

Personalmente utilizzerei solo questo attributo, poiché se l' :hoverattributo avesse le stesse proprietà CSS, impedirebbe la visualizzazione dei contorni per le persone che utilizzano la tastiera per la navigazione.

Spero che questo risolva il tuo problema.



0

Scommetto che la maggior parte degli utenti non è il tipo di utente che utilizza la tastiera come controllo di navigazione. È quindi accettabile infastidire la maggior parte dei tuoi utenti per un piccolo gruppo che preferisce utilizzare la navigazione da tastiera? Risposta breve: dipende da chi sono i tuoi utenti.

Inoltre, non vedo questa esperienza allo stesso modo in Firefox e Safari. Quindi questo argomento sembra essere principalmente per IE. Tutto dipende davvero dalla tua base di utenti e dal loro livello di conoscenza - come usano il sito.

Se vuoi davvero sapere dove ti trovi e sei un utente della tastiera, puoi sempre guardare la barra di stato mentre digiti il ​​sito.


0

Questo funziona perfettamente per me

a img {border:none;}


0

Qualsiasi immagine che ha un collegamento avrà un bordo attorno all'immagine per indicare che si tratta di un collegamento con browser meno recenti. L'aggiunta di border = "0" al tuo tag HTML IMG impedirà a quell'immagine di avere un bordo intorno all'immagine.

Tuttavia, l'aggiunta di border = "0" a ogni immagine non solo richiederebbe molto tempo, ma aumenterà anche la dimensione del file e il tempo di download. Se non desideri che nessuna delle tue immagini abbia un bordo, crea una regola CSS o un file CSS contenente il codice seguente.

img {stile bordo: nessuno; }


0

Non sono sicuro che questo sia ancora un problema per questa persona, ma so che può essere un dolore per molte persone in generale. Certo, le soluzioni di cui sopra funzioneranno in alcuni casi, ma se, ad esempio, stai utilizzando un CMS come WordPress e i contorni vengono generati da un plugin o da un tema, molto probabilmente non lo farai avrai risolto questo problema, a seconda come stai aggiungendo il CSS.

Suggerirei di avere uno StyleSheet separato (ad esempio, utilizzare il plug-in " Lazyest StyleSheet ") e inserire il seguente CSS al suo interno per sovrascrivere lo stile forzato del plug-in (o del tema) esistente:

a:hover,a:active,a:link {
    outline: 0 !important;
    text-decoration: none !important;
}

L'aggiunta di " ! Important " alla regola specifica renderà questa una priorità da generare anche se la regola potrebbe essere altrove (sia che si tratti di un plugin, di un tema, ecc.).

Questo aiuta a risparmiare tempo durante lo sviluppo. Certo, puoi cercare la fonte originale, ma quando lavori su molti progetti, o devi eseguire aggiornamenti (dove le tue modifiche possono essere sovrascritte [ non suggerito! ]), O aggiungere nuovi plugin o temi, questo è il migliore ricorso per risparmiare tempo.

Spero che questo aiuti ... Pace!


0

Se la soluzione sopra non funziona per nessuno. Prova anche questo

a {
 box-shadow: none;
}

-9

Sì, possiamo usare. CSS ripristinato come a {outline:none}e anche


a:focus, a:active {outline:none} per la migliore pratica nel reimpostare CSS, la soluzione migliore è usare comune :focus{outline:none}Se hai ancora l'opzione migliore per favore condividi


20
Non è un po 'scortese non accettare una delle altre risposte, il cui contenuto ti ha portato alla conclusione?
Pekka
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.