2010-08-17 2 views
0

Может ли какой-то орган объяснить, почему элемент TD принимает ширину, когда его не разрешено в строгом режиме. Это код [Не удалось отправить код из-за проблемы с отображением HTML.]Код не ведет себя в строгом режиме

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<html> 

<head> 
<meta http-equiv="Content-Type" content="text/xml+xhtml; charset=utf-8"/> 
</head> 
<body> 
<table> 
<tr> 
    <td width="200">First</td> 
    <td>Second</td> 
</tr> 
</table> 

</body> 
</html> 
+0

Почему вы используете документ HTML 4.01 для документа XHTML? – BoltClock

+1

Я не верю, что метатег заставит браузер интерпретировать документ как XHTML. Его необходимо обслуживать с веб-сервера с этим типом. Как только он достаточно разбирается, чтобы прочитать метатег, уже слишком поздно. –

ответ

1

Несмотря на то, что он устарел по спецификации, браузер все равно будет применять его, потому что вы указали его. Он должен быть снисходителен к старым документам, которые в противном случае могли бы иметь сломанные макеты, если они не применяли атрибуты (а).

0

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

0

Ваш doctype (HTML 4.01) не соответствует типу вашего контента.

Тип содержимого должен прочитать application/xhtml+xml вместо text/xml+xhtml, и ваш веб-сервер должен также служить вашей страницы как таковой для того, соответствующих стандартам браузеров для ее лечения строго (то есть, не в состоянии вынести документ, если он недействителен). Кроме того, как говорит Алоччи, вам нужно включить пространство имен XML для спецификации XHTML.

<html xmlns="http://www.w3.org/1999/xhtml"> 

В противном случае, браузеры просто делают, как вы говорите им, игнорируя стандарты, хотя, если вы пытаетесь проверить это он будет по-прежнему терпят неудачу.

+0

И, конечно, если OP сделает это, он все равно будет терпеть неудачу, потому что нет пространства имен XHTML, указанного где угодно. – Alohci

0

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