Что влияет на ширину и элементов?

#html #css #css-tables

#HTML #css #css-таблицы

Вопрос:

Я пытаюсь закрепить заголовок таблицы в верхней части окна, но по какой-то причине установка ширины элементов <td> и <th> следующим образом не приводит к тому, что элементы будут иметь одинаковую ширину (заголовки столбцов не выровнены с ячейками других столбцов):

 th, td {
    padding-left: 20px;
}

td:first-child, th:first-child {
    width: 80px;
}

td:nth-child(2), th:nth-child(2) {
    width: 200px;
}

td:last-child, th:last-child {
    width: 320px;
    padding-right: 20px;
}
  

Вот пример jsfiddle, который иллюстрирует это: http://jsfiddle.net/zgaPw/1 /

После экспериментов с ним я обнаружил, что font-size свойство, похоже, влияет на ширину <td> , но я не уверен, почему или как это исправить.

Может кто-нибудь пролить свет на то, что не так и как это исправить? Спасибо!

Ответ №1:

На ширину ячеек влияют их родственные элементы (другие ячейки) и родительская ( <table> ). Чтобы ячейки имели одинаковую ширину, определите свойство width для ячейки, которое равно:

 For each cell:
    width   padding left   padding right
= 660px;
  

В вашей первой строке, содержащей <th> элементы, вы определили ширину 600 пикселей, что приводит к небольшому уменьшению заголовка. Чтобы исправить это, удалите width свойство в строке или определите width:660px; .

Скрипка:http://jsfiddle.net/zgaPw/4 /

Комментарии:

1. Спасибо! Правильная настройка ширины контейнеров, как вы предлагали, исправила это.