2010-07-31 20 views
28

Google fu của tôi không hoạt động tối nay. Các phần tử html hợp lệ, nếu có, có thể chứa trong một thẻ <a> là gì?Những yếu tố nào có thể được chứa trong thẻ <a>?

<a> ?? </a> 
+0

[Trang MDN 'a'] (https://developer.mozilla.org/en-US/docs/Web/HTML/Elem ent/a) nói "Nội dung được phép: Trong suốt, chứa [flow content] (https: //developer.mozilla).org/vi-US/tài liệu/Web/Hướng dẫn/HTML/Content_categories # Flow_content) hoặc [nội dung phrasing] (https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) " – Jeroen

Trả lời

27

Phần tử nội tuyến (a, span, strong, em trong số các yếu tố khác) có thể chứa các phần tử văn bản và nút nội tuyến khác. Một neo có thể chứa một khoảng, có thể chứa một nút văn bản.

Nói chung, các thành phần cấp khối có thể chứa các phần tử nội tuyến và các phần tử cấp độ khối khác . Nói chung, các yếu tố nội tuyến chỉ có thể chứa dữ liệu và các yếu tố nội tuyến khác. Vốn có trong sự khác biệt về cấu trúc này là ý tưởng chặn các phần tử tạo cấu trúc "lớn hơn" so với các phần tử nội tuyến .

Từ http://www.w3.org/TR/html401/struct/global.html

Như đã đề cập trong câu trả lời khác, bạn không thể làm tổ một a trong một a.

+0

vì vậy ' ble Ahmad

+1

Bạn có thể tìm hiểu xem bạn có tạo tài liệu html và xác thực @ http://validator.w3.org/ :) –

+0

câu hỏi đã thực sự lấy cảm hứng từ một câu hỏi SO :) Tôi không thực sự làm điều này và bằng cách nào đó không bao giờ nhìn thấy bản thân mình bằng cách sử dụng một '' trong một '' .. Cảm ơn .. thêm 6 phút để đi trước khi tôi có thể đánh dấu này – Ahmad

3

An <a> thẻ có thể chứa bất kỳ Inline Element bên cạnh thẻ <a> khác.

2

Nó có thể chứa văn bản thuần túy và các yếu tố nội tuyến. yếu tố Inline đang theo dõi:

TT | I | B | BIG | SMALL | EM | STRONG | DFN | CODE | SAMP | 
KBD | VAR | CITE | ABBR | ACRONYM | A | IMG | OBJECT | BR | 
SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO 

Nhưng A không thể được lồng trong A khác và làm tổ SCRIPT không làm Senese.

+0

Bạn đã quên các phần tử [formctrl] (http://www.w3.org/TR/html401/sgml/dtd.html#formctrl) ở đó (Hell, người sẽ sử dụng 'select' bên trong' a '?) – user123444555621

+0

Tôi quên chúng theo ý định :) Không cần phải lồng các phần tử biểu mẫu trong neo. Có thể không có thuộc tính href, nhưng ai sử dụng nó ngày hôm nay? :) –

+0

Tại sao kịch bản làm tổ không hợp lý? Nếu tôi có văn bản/đồng bằng, sẽ tốt hơn nếu xử lý thẻ lồng nhau đó dưới dạng dữ liệu chứ không phải thẻ. –

2

Xem anchor section đặc điểm kỹ thuật.

<!ELEMENT A - - (%inline;)* -(A)  -- anchor --> 

Phần có liên quan là (%inline;)* -(A), có nghĩa là "Mọi thứ trong nhóm% nội dung không bao gồm phần tử A". %inline được siêu liên kết để giúp bạn mở rộng nó dễ dàng hơn.

2

Thẻ neo là phần tử nội tuyến, vì vậy nó có thể chứa các phần tử nội tuyến khác (ngoại trừ các thẻ liên kết khác).

Nếu bạn muốn đặt phần tử khối bên trong một neo, bạn phải sử dụng phần tử nội tuyến và biến thành phần tử khối bằng cách sử dụng CSS, cùng với thẻ liên kết.

Ví dụ:

<a href="page.html" class="blocklink"><span>eat me</span></a> 

CSS:

.blocklink { display: block; } 
.blocklink span { display: block; } 
41

Tính HTML 5, <a> có thể chứa không chỉ các yếu tố (hợp lệ) inline, mà còn ngăn chặn các yếu tố vv

W3 : http://dev.w3.org/html5/markup/a.html

+2

Rất đẹp. Nó cũng đáng chú ý là cha mẹ của nó phải là một phần tử được phép chứa các phần tử khối. – remarsh

+4

Liên kết chính xác đến đoạn thảo luận câu hỏi này: http://w3c.github.io/html-reference/a.html#a-changes – Laizer

Các vấn đề liên quan