Может ли вторая из двух последовательно вызываемых таблиц стилей переопределить все стили, определенные в первой?

StackOverflow https://stackoverflow.com/questions/1054362

Вопрос

Если у меня есть HTML-страница, которая ссылается на две таблицы стилей, которые вызываются следующим образом:

<link rel="stylesheet" href="original.css" media="screen, projection" />
<link rel="stylesheet" href="override.css" media="screen, projection" />

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

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

Это было полезно?

Решение

Да, это, конечно, может.Это каскадная часть каскадных таблиц стилей.

Однако я должен спросить, почему вы не можете просто удалить original.css, или не выводить его, или....что-то?Это похоже на очень Большой подход Молотка, чтобы полностью переопределить все в оригинале :-) Если вы действительно выводите original.css и override.css, браузеру придется проделать намного больше работы, чем если бы вы просто выводили override.css.

Другие советы

Да, это сработает.Хотя вы правы, что на самом деле это нецелесообразно.Вместо того, чтобы "не трогать" исходные строки кода, не могли бы вы вставить вокруг них теги комментариев?

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

оригинал.css -

p { margin: 4px 6px 10px 12px; }
h1 { font-size: 2.2em }

переопределить.css -

p { padding: 6px; color: #666666; }
h1 { font-size: 1.5em }

Я сказал, что P дополняется в override.css, потому что стили не конфликтуют друг с другом.С другой стороны, пример H1 действительно перезаписан, и два правила в каждой таблице стилей конфликтуют, поэтому выигрывает последнее объявление.

Это не так плохо, как можно подумать...Пару месяцев назад я закончил работу над сайтом в moodle, который представляет собой сумасшедший дом стилей и данных, окруженный чем-то подобным.В шаблоне использовались данные таблицы стилей из шаблона по УМОЛЧАНИЮ, затем из шаблона СТРАНИЦЫ, затем из КУРСА.Когда я попытался понять, какой стиль сделал то, что я так переживал из-за того, что не смог найти правильный фрагмент кода, который можно было бы изменить для моего собственного...В конце концов я решил прикрепить свою собственную таблицу стилей с новыми перезаписанными стилями и новыми дополненными.это позволило мне сэкономить около двух недель, копаясь в адском коде, который дизайнеру и не снился.

Надеюсь, это поможет вам получить более четкое представление.

Пока.

Отличным примером такой потребности является Sharepoint.Редактирование любой темы оставит вас с целым рядом изменений, которые вам необходимо переопределить в классе core.css.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top