Установить границу для таблицы tr, работает во всем, кроме IE 6 и 7 - PullRequest
22 голосов
/ 24 февраля 2009

Я установил для таблицы event_calendar tr границу красного цвета, она работает во всем, кроме IE 6 и 7. Что не так с моим CSS?

table#event_calendar tr {
    border:1px solid red;
}

<div class="content-body">
<table id="event_calendar">
    <tr class="calendarHeader">
        <th><div class="calendarMonthLinks"><a href="http://webdev.herkimer.edu/calendar/2009/03/">&lt;&lt;</a></div></th>
        <th colspan="5"><h1>April 2009</h1></th>
        <th><div class="calendarMonthLinks"><a class="calendarMonthLinks" href="http://webdev.herkimer.edu/calendar/2009/05/">&gt;&gt;</a></div></th>
    </tr>
    <tr>
        <td class="calendarDayHeading">Sunday</td>
        <td class="calendarDayHeading">Monday</td>
        <td class="calendarDayHeading">Tuesday</td>
        <td class="calendarDayHeading">Wednesday</td>
        <td class="calendarDayHeading">Thursday</td>
        <td class="calendarDayHeading">Friday</td>
        <td class="calendarDayHeading">Saturday</td>
    </tr>
</table>
</div>

Ответы [ 4 ]

54 голосов
/ 25 февраля 2009

IE не учитывает свойство border для тегов

. Однако есть обходные пути, помещая верхнюю и нижнюю границу вокруг каждой ячейки и используя «border-collapse: collapse;» так что между клетками нет места. Я буду ссылаться на этот ресурс здесь о точном методе, но он по сути будет выглядеть для вас (я сам не проверял, поэтому не уверен, что это точно, но Я думаю, что вы можете риффить на это.)
table#event_calendar {
    border-collapse: collapse;
    border-right: 1px solid red;
    border-left: 1px solid red;
}

table#event_calendar td, table#event_calendar th {
    border-top: 1px solid red;
    border-bottom: 1px solid red;
}
7 голосов
/ 25 февраля 2009

Ваш CSS достаточно разумный, но IE просто не создает границ для элементов tr. Если вы используете этот стиль, вы должны получить желаемый результат:

table#event_calendar {
    border-top:1px solid red;
    border-right:1px solid red;
    border-left:1px solid red;
    border-collapse:collapse;
}

table#event_calendar td, table#event_calendar th {
    border-bottom:1px solid red;

}
4 голосов
/ 12 июля 2012

Установка границы на тд - самое простое решение. Но если вы действительно хотите сделать границы для <tr>, вы всегда можете установить:

tr { display:block; border-bottom:1px dotted #F00; }

Делая это, вы теряете общую ширину между <td>. Если вы хотите, чтобы все они были равны по ширине, установите для дисплея <td> значение inline-block и установите некоторую ширину:

td { display:inline-block; width:20%; }

Помогает, когда вы хотите нарисовать границу на <td> и на <tr>.

CSS сгенерированный контент, такой как tr:before{} или tr:after{}, всегда может помочь.

0 голосов
/ 25 февраля 2009

Измените ваш CSS-селектор на "table # event_calendar tr td ", и он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...