Трюк с наследованием

Рейтинг: 1Ответов: 1Опубликовано: 11.11.2014

Не понимаю в чем отличие записи при наследование классов в CSS .

.class1.class2{
    text-decoration: line-through;
}

или так

.class1{
    color:red;
}

.class2{
    font-size:100px;
}

Результат получается разный.

http://jsfiddle.net/Kirg/s9eyc30L/7/

Ответы

▲ 1Принят

.class1.class2 будет применен к блоку, которые имеет сразу два класса на себе class1 и class2.

.class1 будет применен к тому блоку, где есть класс class1. Логично предположить, что блок <div class="class1 class2"> применит к себе эти стили. Так же и с .class2.

Если у вас блок просто <div class="class1"> (или .class2), то стили .class1.class2 не будут применены.


О чем должен говорить результат?

.class1{
    color:red;
}

Цвет в блоках, где есть этот класс красный? Красный.

.class2{
    font-size:100px;
}

Размер текста 100px где есть этот класс? 100px.

.class3{
    text-decoration: underline;
}

Текст подчеркнутый в блоке, где есть этот класс? Нет. Почему? Потому что ниже

.class1.class2{
    text-decoration: line-through;
}

Перечеркнутый? Не подчеркнутый? Да. Почему? Потому что приоритет стилей снизу вверх по файлу стилей.

.class1 .class2{
    text-shadow: 3px 3px #ff0000;
}

Тень есть у блока с классом .class2, который находится в блоке с классом .class1? Да.

Ну все. Не знаю, какие могут быть вопросы еще))