Wie @ j08691 beschreibt, sind verschachtelte aElemente in der HTML-Syntax verboten. HTML-Spezifikationen sagen nicht warum; Sie betonen nur die Regel.
Auf der praktischen Seite setzen Browser diese Einschränkung in ihren Parsing-Regeln effektiv durch. Im Gegensatz zu vielen anderen Problemen funktioniert ein Verstoß gegen die Spezifikationen einfach nicht. Die Parser behandeln ein <a>Start-Tag in einem offenen aElement effektiv als implizites Beenden des offenen Elements, bevor ein neues gestartet wird .
Wenn Sie also schreiben <a href=foo>foo <a href=bar>bar</a> zap</a>, erhalten Sie keine verschachtelten Elemente. Browser analysieren es als <a href=foo>foo</a> <a href=bar>bar</a> zap, dh als zwei aufeinanderfolgende Links, gefolgt von einfachem Text.
Verschachtelte aElemente sind von Natur aus nicht unlogisch : Sie können so implementiert werden, dass durch Klicken auf "foo" oder "zap" der äußere Link und durch Klicken auf "bar" der innere Link aktiviert wird. Aber ich sehe keinen Grund, eine solche Struktur zu verwenden, und die HTML-Designer haben wahrscheinlich auch keine gesehen, also haben sie beschlossen, sie zu verbieten und dadurch die Dinge zu vereinfachen.
(Wenn Sie wirklich verschachtelte Links simulieren möchten, können Sie einen normalen Link als äußeren Link und ein spanElement mit einem geeigneten Ereignishandler als inneren „Link“ verwenden. Alternativ können Sie Links duplizieren : <a href=foo>foo</a> <a href=bar>bar</a> <a href=foo>zap</a>.)
a > div > aund Chrome und Firefox lassen sie beide so existieren, wie ich sie geschrieben habe, und sie lösen sie während des Parsens nicht auf (ich habe Edge nicht getestet).