2013-04-29 11 views
38

Ho un <button> con un tag di collegamento ipertestuale nel, assomiglia a questo:Nesting <a> all'interno <button> non funziona in Firefox

<button class="btn"><a href="#"></a></button> 

Questo funziona bene in Chrome e Safari, ma non funziona in Firefox (ver 20 testati).

Cosa c'è che non va?

+3

Perché si dovrebbe avere il codice in questo modo? Avere un'ancora all'interno di un tag del pulsante non è corretto. Sembrerebbe meglio semplicemente stile il tag di ancoraggio per assomigliare allo stile del pulsante che desideri e sbarazzarti del tag del pulsante. –

+1

hahahahahah ... perché non ci avevo pensato prima: P, erano mesi che scrivevo in quel modo: S – cjmling

+4

sì, Bootstrap è abbastanza felice di accettare tutte le classi "btn" sui tag di ancoraggio come ho mostrato in la mia risposta qui sotto :) –

risposta

43

per farlo funzionare in tutti i browser, Firefox troppo si deve cambiare a

<a href="#"><button class="btn"></button></a> 

o come suggerito da Billy Moat in caso di bootstrap non c'era bisogno di <button> si può solo fare

<a href="#" class="btn">GO</a> 
+2

Giusto, ma FYI - il la prima opzione interrompe gli stili quando si utilizza un gruppo di pulsanti in bootstrap. :( – Mark

+0

Questo è un uomo pericoloso .... – HussienK

+0

@HussienK ma perché? – thefromanguard

17

Probabilmente meglio di fare proprio questo:

<a href="#" class="btn">Go!</a> 
+0

Tranne che gli ancoraggi non sono completamente navigabili da tastiera come i pulsanti. – jtheletter

3

questo problema sta accadendo in FF e IE (< 10). Al browser non piace il pulsante tag quando viene utilizzato come collegamento.

La soluzione rapida in bootstrap consiste nell'utilizzare e assegnare una classe di btn btn-default (o la scelta dello stile dei pulsanti).

Tuttavia, è possibile utilizzare in un modulo (pulsante di invio per esempio) e non si dovrebbe avere un problema.

0

È possibile utilizzare semplicemente un metodo onclick anziché modificare la struttura HTML, se non è possibile modificare la struttura a causa di qualcosa che non consente di modificare (ad esempio componenti di bootstrap come gruppi di elenchi, è il mio caso hehe) e soprattutto se si desidera inserire due o più collegamenti all'interno di un pulsante:

<button class="btn"><a onclick="location.replace('YOUR_URL_HERE')"></a></button> 
Problemi correlati