2011-12-18 3 views
2

Как получить ссылку, чтобы иметь ту же высоту и ширину, что и родительский тег, где размеры родительских тегов являются переменными?Ссылка, чтобы заполнить родительский тег (td, div)

Я нашел this question here, где Gaurav Saxena сделал сообщение, которое сработало сначала - пока я не добавил DOCTYPE для HTML5. Если я это сделаю, он больше не работает в Firefox 8 (однако он продолжает работать в Chrome).

Так вот полный пример:

<!DOCTYPE html> 
<head> 
<style type="text/css"> 
.std {width: 200px; border: solid 1px green; height: 100%} 
.std a {display: inline-block; height:100%; width:100%;} 
.std a:hover {background-color: yellow;} 
</style> 
<title></title> 
</head> 
<body> 
<table> 
    <tbody> 
    <tr> 
    <td class="std"> 
    <a href="http://www.google.com/">Cell 1<br> 
    second line</a> 
    </td> 
    <td class="std"> 
    <a href="http://www.google.com/">Cell 2</a> 
    </td> 
    <td class="std"> 
    <a href="http://www.google.com/">Cell 3</a> 
    </td> 
    <td class="std"> 
    <a href="http://www.google.com/">Cell 4</a> 
    </td> 
    </tr> 
</tbody> 
</table> 
</body> 

Заранее спасибо за вашу помощь!

ответ

1
$('td a').each(function(){ 
    $(this).css({ 
     'width': $(this).parent().width(), 
     'height': $(this).parent().height() 
    }); 
}); 

Выполнение работ по документу DOM load.

+0

Спасибо за Ваш ответ, но я предпочел бы решение, которое работает без JavaScript. – Markstar

+0

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

1

Это не работает, потому что у вас есть процентная высота в процентах высоты без высоты. Чтобы уточнить, у вас есть height: 100%; по ссылке, которая будет опираться на высоту родительского элемента (td). Это также 100%, который затем полагается на его родительскую высоту, которая не задана. Поэтому у него нет работы с шириной. Исправить это было бы установить высоту на таблице или в tds.

Пример: http://jsfiddle.net/8rRtZ/1/

Смежные вопросы