Кто-нибудь знает, почему проблемы в <style>без атрибута типа "text / css" в XHTML периодически возникают в проблемах? - PullRequest
1 голос
/ 03 марта 2012

Прежде чем вы проголосуете или ответите, я знаю, что вы должны использовать атрибуты для XHTML (на самом деле это должно быть помещено в его собственный .css). Я просто пытаюсь понять, как он обрабатывается из-за уникальных результатов, которые я получил.

Я обнаружил проблемы с несколькими сайтами, которые я в итоге взял, которые запускали CSS с тем, что, казалось, не было проблем, по крайней мере, с CSS.После нескольких проблем с jquery и медленной обработки я попытался оптимизировать.В итоге я нашел общую проблему.Это был модуль, содержащий встроенные теги CSS <style> без атрибутов типа.Кстати, это XHTML, а не сайты HTML5.Изменение тегов путем добавления атрибутов или удаления встроенного CSS выглядит, чтобы исправить каждый сайт с проблемами.

Мой вопрос в том, что на самом деле происходит, что может привести к повреждению процесса и все же позволить CSS функционировать должным образом.Это из чистого любопытства, и весь стиль был помещен в его собственный файл.Они находятся в модуле Joomla 1.5.

Чтобы действительно детализировать одну проблему, которая случалась не раз, когда маска не завершила свой процесс и оказалась кодом, который следовал за встроенным CSS.Пока что это еще не произошло на 80 или около того других сайтах с таким же точным кодом, за исключением ошибки стиля.

Ответы [ 4 ]

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

по умолчанию xhtml должен быть проверен ... любые отклонения от проверки неизбежно приведут вас к удушающей смерти движка рендеринга (или 3).

в большинстве (x) версий html

неясные намеки на то, что вы просматриваете:

звучит так, как будто встроенный css конфликтует с вашим js, скорее всего, у вас есть несколько скриптов, запускающих предзагрузку; Вы можете ждать загрузки страницы, чтобы запустить их. Пока ваши стили загружаются правильно, пользователи не будут знать разницу. страница загружается довольно предварительно. страница работает нормально при загрузке.

еще одна причина правильного рендеринга CSS - прощающий характер большинства движков CSS; они построены с пониманием того, что авторы могут и будут выпускать корпоративный, спагетти-интерфейс. вроде как танк сделан так, чтобы катиться по любой местности. xhtml - один из немногих (о которых я знаю) случаев, когда требовалась проверка ... если вы заметили, что html5 пришел к власти, он явно заменяет xhtml и его строгие способы. точнее, xhtml не был полностью успешным. в некотором смысле, прощение на самом деле заставило веб больше сосать, потому что автора не заставляли работать с правильными методами. прощение - это здорово, но оно позволяет (некоторым) доступ к старым документам / ужасно сконструированным документам

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

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

Атрибут type является избыточным и на практике представляет собой бесполезный риск для элементов style, потому что браузеры поддерживают только text/css (что в общем относится к CSS) и по умолчанию ему. Любое другое значение, например опечатка text/ccs, приводит к игнорированию содержимого элемента.

Однако в сценариях на стороне клиента можно использовать код, который, например, удаляет элементы style без атрибута type или каким-то образом использует содержимое таких элементов в зависимости от атрибута. Это было бы странно, и я ожидал бы, что это будет ошибка программирования, скорее всего, чем преднамеренная проверка или обман.

Является ли атрибут type формально обязательным, зависит от версии HTML и не влияет на то, что делают браузеры или скрипты.

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

Нет, я не согласен с ответом @charlietfi.Это необязательно в случае HTML и по умолчанию "text/css" не присутствует только в случае HTML.

Для XHTML это обязательное поле.Вы можете протестировать его, создав XHTML-разметку без атрибута type для тега style.Вот что вы получите: обязательный атрибут «тип» не указан

Чтобы попробовать его самостоятельно, посетите подлинный сайт проверки W3C: http://validator.w3.org/

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

В соответствии с W3C по умолчанию это "text / css", если ничего не установлено, и примеры в документах не имеют type установлено

http://www.w3.org/wiki/HTML/Elements/style

Возможно, стоит отнести это к одному из тех "маленьких чудес", которые делают отладку интересной.

...