2011-05-19 3 views
4

У меня есть список элементов, как это:Turn набор дивы в ссылку

<div class="outer"> 
    <div>Head</div> 
    <div>Content</div> 
</div> 

то, что я хочу, чтобы найти ссылку на всей внешней DIV, как если бы вы обернуть его (Но, к сожалению, ист не действительный)

Я знаю, что можно использовать «display: block» для тега «a» внутри div, чтобы получить его до полного размера div, но, к сожалению, размер divs зависит от (динамический) контент и поэтому не устанавливается через css. Это означает, что если я установил ширину и высоту для указанного тега «a» на 100%, тогда он примет размер родителя внешнего div.

Есть ли приемлемое решение?

+0

что вам нужно? не удалось очистить :( – diEcho

+0

что можно щелкнуть в любом месте внешнего div, чтобы перейти по ссылке – Flo

ответ

2

следующее может работать:

<div class="outer"> 
    <a href="" class="spec_link"></a> 
    <div>Head</div> 
    <div>Content</div> 
</div> 

и css:

.outer{ position:relative;} 

.outer .spec_link{ 
display:block; 
position:absolute; 
top:0; 
left:0; 
bottom:0; 
right:0; 
} 

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

+0

Да, это то, что я искал. У меня почти было это сам, проблема была в недостающей позиции на внешнем элементе. Спасибо. – Flo

+0

Рад, что это сработало. Чтобы позиционировать абсолютно согласно div, вы всегда устанавливаете родителя на позицию относительно :) – Christophe

1

Используя немного JavaScript вы можете достичь этого эффекта:

<div class="outer" style="cursor:pointer;" 
    onclick="document.location='somepage.html';"> 
    <div>Head</div> 
    <div>Content</div> 
</div> 
+0

Что-то странное оскорбительно об этом ... что будет указывать пользователям без мыши, что div можно щелкнуть. программа чтения экрана или паука собирается сделать из нее.Какие визуальные подсказки будут указывать пользователю, что он является кликабельным элементом, если они не двигают их мышью? Что делать, если javascript отключен? – Xhalent

+0

Использование JS для такой простой задачи - перебор. – jolt

0

Вы можете обращаться по ссылке с Javascript:

<div class="outer" onclick="window.location.replace('yourlink.html');"> 
    <div>Head</div> 
    <div>Content</div> 
</div> 
2

Вы можете конвертировать div в span и установить их display:block

<a href="..." class="forced"> 
    <span class="outer"> 
     <span>Head</span> 
     <span>Content</span> 
    </span> 
</a> 

и использовать правило CSS из

.forced, .forced .outer, .forced .outer > span{ 
    display:block; 
} 
+0

Лучшее решение, совместимое со стандартами. +1 – jolt

0

Не уверен, что если вы ищете для чистого решения css. Jquery позволяет связать событие щелчка:

jQuery('.outer').click(function() { 
    window.location = 'http://www.google.com/'; 
}); 
Смежные вопросы