#css #sass
Есть sass:
#header {
@include position(fixed, 0 null null 0);
width: 326px;
height: 100%;
background-color: #1F1916;
text-align: center;
.top {
@include position(absolute, 0 null null 0);
width: 100%;
.logo {
background-color: #fff;
display: block;
padding: 50px 0 44px;
img {
width: 185px;
height: 71px;
}
}
}
.bottom {
@include position(absolute, null null 0 0);
width: 100%;
}
}
В результате:
#header .top .logo img {}
Влияет ли это на что-то, если да - то в какую сторону?
Ответы
Ответ 1
#header .top .logo img {} Браузер читает селекторы справа налево. Т.е. браузер выберет все картинки, потом узнает у которых у них есть родитель с классом .logo, потом с классом .top... Ну вы поняли. Сейчас, браузеры довольно шустры, но всё же: разумнее будет задать отдельный класс для конкретного элемента (картинка в Вашем случае), например, .header_logo_img. Использование id в css - не круто. Да и такие селекторы типа #header .top .logo img - имеют очень большой "вес". Их будет трудно "перебить" в каскаде стилей ниже. Советую Вам почитать про методики написания классов, например, БЭМ. А также установить линтер, например, SCSS-Lint.Ответ 2
Старайтесь избегать больших вложенности, код плохо читается, лучше давайте класс для img. Опять же, большие вложенности, большой размер файла css, как-то так.Ответ 3
Поскольку конечный CSS, как я предполагаю, будет минифицирован (до полной нечитаемости), значимой разницы нет. Разница, скажем, в 10 кБ (достаточно большой объем для css файла) совершенно несущественна (при загрузке занимает порядка миллисекунды при нормальном интернете и незаметна даже при dial-up).
Комментариев нет:
Отправить комментарий