Испытание: взломанный котопрофайл [18/18]

В теории было сказано, что CSS-код записанный в тегах style имеет НАИВЫСШИЙ приоритет. И переопределить его можно только с помощью ключевого слова !important. Но его использовать не желательно. Как выполнять задание без использования этого ключевого слова?

2 лайка

Где наивысший приоритет, пользуйтесь !important, в остальных случаях увеличивайте специфичность.

1 лайк

Ну понятно что !important. Вопрос в том, каким образом достигается бОльший приоритет, если самый весомый аргумент - style?

<h2 style="margin-top:-50px;padding:0;">Альбомы</h2> - вот это самый высокий приоритет имеет. Всё остальное в идеале можно перебить. Если вы вспомните задание про расчет специфичности, то поймете, что селектор считается имеющим высокий приоритет, если в своем составе имеет id. А вообще, чем меньше элементов выбирает селектор, тем он приоритетнее.

2 лайка

“Если стиль встроенный, то есть определен как style, то а=1, иначе а=0. Значение b равно количеству идентификаторов в селекторе. Значение с равно количеству классов, псевдоклассов и селекторов атрибутов. Значeние d равно количеству селекторов типов элементов и псевдоэлементов.”

Судя по этим данным, то что описано в style вообще ничем нельзя перебить. Я просто хочу выяснить что именно я не так понял в теории.

Имеется в виду если стиль записан как значение атрибута style.
То, что написано между открывающим и закрывающим тегом style - это фактически то же самое, что и обычные стили CSS. Только принято выносить их в отдельный файл, чтобы страница быстрее загружалась. Но они имеют приоритет выше, потому что находятся в составе HTML-кода.

5 лайков

Спасибо!

1 лайк

Теперь я не могу понять как перебить селектор #miska :confused:

img+#miska

1 лайк

Но тогда правила применяются не для всех изображений внутри тега div class=“albums”

Напишите через запятую, вот так например: .albums img, img+#miska

5 лайков

@Ineska огромнейшее Вам спасибо!!! :kissing_smiling_eyes:

2 лайка

CSS http://pastebin.com/EfeS8Ate
Результат https://yadi.sk/i/BuXonOzEptP2Q
Подозреваю что дело в неработающем:
.fact::after { content: ""; display: table; clear: both;

или же в смещении заголовка:
<h2 style="margin-top:-50px;padding:0;">Альбомы</h2>

Подскажите, как воздействовать на смещение? Что ломает вёрстку?

Поскольку в этом задании редактор HTML-кода заблокирован, а стили прописанные с помощью атрибута style имеют наивысший приоритет, вам ничего не остается, кроме как использовать !important d CSS-редакторе для необходимых вам свойств.

4 лайка

Сначала расставил везде !important-ы (около 20 шт), получил 100%, потом их по очереди убирал, и заменял на уточнение селекторов. В результате осталось только 2 !important. Понимаю, подход несколько напоминает метод тыка, но пока так.

И все-таки вопрос топикстартера по поводу приоритетов встроенных стайлов над остальными и объяснения по ним не понятны.
Получается, что 1 по “а” получает только то, что style=".....", а то, что внутри <style> ... </style> не имеет такого приоритета?

6 лайков

Да, вы совершенно правы.
А ваш метод решения задания достаточно оригинальный)

и какая они буква в https://htmlacademy.ru/courses/66/run/15 “Расчет значения специфичности”
?
И как их переопределять? Какой приоритет выше?
P.S.
Задание сделал, но подозреваю, что часть получилась просто “шаманством”

Покажите свой вариант, будем разбираться.

1 лайк

А можно растолковать мой вопрос про приоритеты? Пожалуйста.

html,
body {
margin: 0;
padding: 0;
}

body {
width: 550px;
height: 300px;
font-size: 12px;
font-family: Tahoma, Arial, sans-serif;
}

.profile {
padding: 5px 10px;
}

.profile img {
display: block;
padding: 10px;
border: 2px solid #34495e;
border-radius: 8px;
}

.profile .photo {
float: left;
width: 152px;
}

.profile .info {
float: left;
width: 368px;
margin-left: 10px;
}

.info #info-title,
.info h2{
margin: 0!important;
padding: 10px!important;
font-weight: normal;
font-size: 12px;
color: #ffffff;
background: #34495e;
border-radius: 4px;
}

.profile .info .fact {
padding: 10px;
background: white;
}

.profile .info .fact:nth-child(odd) {
background: #ecf0f1;
}

.fact::after {
content: “”;
display: table;
clear: both;
}

.info .fact .title {
float: left;
width: 120px;
text-align: right;
color: #7f8c8d;
}

.info .fact .value {
margin-left: 140px;
color: #34495e;
}

.albums {
margin-top: 5px;
}
.albums #miska,
.albums img {
float: left;
margin-right: 5px;
}

.albums img:last-child {
margin-right: 0;
}

.photo .button {
display: block;
height: 30px;
margin: 5px 0;
line-height: 30px;
text-align: center;
color: #ffffff;
border-radius: 4px;
}

.photo .button.stroke {
background: #3498db;
}

.photo .button.feed {
background: #2ecc71;
}

.photo .button.startle {
background: #e74c3c;
}

3 лайка

Код правильный, нет там никакого “шаманства”.
Что касается приоритетов, то стили тега style нельзя определить под какую-то одну букву. Все зависит от того, какие селекторы там используются. Их переопределяют, увеличивая специфичность селекторов, написанных в CSS-редакторе, что вы и делали в принципе.

1 лайк