2013-04-29 7 views
38

mam <button> ze znacznikiem hiperłącza wewnątrz, wygląda następująco:zagnieżdżanie <a> wewnątrz <button> nie działa w Firefoksie

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

Działa to dobrze w Chrome i Safari, ale nie działa w Firefoksie (ver 20 przetestowany).

Co jest nie tak?

+3

Dlaczego miałbyś taki kod? Zakotwiczenie w tagu przycisku nie jest poprawne HTML afaik. Lepiej byłoby po prostu stylizować znacznik kotwicy tak, aby wyglądał jak wybrany styl przycisku i całkowicie pozbyć się znacznika przycisku. –

+1

hahahahahah ... dlaczego wcześniej o tym nie myślałem: P, to były miesiące kodujące w ten sposób: S – cjmling

+4

tak, Bootstrap z przyjemnością przyjmuje wszystkie klasy "btn" na znacznikach kotwicznych, co pokazałem w moja odpowiedź poniżej :) –

Odpowiedz

43

Aby pracować we wszystkich przeglądarki Firefox też trzeba go zmienić na

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

lub sugerowane przez Billy Fosa w przypadku bootstrap nie było potrzeby <button> można po prostu zrobić

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

Dobrze, ale do wykonania - pierwsza opcja przerywa style, gdy używasz grupy przycisków w bootstrapie. :( – Mark

+0

To jest niebezpieczny człowiek ... – HussienK

+0

@HussienK, ale dlaczego? – thefromanguard

17

Prawdopodobnie lepiej po prostu to zrobić:

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

Z wyjątkiem zakotwiczeń nie są tak w pełni klawiaturowe jak przyciski. – jtheletter

3

Ten problem dzieje się w FF i IE (< 10). Przeglądarka po prostu nie lubi przycisku znacznika, gdy jest używany jako łącze.

Szybkie rozwiązanie w bootstrapie to użycie i podanie klasy btn btn-default (lub wyboru stylu przycisku).

Można jednak użyć w formularzu (przycisk Wyślij na przykład) i nie powinieneś mieć problemu.

0

Możesz po prostu użyć metody onclick zamiast zmieniać strukturę HTML, jeśli nie możesz zmienić struktury z powodu czegoś, co nie pozwala na zmianę (np. Składniki bootstrap jako grupy list, to jest moja sprawa hehe) i głównie jeśli chcesz umieścić dwa lub więcej linków wewnątrz przycisku:

<button class="btn"><a onclick="location.replace('YOUR_URL_HERE')"></a></button> 
Powiązane problemy