Подтвердить что ты не робот

Указание процентной ширины для ячеек таблицы CSS

Я пытаюсь создать календарь недели на основе HTML/CSS, используя дисплей CSS: стиль таблицы-ячейки на divs, соответствующий каждому дню. Когда я укажу процентную ширину для дневных divs, которая больше 17%, divs заполняет весь экран, как ожидалось (с 7 * 17% > 100%).

jsfiddle здесь: http://jsfiddle.net/huDxZ/1/

Однако, когда я укажу процентную ширину, равную 16% или меньше, div ведут себя совершенно по-другому, занимая только часть ширины страницы.

jsfiddle здесь: http://jsfiddle.net/DLjnH/

Я бы хотел, чтобы мои дневные divs имели ширину около 14%, поэтому они грубо заполняют ширину страницы и имеют равные размеры. К сожалению, ширина 14% выглядит еще хуже.

jsfiddle здесь: http://jsfiddle.net/YB5bY/

Что вызывает это неожиданное поведение? Есть ли способ обойти это? Мне нужно явно указать ширину, потому что в конце концов я хотел бы, чтобы дни календаря расширялись при наведении курсора мыши.

Пожалуйста, никаких решений, связанных с поплавками.

Спасибо!

4b9b3361

Ответ 1

Значения процентных правил CSS всегда относятся к значению того же свойства родителя.
Попробуйте добавить явную ширину в контейнер:

#calendar {
    display: table;
    height:900px;
    width: 100%;
}

Вы можете использовать 14% для элементов ".day":

DEMO

Ответ 2

Я не могу сказать вам причину, но если вы заставляете контейнер div иметь 100% -ную ширину, то поведение этих двух случаев одинаково.

#calendar {
    display: table;
    height:900px;
    width: 100%;
}

Обновленная версия: http://jsfiddle.net/DLjnH/1/

Ответ 3

Ну, я могу быть сумасшедшим, но я бы использовал таблицу для такой вещи...

Не все таблицы являются злыми, только те, которые используются для макета...

Ответ 4

Ширина ячейки вашей ячейки относительно ширины родителей, но родители с auto/ undefined. Добавьте width: 100%; к вашему определению #calendar css, чтобы они правильно себя вести.