CSS для отображения границы пустой ячейки?



какой CSS следует использовать для отображения границы ячейки, даже если ячейка пуста?



IE 7 в частности.

334   15  
css

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 и, как и большинство вещей, вы не можете ограничивать a null или выполнить любое действие на нем. Браузер нуждается в элементе / объекте, который имеет макет, чтобы применить границу/макет.

даже пустые <div></div> или <span></span> не содержат содержание, таким образом нет ничего, чтобы сделать, в результате чего null дело снова.

тем не менее, вы можете обмануть браузер, думая, что ячейка имеет содержимое, давая пустой div/span свойства макета. Самый простой способ-применить стиль CSS zoom:1.

<table>
   <tr><td>Foo</td>
       <td><span style="zoom:1;"></span></td></tr>
</table>

этот обходной путь лучше, чем с помощью &nbsp;, так как это не излишне испортить чтения с экрана, и не искажает значение ячейки. В новом браузере вы можете использовать empty-cell:<show|hide> альтернативы.


Примечание: вместо комментария Tomalak, следует понимать, что hasLayout не имеет ничего общего с null, Это было просто сравнение того, как браузер взаимодействует и отображает hasLayout аналогично тому, как база данных или язык программирования взаимодействует с нулями. Это стреч, но я думал, что это может быть легче понять для тех программистов, которые стали веб-дизайнерами.

в идеале, вы не должны иметь никаких пустых ячеек в таблице. Либо у вас есть таблица данных, и нет никаких данных, что в определенной ячейке (который необходимо указать с помощью " - " или "Н/А/", или нечто столь же уместно, или - если вам не нужно , как это было предложено), или у вас есть сотовый, который должен охватывать столбца или строки, или пытаешься добиться какой-макет с таблицей, вы должны использовать CSS для.

можно немного поподробнее?

этот вопрос старый, но все еще лучший результат в Google, поэтому я добавлю то, что я нашел:

просто добавив border-collapse: collapse чтобы стиль таблицы исправил эту проблему для меня в IE7 (и не повлиял на то, как они отображаются в FF, Chrome и т. д.).

лучше всего избегать постороннего кода добавления &nbsp; или другой элемент, интервал, когда вы можете исправить с помощью 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

    Ничего не найдено.