Jak opisuje @ j08691, zagnieżdżone elementy a
są zabronione w składni HTML. Specyfikacje HTML nie mówią, dlaczego; po prostu podkreślają regułę.
Po stronie praktycznej przeglądarki skutecznie egzekwują to ograniczenie w swoich regułach parsowania, więc w przeciwieństwie do wielu innych problemów, naruszenie specyfikacji właśnie nie będzie działać. Analizatory składni skutecznie traktują znacznik początkowy <a>
wewnątrz otwartego elementu a
jako niejawnie kończący element otwarty przed rozpoczęciem nowego.
Więc jeśli napiszesz <a href=foo>foo <a href=bar>bar</a> zap</a>
, nie dostaniesz zagnieżdżonych elementów. Przeglądarki będą analizować je jako <a href=foo>foo</a> <a href=bar>bar</a> zap
, tj. Jako dwa kolejne łącza, po których następuje zwykły tekst.
Nie ma nic nieodłącznie nielogicznego z zagnieżdżonymi elementami a
: można je zaimplementować tak, że kliknięcie "foo" lub "zap" aktywuje zewnętrzny link, kliknięcie "bar" aktywuje wewnętrzne łącze. Ale nie widzę powodu, aby używać takiej struktury, a projektanci HTML prawdopodobnie też jej nie widzieli, więc postanowili jej zabronić, a tym samym uprościć pewne rzeczy. .
(Jeśli naprawdę chciał symulować zagnieżdżone odnośniki, można użyć zwykłego link jako zewnętrznego linku i element span
z odpowiednim obsługi zdarzeń jako wewnętrzną „link” Alternatywnie, można powielać linki: <a href=foo>foo</a> <a href=bar>bar</a> <a href=foo>zap</a>
.)
Co może być tego przyczyną? po prostu chcę więcej wyjaśnienia. – Anoop
@Sushil - Odpowiedz mi na to - jaki byłby sens zagnieżdżonego elementu "a"? Co to może oznaczać? – Oded
Tak, to nie ma sensu, ale to było dla mnie nowe, więc chciałem mieć pewność, że mogę umieścić span, img .. znaczniki wewnątrz znacznika kotwicy. – Anoop