15 ответов:
Если я помню, ячейка dosn не существует в некоторых IE, если она не заполнена чем-то...
Если вы можете поставить
(неразрывное пространство), чтобы заполнить пустоту, которая обычно будет работать. Или вам требуется чистое решение CSS?видимо, IE8 показывает ячейки по умолчанию, и вы должны скрыть его с помощью
empty-cells:hideно он вообще не работает в IE7 (который скрывается по умолчанию).
еще один способ убедиться, есть данные во всех ячейках:
$(document).ready(function() { $("td:empty").html(" "); });
если вы выберите
border-collapseсвойствоcollapse, IE7 покажет пустые ячейки. Он также разрушает границы, хотя это может быть не 100% то, что вы хотитеtd { border: 1px solid red; } table { border-collapse: collapse; } <html> <head> <title>Border-collapse Test</title> <style type="text/css"> td { border: 1px solid red; } table { border-collapse: collapse; }<table> <tr> <td></td> <td>test</td> <td>test</td> </tr> <tr> <td>test</td> <td></td> <td>test</td> </tr> <tr> <td>test</td> <td></td> <td>test</td> </tr> <tr> <td>test</td> <td></td> <td /> </tr> </table>
вопрос, заданный для решения CSS, но на всякий случай решение HTML будет делать, вот один:
попробуйте добавить эти два атрибута в элемент таблицы:frame=" box "rules= "all" вот так:
<table border="1" cellspacing="0" frame="box" rules="all">
Я только что нашел следующее. Это соответствует стандартам, но он не работает в IE. вздох.
empty-cells: show
я столкнулся с этим вопросом и не видел никаких ответов, которые действительно решали эту проблему.
проблема приводит к тому, что IE7 не видит никакого внутреннего содержимого для ячейки; в терминах программирования ячейка получается как
nullи, как и большинство вещей, вы не можете ограничивать anullили выполнить любое действие на нем. Браузер нуждается в элементе / объекте, который имеет макет, чтобы применить границу/макет.даже пустые
<div></div>или<span></span>не содержат содержание, таким образом нет ничего, чтобы сделать, в результате чегоnullдело снова.тем не менее, вы можете обмануть браузер, думая, что ячейка имеет содержимое, давая пустой
div/spanсвойства макета. Самый простой способ-применить стиль CSSzoom:1.<table> <tr><td>Foo</td> <td><span style="zoom:1;"></span></td></tr> </table>
этот обходной путь лучше, чем с помощью
, так как это не излишне испортить чтения с экрана, и не искажает значение ячейки. В новом браузере вы можете использоватьempty-cell:<show|hide>альтернативы.
Примечание: вместо комментария Tomalak, следует понимать, что hasLayout не имеет ничего общего с
null, Это было просто сравнение того, как браузер взаимодействует и отображает hasLayout аналогично тому, как база данных или язык программирования взаимодействует с нулями. Это стреч, но я думал, что это может быть легче понять для тех программистов, которые стали веб-дизайнерами.
в идеале, вы не должны иметь никаких пустых ячеек в таблице. Либо у вас есть таблица данных, и нет никаких данных, что в определенной ячейке (который необходимо указать с помощью " - " или "Н/А/", или нечто столь же уместно, или - если вам не нужно , как это было предложено), или у вас есть сотовый, который должен охватывать столбца или строки, или пытаешься добиться какой-макет с таблицей, вы должны использовать CSS для.
можно немного поподробнее?
этот вопрос старый, но все еще лучший результат в Google, поэтому я добавлю то, что я нашел:
просто добавив
border-collapse: collapseчтобы стиль таблицы исправил эту проблему для меня в IE7 (и не повлиял на то, как они отображаются в FF, Chrome и т. д.).лучше всего избегать постороннего кода добавления
или другой элемент, интервал, когда вы можете исправить с помощью CSS.
Я думаю, это не может быть сделано с помощью CSS; Вам нужно поместить a в каждую пустую ячейку, чтобы граница отображалась в IE...
пустая ячейка только фиксированный Firefox (да, у меня действительно была эта проблема в Firefox) IE 7 & 8 все еще были проблематичны..
это работает для меня в Firefox 3.6.x, IE 7 & 8, Chrome и Safari:
==============================
table { *border-collapse: collapse;} .sampleTD { empty-cells: show;}==============================
пришлось использовать*, чтобы убедиться, что стиль таблицы был применен только к браузеру IE.
попробуйте это, если вы не можете использовать неразрывный пробел:
var tn = document.createTextNode('\ '); yourContainer.appendChild(ta);
Я создаю стиль div, который имеет тот же цвет шрифта, что и фон вашей ячейки, и пишу что-либо (обычно " - " "n/a" или "пустой"), чтобы дать содержимое ячейки. Он появляется, если вы выделите страницу, но при просмотре обычно выглядит так, как вы хотите.
Я использую сочетание html и css для создания кроссбраузерных таблиц сетки:
html
<table cellspacing="1" style="background-color:#000;" border="0">css
td{background-color:#fff;}Я не видел никаких проблем с любыми браузерами до сих пор.
" IE " больше не является полезным термином в этом контексте, когда IE8 отсутствует.
IE7 всегда делает "пустые ячейки: показать" (или так мне сказали ... Перспектива.) IE8 в любом из своих режимов "причуд" или "стандартов IE7" всегда делает "пустые ячейки:скрыть". IE8 в режиме" стандарты "по умолчанию имеет значение" пустые ячейки:показать " и поддерживает атрибут через CSS.
насколько я знаю, каждый другой браузер правильно поддерживал это в течение нескольких лет (я знаю, что он был добавлен в Firefox 2).
Я взял это с другого сайта, но:
.sampletable { border-collapse: collapse;} .sampleTD { empty-cells: show;}использовать для CSS для таблицы и элемента TD соответственно.
Comments