Наследование в CSS
Как можно отменить наследование родительских элементов для CSS? У меня одно меню в другом и они конфликтуют постоянно.
#birinci_menu li a < display: block; color: #464646; padding: 0 15px; line-height: 34px; border-left: 1px solid silver; font-size: 10pt; font-family: arial; >#menu_1, #menu_2
#birinci_menu li a — родитель, он замещает собой паддинг для внутреннего меню в итоге на элементе падинг 15 px
Отслеживать
Happy_Cougar
задан 10 мар 2012 в 16:50
Happy_Cougar Happy_Cougar
1,384 7 7 золотых знаков 26 26 серебряных знаков 42 42 бронзовых знака
Да там, удалите 3 строку во втором файле css.
10 мар 2012 в 16:59
Код в студию.
10 мар 2012 в 16:59
добавил код
10 мар 2012 в 17:07
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Попробуй сделать не идентификатор, а класс, наподобие: .myClass
Наследование
Описание каждого CSS-свойства говорит наследуется ли оно по умолчанию («Наследуется: да/нет»). Наследование контролирует, что происходит, если значение свойства элемента не определено.
Наследуемые свойства
Когда никакого значения для свойства, которое наследуется, у элемента не установлено, элемент получает вычисленное значение этого свойства от его родителя. Только корневой элемент документа получает начальное значение из описания свойства.
Типичный пример наследуемого свойства color (en-US). Стили:
p color: green; >
p>В этом параграфе em>подчёркнутый текстem>.p>
слова «подчёркнутый текст» станут зелёными, т.к. тег em унаследовал значение свойства color (en-US) от элемента p , а не получают начальное значение свойства (цвет, который используется для корневого элемента, когда страница не определяет цвет).
Ненаследуемые свойства
Когда значения свойства элемента, которое не наследуется, не указано(иногда называемое Mozilla — сброшенное свойство), элемент получает начальное значение этого свойства (как указано в описании свойства).
Пример ненаследуемого свойства border . Стили:
p border: medium solid; >
p>В этом параграфе em>подчёркнутый текстem>.p>
у слов «подчёркнутый текст» не будет рамки (т.к. начальное значение border-style (en-US): none ).
Замечание
Ключевое слово inherit позволяет нам явно задать наследование. Это работает и на наследуемых, и на ненаследуемых свойствах.
Смотрите также
- CSS документация
- Ключевые концепции CSS
- Синтаксис CSS
- @-правила
- комментарии
- специфичность
- наследование
- блочная модель
- режимы компоновки
- модели визуального форматирования
- Схлопывание отступов
- Значения
- начальные
- вычисленные
- используемые
- действительные
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
Как отменить наследование в CSS?
Когда же, я добавил SurveyJS то получилось так, что у них тоже используется класс с таким же именем.
Суть в том, что мой класс «перекрывает» класс от SurveyJS, а мне этого не нужно.Подскажите, можно сделать так, что-бы в определённом div не работал именно один класс из моего style.css.
Спаисбо- Вопрос задан более трёх лет назад
- 136 просмотров
1 комментарий
Простой 1 комментарий
Rustam Bainazarov @SmthTo Куратор тега CSS
Поменять класс в ваших стилях или же добавить ещё одно правило, исходя из класса обертки вашего этого SurveyJS.
Решения вопроса 0
Ответы на вопрос 1
а ля not:( :nth-child)
дальше сам докумекаешь
и да кстати почитай про наследование.
Ответ написан более трёх лет назад
Нравится 1 1 комментарий
strelok011 @strelok011not:( :nth-child) сработает если страница на века неизменна.
Альтернатива — для этого дива добавить класс-модификатор, либо на оборачивающем его блоке добавить класс-модификатор и отталкиваться от этого. Либо, если определенный див находится среди точно таких-же — посмотреть на разметку, может он должен всегда соседствовать с другим уникальным классом, тогда можно использовать конструкции вида .css1+.css2 и другие способы. Можно даже опираться на какие-либо уникальные атрибуты дива (если они имеются в наличии),
Если будет пример — можно сузить рекомендации ))Ваш ответ на вопрос
Войдите, чтобы написать ответ

