Почему <table border = "1"> не работает? - PullRequest
3 голосов
/ 01 марта 2012

Я определил свою таблицу следующим образом:

<div id="a">
    <table id="main_table" border="1">
        <tr>
            <th>Jobs</th>
            <th>Customers</th>
        </tr>
    </table>
</div>

Из примера здесь я предполагаю увидеть границы вокруг таблицы и всех ячеек в таблице.В последнее время это не помогало мне несколько раз.Кто-нибудь знает почему?Я просматриваю в Google Chrome.

** РЕДАКТИРОВАТЬ **

Спасибо всем, я изначально не упомянул, что это таблица, которую я встроил в сайт Joomla, как упоминалось ниже, граница= "1" работает вообще.Но так как он не работал, я всегда использую CSS.Меня просто продолжало беспокоить, что простой border = "1" не работал.Отдельные границы должны быть отключены в CSS для темы Joomla..

Ответы [ 4 ]

10 голосов
/ 01 марта 2012

Это старый способ размещения рамки вокруг стола.Лучший способ разместить рамку вокруг таблицы и ячеек - использовать CSS:

​table, td {
    border-collapse: separate;
    border: 1px solid #999;
}​

jsFiddle пример

3 голосов
/ 01 марта 2012

Я здесь не для того, чтобы спорить о старом или новом способе или о том, что лучше. Просто говорю ...

Насколько я знаю, атрибут border элемента таблицы по-прежнему является стандартным в HTML5 и не был "отменен". (См .: http://www.w3schools.com/html5/tag_table.asp и http://www.w3.org/TR/html5/tabular-data.html#attr-table-border)

Хотя, возможно, я сильно сомневаюсь, что это проблема DOCTYPE. Я попробовал ваш пример кода (я добавил конечный тег к вашему открытому div), и границы в разных браузерах, в том числе в Chrome, выглядели очень хорошо.

Я думаю, что у вас, вероятно, есть какой-то глобальный CSS или что-то еще в вашем коде, который вы используете и специально не упоминали здесь.

Чтобы уточнить, я использовал этот точный код со строгим DTD и все:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
    <title>test</title>
</head>

<body>
<div id="a">
<table id="main_table" border="1">
    <tr>
        <th>Jobs</th>
        <th>Customers</th>
    </tr>
</table>
</div>
</body>

</html>

Границы отображаются в FF, IE8 и Chrome.

HTML5 поддерживает 1 или пустую строку для этого атрибута.

2 голосов
/ 01 марта 2012

В применяемых таблицах стилей есть что-то, что отключает границы.Я предполагаю, что это может быть какая-то универсальная таблица стилей «Сброс CSS», которую предпочитают некоторые люди и организации, и, например, часто копируемый Эрик Майер Сброс CSS устанавливает границы таблицы и ячейки равными 0.

1 голос
/ 01 марта 2012

Вот как границы были определены «в тот день», но с новыми веб-стандартами, такими как DOCTYPE, большая часть архаичного синтаксиса постепенно исчезает.В общем, это может быть из-за используемого вами DOCTYPE (или его отсутствия).Например, DOCTYPE Strict не будет распознавать атрибут границы.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Дополнительная информация здесь.

Что касается вашей проблемы, либо измените/ определить DOCTYPE или использовать CSS вместо: <table id="main_table" style="border: 1px solid #000;">

...