Как наследуется стиль

Как сделать так, чтобы стиль имел все свойства стиля, определенные в .a .b .c, за исключением background-color (или какого-либо другого свойства)? Кажется, это не работает.

.a .b .c
{
    background-color: #0000FF;
    color: #ffffff;
    border: 1px solid #c0c0c0;
    margin-top: 4px;
    padding: 3px;
    text-align: center;
    font-weight: bold;
}

.a .b .c .d
{
   background-color: green;
}

Можете ли вы привести пример вашей разметки и рассказать, какие стили вы хотели бы применить к каждому элементу? Я думаю, здесь может быть фундаментальное непонимание css ...

Prestaul 21.09.2008 08:58
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
1
229
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

.a, .b, .c {color: #ffffff; border: 1px solid #c0c0c0; margin-top: 4px; padding: 3px; text-align: center; font-weight: bold; }

.a {background-color: red;}

.b {background-color: blue;}

.c {background-color: green;}
Ответ принят как подходящий

Вы должны добавить селектор класса .d в качестве селектора для вашего первого правила, а затем добавить правило для переопределения цвета фона для .d:

.a .b .c,
.d { 
  background-color: #0000FF;
  color: #ffffff;
  border: 1px solid #c0c0c0;
  margin-top: 4px;
  padding: 3px;
  text-align: center;
  font-weight: bold; 
}

.d {
  background-color: green;
}

Это ответ на заданный вами вопрос, но я чувствую, что это не то, что вы ищете. Возможно, вам стоит опубликовать пример своей разметки и рассказать нам, какие стили вы хотели бы применить, чтобы мы могли помочь вам лучше.

Похоже, вы тут что-то напутали. Если вы хотите применить свойства в первом наборе скобок и к «.d», это нужно будет указать в списке выбора. Вам также необходимо разделить селекторы запятыми, чтобы они стали списком, а не наследованием.

Пример:

<html>
    <head>
    <style type = "text/css">
        .a, .b, .c, .d { background-color: #0000FF; color: #FF0000; border: 1px solid #00FF00; font-weight: bold; }
        .d { background-color: white; }
    </style>
    </head>
    <body style = "background-color: grey;">
        <p class = "a">Lorem ipsum dolor sit amet.</p>
        <p class = "b">Lorem ipsum dolor sit amet.</p>
        <p class = "c">Lorem ipsum dolor sit amet.</p>
        <p class = "d">Lorem ipsum dolor sit amet.</p>
    </body>
    </html>

Я думаю, вы думаете об этом немного задом наперед, поэтому давайте попробуем разобраться в языке, который вы используете.

.a .b .c{
 background-color: #0000FF;
 color: #ffffff;
}

Глядя на приведенный выше CSS, часть «.a .b .c» - это селектор, а часть между фигурными скобками - это стиль. Этот селектор говорит: «Найдите мне все элементы с классом с« c », которые находятся внутри элементов с классом« b », которые находятся внутри элементов с классом« a », и примените к ним эти стили» - - это правило говорит, какие элементы на странице будут иметь желаемый вид.

Один и тот же элемент на странице может соответствовать более чем одному селектору, и существуют правила для того, в каком порядке они применяются к элементу (http://www.w3.org/TR/CSS2/cascade.html). Простое правило состоит в том, что более «специфические» селекторы имеют приоритет перед менее «специфическими» селекторами. "div.blueBanner p a: hover.highlight" гораздо более "специфичен", чем ".blueBanner". Если два правила имеют одинаковую специфичность, то приоритетом является то, которое появляется позже в файле CSS.

html образец:

<div class = "a">
    <div class = "b">
        <div class = "c">foo</div>
        <div class = "c d">bar</div>
    </div>
</div>

Итак, у вас есть селектор «.a .b .c» (как вы указали выше) и два элемента (foo и bar) на странице соответствуют этому селектору, поэтому все они получают цвет фона и все другие стили, которые вы определили.

Теперь вы также хотите, чтобы второй элемент имел зеленый цвет фона. Ему назначен другой класс «d», поэтому вы можете просто определить другой селектор, который соответствует только этому второму элементу «.a .b .d», и установить его цвет фона. Элемент «bar» по-прежнему получает все остальные стили из селектора «.a .b .c» (шрифт, цвет и т. д.), Но цвет фона из «.a .b .d».

.a, .b, .c, .d
{
   background-color: green;
}

.a, .b, .c
{
    background-color: #0000FF;
    color: #ffffff;
    border: 1px solid #c0c0c0;
    margin-top: 4px;
    padding: 3px;
    text-align: center;
    font-weight: bold;
}

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

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