在我的隨機測試期間,我看到了一種行為,我將錨標記放在另一個錨標記內。我做了一個jsfiddle。<a class="groupPopper"> <a class="name"> content</a></a>但在開發(fā)人員工具中它看起來不同:我相信我們不能將錨標記放在另一個錨標記內,因為單擊內部錨點會將click事件冒泡到父錨標記,這不應該被允許。我的假設是否正確?
3 回答

倚天杖
TA貢獻1828條經驗 獲得超3個贊
a
HTML語法中禁止使用嵌套元素。HTML規(guī)范沒有說明原因;?他們只是強調規(guī)則。
實際上,瀏覽器在解析規(guī)則中有效地強制執(zhí)行此限制,因此與許多其他問題不同,違反規(guī)范是行不通的。解析器有效地將<a>
open?a
元素內的開始標記視為在開始新元素之前隱式地終止open元素。
所以如果你寫<a href=foo>foo <a href=bar>bar</a> zap</a>
,你將不會得到嵌套元素。瀏覽器會將其解析為<a href=foo>foo</a> <a href=bar>bar</a> zap
,即作為兩個連續(xù)的鏈接后跟一些純文本。
嵌套a
元素本身并不存在任何不合邏輯:它們可以實現(xiàn),以便點擊“foo”或“zap”激活外部鏈接,單擊“bar”激活內部鏈接。但是我沒有理由使用這樣的結構,HTML的設計者可能也沒有看到它,所以他們決定禁止它,從而簡化了事情。
(如果您真的想模擬嵌套鏈接,可以使用普通鏈接作為外部鏈接,span
使用合適的事件處理程序作為內部“鏈接”?;蛘?,您可以復制鏈接:<a href=foo>foo</a> <a href=bar>bar</a> <a href=foo>zap</a>
。)
添加回答
舉報
0/150
提交
取消