#html #css #html-table
#HTML #css #html-таблица
Вопрос:
Если у меня есть такой HTML:
<table>
<tr>
<td>
<img src="a.png">
</td>
<td>
<p>Sunday</p>
<p>Sunday</p>
<p>Sunday</p>
<p>Sunday</p>
<p>Sunday</p>
</td>
</tr>
</table>
Во втором столбце может быть переменное количество абзацев, поэтому высота будет другой. Какой бы высоты ни была строка, я хочу, чтобы изображение было такой высоты. Я пробовал это:
img {
height: 100%;
}
но, похоже, это ничего не дало. Я хотел бы избежать изменения HTML, если это возможно, могу ли я сделать это только с помощью CSS?
Комментарии:
1. Я знаю, что вы не хотите изменять HTML, но IMO, поскольку это не похоже на табличные данные, я бы рекомендовал не использовать
<table>
, это может упростить стилизацию2. Почему бы не сделать
a.png
background-image
из<td>
?3. @StevenPenny Существуют ли какие-либо классы или идентификаторы, на которые вы могли бы настроить таргетинг с помощью вашего CSS?
4. @StevenPenny изображение всегда будет одинаковым? Это альбомная или портретная форма?
5. Я чувствую, что вы могли бы использовать object-fit: cover; затем установите ширину на 100% вместо высоты, и это приблизит вас. Но может быть полезно, если ваша таблица всегда имеет одинаковую ширину. Возможно, сработает одно из свойств, подходящих для объекта. Вот пример, который я сделал на W3: w3schools.com/code/tryit.asp?filename=GI8K9OUM4FX7
Ответ №1:
Итак, причина, по которой я хотел увеличить высоту изображения, заключалась в том, что второй столбец может быть намного больше, что приводит к уменьшению изображения при вертикальном центрировании таблицы по умолчанию. Вместо того, чтобы сосредоточиться на размере изображения, я просто переместил изображение наверх:
td {
vertical-align: top;
}
Если у кого-то есть решение исходного вопроса, мне все еще интересно, но
это должно быть сделано в качестве обходного пути.