Doctype для xml-совместимого режима в IE - PullRequest
0 голосов
/ 20 августа 2009

Я некоторое время искал тег DOCTYPE, который сделает Internet Explorer совместимым со стандартами CSS для обычного XML-документа, так как я хочу использовать атрибут css пустого пространства. На этой странице говорится, что использования "doctype 'XML'" должно быть достаточно, чтобы Internet Explorer 6+ прошел - но я пробовал каждый тег DOCTYPE, который мог придумать / найти в примерах, без получения ожидаемого Результаты. Может быть, я что-то здесь упускаю, но в основном я думаю, что правильный тег DOCTYPE (в правильном месте в коде) должен это делать.

Вот код, с которым я тестирую:

Test.css:

Message {
   white-space: pre-wrap;
}

test.xml:

<?xml version="1.0"?>
<?xml-stylesheet href="Test.css" type="text/css"?>
<Message><![CDATA[
Some data

which is   pre   

formatted
]]></Message>

Приведенный выше пример отлично работает как есть в FF & Safari.

Ответы [ 2 ]

1 голос
/ 20 августа 2009

Этого нет, потому что IE пока не поддерживает правильный тип MIME, application / xml + xhtml, для обслуживания HTML в качестве XML. IE, однако, поддерживает XML напрямую, поэтому вы можете просто написать электронное письмо напрямую, без претензий на HTML, а затем использовать таблицу стилей, чтобы страница выглядела как HTML. Этот метод приведет к доступности и семантическим нарушениям, потому что никто не поймет грамматику ваших элементов XML.

Возможно, именно поэтому XML плохо воспринимается в Интернете.

0 голосов
/ 20 августа 2009

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

Приведенный выше пример не демонстрирует этого, хотя ... Я тестировал что-то вроде этого:

<?xml-stylesheet href="test.css" type="text/css"?>
<potato>
    <custard>X</custard>
</potato>

custard { width: 150px; padding: 50px; background: yellow; }

Это отображает общую ширину + отступ как 150px вместо правильных 250px. Добавление любого из:

<!DOCTYPE potato>
<!DOCTYPE potato SYSTEM "blankfile.dtd">
<!DOCTYPE potato PUBLIC "-//W3C//DTD XHTML 1.0//EN" "blankfile.dtd">

или изменение корневого элемента на «html» и обращение к реальному URI XHTML DTD не имеет значения. Необработанный рендеринг XML остается в режиме причуд. Это не имеет ничего общего с распознаванием MIME-приложения / xhtml + xml media type.

Полагаю, что рендеринг raw-XML в IE - это особенность, которая не обновлялась с IE5. Это продолжает быть медленным, причудливым и бесполезным.

...