#html #css
#HTML #css
Вопрос:
У меня есть базовая таблица с прокручиваемым телом. Для этого мне пришлось установить ad и tbody display: block, и я также установил ширину для th и td.
По какой-то причине первый столбец th не совпадает с первым столбцом tds. Кто-нибудь может сказать мне, что является причиной этого?
CSS
thead,
tbody {
display: block;
}
thead {
text-align: left;
}
tbody {
background: yellow;
overflow-y: auto;
height: 6em;
}
thead th,
tbody td {
width: 4em;
padding: 2px;
}
thead tr th:first-child,
tbody tr td:first-child {
width: 8em;
background: salmon;
font-weight: normal;
}
Вот скрипка
Комментарии:
1. вы имеете в виду, что когда содержимого больше, первый th занимает больший размер, чем первый td, верно?
2. Я хочу сохранить first th и first td одинаковой ширины независимо от содержимого
3. проверьте мой ответ ниже
Ответ №1:
Свойство width для DIV
amp; TABLE
работает по-другому.
Используйте max-width
amp; min-width
для достижения желаемых результатов:
thead tr th:first-child,
tbody tr td:first-child {
width: 8em;
min-width: 8em;
max-width: 8em;
word-break: break-all;
}
Редактировать:
(Редактирование ответа проясняет работу с width в HTML, пожалуйста, укажите, если я что-то не так понял или что-то пропустил!)
В divs свойство width используется для определения размера элемента, и содержимое помещается соответствующим образом, независимо от родительской и дочерней ширины.
Но в случае таблицы размер элемента вычисляется в соответствии с содержимым, и свойство width получает более низкий приоритет. Учитывается даже размер родственного файла. Таким образом, нам приходится использовать дополнительные свойства, такие как min-width
и max-width
, чтобы задать нужный размер!
Комментарии:
1. Я протестировал настройку max-width, но это ничего не меняет.
2. Обновил мой ответ, забыл упомянуть атрибут min-width, который требуется, когда содержимое не переполняет 8em!