- HTML
- +1 ещё
Как пофиксти проблему с амперсантом?
- 1 подписчик
- 15 часов назад
- 66 просмотров
Отменить наследование (сбросить) стиль CSS определенного элемента?
Хорошо, у меня красивая сеть, с ее стилями внутри CSS и всего Но теперь я нашел проблему, я хочу, чтобы ОДИН список был девственным, без наследуемого стиля. Я знаю, что могу сделать это, просто давая ему style=»(. )» , чтобы он перезаписывал унаследованный стиль, но есть ли какая-либо инструкция/трюк/что-то сделать, не делая этого?
ArcDare 01 март 2012, в 13:21
Поделиться
Я запутался в том, что ты спрашиваешь. Можете ли вы привести пример того, что вы имеете в виду?
Undefined 01 март 2012, в 11:49@SamWarren «Как исправить ранее примененный переусердствующий селектор?» 🙂 Во всяком случае, можно также использовать !important вещи, но все равно придется вручную сбросить для различных свойств.
user166390 01 март 2012, в 11:52
Конечно, Сэм: На моей странице есть несколько списков, унаследовавших стиль, поэтому они отображаются красиво. Но тогда у меня есть один список, который я не хочу показывать как «обычный» список. Ну, точно у меня есть поле рядом с импульсом, который предлагает вам результаты через AJAX (как, например, Facebook). Я показываю предложения в виде списка для практических целей, и я не хочу, чтобы этот список отображался в виде списка со всеми стилями, которые я определил для обычного списка.
ArcDare 01 март 2012, в 11:55
@ArcDare Какой селектор вы используете для соответствия спискам?
Šime Vidas 01 март 2012, в 11:57
@ŠimeVidas ŠimeVidas Я поставил один из элементов
ArcDare 01 март 2012, в 12:12
@ArcDare Ты имеешь в виду ul < . >и li < . >?
Šime Vidas 01 март 2012, в 12:15
Да в принципе.
ArcDare 01 март 2012, в 12:19
Связанный, но гораздо более конкретный (изолированный) вопрос: stackoverflow.com/questions/8228980/…
BoltClock♦ 01 март 2012, в 13:04Что касается того, зачем нам это нужно, часто из Twitter Boostrap идет 50 000 строк мусора и тому подобное, слои за слоями мусора (вспомним темы Envato).
PJ Brunet 24 янв. 2017, в 00:00
Показать ещё 7 комментариев
Поделиться:4 ответа
спецификация CSS Cascading и Inheritance Level 3 предоставляет возможность reset всем свойствам сразу. Это достигается с помощью сокращенного свойства all со значением initial или unset в зависимости от того, нужно ли вам reset унаследованные свойства.
Обратите внимание, что они не имеют никакого отношения к значениям по умолчанию для браузеров.
Эта функция доступна в Firefox 27+, Chrome 37+ и Opera 24 +.
Пока эта функция не будет широко реализована, вы можете использовать классы «пространства имен». Например, чтобы отделить стили компоновки от стилей содержимого, класс типа content может использоваться как пространство имен для всех стилей содержимого.
/* Global styles for UL lists. */ UL /* Styles for UL lists inside content block. */ .content UL
Marat Tanalin 01 март 2012, в 13:14
ПоделитьсяВы хотели сказать «сбросить свойства CSS на их значения по умолчанию для браузера»? Начальные значения имеют initial ключевое слово, но оно отличается от настроек браузера по умолчанию.
BoltClock♦ 01 март 2012, в 13:01
Это не решает случай, когда начальное значение является «унаследованным», например, с фоном. Нет способа «сбросить» цвет фона div на тот, который был бы на пустой странице. Другими словами, песочница невозможна.
JS_Riddler 06 фев. 2015, в 21:48
-
, и т.д.) Всегда выглядели так, как будто они не были разработаны независимо от того, какой элемент/его родительский элемент.
В вашем случае, я думаю, вы можете только перезаписать наследуемые стили, как вы упомянули, с атрибутом inline-style или с помощью !important или даже лучше, создайте класс .reset :
.reset < with: auto; height: auto; padding: 0; /* etc */ >Все упомянутые выше решения имеют свои недостатки, поэтому вам нужно выбрать битву.
