«Имитировать» ширину границы в colgroup с IE7

#css #html-table #internet-explorer-7

#css #html-таблица #internet-explorer-7

Вопрос:

Предположим, у меня есть что-то вроде этого:

 <table class="myTable">
  <colgroup span="2" /><colgroup span="2" />
  <tr><td>........</tr>
  

И так далее…

Затем в таблице стилей:

 table.myTable colgroup
{
    border-right: solid 5px #ffffff;
}
  

Дело в том, что мне нужно немного места для разделения colgroups в моей таблице.

Он отлично работает в Firefox и IE8. Я уже везде читал, что IE7 не реализует границы для colgroup, но вот призыв к вашему воображению и креативности, у кого-нибудь есть идея о том, как я мог бы достичь аналогичного результата в IE7, не добавляя класс к каждой ячейке или не генерируя пустую ячейку…

Вот пример результата в Firefox 4 : http://imageshack.us/photo/my-images/853/capturezz.png Сгенерированные заголовки могут быть практически любой формы, некоторые случаи действительно сложны. Вот почему решение colgroup интересно, поскольку довольно просто вычислить необходимый диапазон.

Все предложения будут оценены.

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

1. Ты имеешь в виду table.myTable colgroup , верно?

2. Просто мысль, но я только что понял, что IE7 также не поддерживает границы для элементов <tr> , так что, по крайней мере, поведение между строками и столбцами согласовано.

Ответ №1:

У меня нет большого опыта работы с IE7, но это может сработать: вы можете проверить, возможно ли установить фоновое изображение. И выровняйте это изображение (с желаемым цветом) по правой стороне ячейки, придав какой-то вид поддельной границы.

В Chrome установка границы для colgroup не работает восемь раз. Установка фонового изображения действительно работает.

Приветствую,

XpertEase

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

1. У меня здесь Chrome 11, и граница действительно работает. Я не понимаю, как установка фонового изображения помогла бы мне … поскольку я хочу создать какой-то «пробел» между группами столбцов, установка фонового изображения просто заполнила бы такой пробел соответствующим цветом, но мне все равно нужно создать этот пробел. Или, может быть, я неправильно понял ваш ответ?

2. Но тогда зачем вам нужна граница? Вместо этого вы могли бы использовать отступ или поле.

3. Потому что это довольно простой, но элегантный способ получить желаемый результат… Я добавил изображение примера того, что генерируется, к моему первоначальному вопросу.

4. Однако это невозможно … фоновое изображение того же цвета, что и цвет фона таблицы, сделало бы свое дело. Выравнивая изображение по правой стороне ячейки, повторяя только по вертикали и устанавливая отступ в 5 пикселей справа от ячейки, предотвращая наложение текста в ячейке на фоновое изображение.

5. Вы правы, это невозможно с IE7… Но ваше решение, насколько я понимаю, привело бы к добавлению определенного класса ко всем tds, которые находятся на правом краю colgroup, и это именно то, что я не хочу добавлять в алгоритм…

Ответ №2:

Чтобы использовать свойство border в таблицах, вы должны установить следующее правило. Если нет, вы их не получите

 table {
border-collapse:collapse;
}
  

Тогда вы получите границы, работающие так, как вы притворяетесь

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

1. Упс. Июнь 2011 !!. Я надеюсь, что вы все еще пишете!!! да, да, я не был в курсе даты. Фантастика. Лучше опоздать, чем не быть вообще.

2. Я ответил на этот вопрос при публикации в обновленном. Очень похоже. Забавно, я не осознавал, что размещаю это здесь.