Я видел:Старшинство правил CSS
- CSS 2, precedence of stylesheets imported using link element
- In which order do CSS stylesheets override?
- stylesheet - Can one CSS file take priority over another CSS file?
Они все, кажется, говорят, что для того же селектора происходит несколько раз, последний из которых выигрывает. Однако это не то, что происходит для меня. Поэтому, учитывая, что "Aqua.css" имеет:
body {color:aqua;}
И "Red.css" имеет:
body {color:red;}
Затем, используя следующее:
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>
Последний, желтый, используется, как говорят другие ответы. Если я изменю это, то на:
<style type="text/css">
body {color: lime;}
body {color: yellow;}
</style>
<link rel="stylesheet" type="text/css" href="Aqua.css" title="Aqua"/>
<link rel="stylesheet" type="text/css" href="Red.css" title="Red"/>
Затем используется Аква, а не последний, красный. См. Precedence of CSS rules Sample 2. Цвет тела - Aqua, но Aqua.css - до Red.css. Все ответы, которые я нахожу, говорят, что цвет тела будет красным.
Всякий раз, когда у меня есть несколько ссылок на CSS стилей и той лишь разницей, среди них есть цвет чего-либо (элемент или класс, или любой другой), то используется первый таблицы стилей, а не последний, но это, кажется, не быть тем, что все, что я читаю, должно случиться. Я пробовал Edge, Chrome и IE; Я не вижу существенной разницы между ними.
Поэтому у меня есть следующие два вопроса:
- Я правильно, что поведение я вижу (первая ссылка тега используется вместо последнего) отличается от других ответов?
- Если да, то почему?
Прошу прощения, если бы я опубликовал ответ на один из других потоков, но я думаю, что для создания нового вопроса более чисто.
Причина, по которой я прошу, состоит в том, что я пытаюсь создать динамическую систему таблиц стилей, поэтому понимание приоритетности более важно, менее эффективно просто попробовать что-то, чтобы увидеть, что работает, чем в обычных условиях. Я попытаюсь интерпретировать спецификации, но в той мере, в которой это было в других ответах, я хочу понять, что было представлено здесь в других потоках.
Я считаю, что ответ будет заключаться в том, что нет гарантии, что таблица стилей будет загружена первой и в каком порядке будут установлены свойства тела. Вот почему вы не должны так поступать. – Rob
@Rob, «нет гарантии, что таблица стилей будет загружена первой», порядок загрузки не имеет к этому никакого отношения. * Пока все таблицы стилей загружены *, порядок DOM строго определяет, какие стили будут применяться. Существует нечеткая логика или догадки. – zzzzBov
@zzzzBov Я не уверен в этом, и я пытаюсь вспомнить статью, которую я прочитал некоторое время назад, о том, что не будет гарантировать, что будет применено в первую очередь. Если у вас два внешних таблицы стилей, оба из которых содержат одинаковые свойства CSS для того же элемента, что и в этом вопросе, а вторая таблица стилей заканчивает загрузку до первого, который применяется? Если бы я мог точно помнить, я бы ответил на этот вопрос, но у меня нет времени, чтобы попытаться найти это. Возможно, то, о чем я думаю, не относится к этому, но это то, что можно было бы изучить. – Rob