Вопрос по html – div внутри якоря

9

Это не происходит все время. Ошибка не является ошибкой, если не может быть воспроизведена!

Во-первых, я думал, что это была ошибка моих молодых навыков программирования, но такая же ошибка появляется на двух моих сайтах, по-видимому, при одинаковых обстоятельствах.

<a style="display:block;" href="link">
 <div>text1</div>
 <div>text2</div>
</a>

Иногда, просматривая, ссылки сdivВнутри них отображаются странно, дубликаты элементов появляются на странице без причины, текст распределяется между разными ссылками, настоящий беспорядок.

Реальные скриншоты:

http://cupacupelor.ro/img/help.jpg
http://www.carbroker.ro/img/help.jpg

Кто-нибудь сталкивался с этой проблемой? Есть ли решение? Меня не интересуют исправления, связанные с JavaScript!

Это происходит во всех браузерах? Rine
возможный дубликатIs putting a div inside an anchor ever correct? blo0p3r
Это радует всех браузеров, но не каждый раз. Пожалуйста, просмотрите сайт и увидите меню, оно выглядит нормально. Alin Vasile
Подтвердить. Подтвердить. Подтвердить.validator.w3.org У вас есть обнаруживаемые машиной ошибки. Quentin
Это похоже на проблему с вашим CSS. Убедитесь, что ширина, которую вы предоставляете элементам, является подходящей. Я видел множество проблем, связанных с непоследовательным отображением CSS, когда вы не указали браузеру, какой тип макета вы хотите использовать, и оставили его браузеру для «выяснения». для тебя. Убедитесь, что расположение, размер и положение ваших элементов указаны. Lior Cohen

Ваш Ответ

2   ответа
12

Проверьте свою страницу в HTML-валидаторе. Я на 90% уверен, что у вас не может быть<div> элемент внутри встроенных элементов, таких как<a>, Даже если вы установили ссылку наdisplay:blockэто все еще не разрешено, и браузеры могут плюнуть на их пустышку.

То, что вы можете сделать, это использовать вместо них span, установив их в блокировку:

<style type="text/css">
  .link, .link span { display: block; }
</style>
<a class="link" href="example.com">
 <span>text1</span>
 <span>text2</span>
</a>
Error: User Rate Limit Exceeded Alin Vasile
Error: User Rate Limit ExceededspanError: User Rate Limit Exceededdisplay:blockError: User Rate Limit ExceededdivError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
18

Я полагаю, что ваши div-ы в ссылках приводят к несогласованности в некоторых браузерах (возможно, ваш CSS играет здесь).

& quot; Семантика & quot ;, допустимой разметкой являются некоторые модные слова.

Так почему вы хотите, чтобы DIVs в<A> тег. Вы можете попробовать что-то вроде этого

<a href="#">
       <span class="divstyle">Text 1</span>
       <span class="divstyle">Text 2</span>
</a>

тогда в CSS

.divstyle { 
    display: block; //and other styles etc
 }

Похожие вопросы