Как я могу аннулировать свойство CSS? - PullRequest
104 голосов
/ 07 марта 2011

В основном у меня есть две внешние CSS на моей странице.

Первый Main.css содержит все правила стиля, но у меня нет доступа к нему, и, следовательно, я не могу его изменить. У меня есть доступ ко второму файлу Template.css, поэтому мне нужно переопределить значения Main.css в template.css.

Это просто, для которого мне нужно изменить значение, но как мне полностью удалить свойство?

Как, например, у класса .c1 есть height: 40px;, как мне избавиться от этого свойства высоты?

Ответы [ 7 ]

160 голосов
/ 07 марта 2011

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

В вашем примере вы бы сделали:

.c1 {
    height: auto;
}

Вы должны искать каждое свойство здесь:

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

Например, , height:

Начальное значение: auto

Другой пример , max-height:

Начальное значение: none


В 2017 году появился другой способ, ключевое слово unset:

.c1 {
    height: unset;
}

Некоторая документация: https://developer.mozilla.org/en-US/docs/Web/CSS/unset

Неустановленное ключевое слово CSS является комбинацией начального и наследственного ключевые слова. Как и эти два других ключевых слова в формате CSS, его можно применять к любое свойство CSS, включая сокращенную запись CSS. Это ключевое слово сбрасывает свойство к его наследуемому значению, если оно наследует от своего родителя или к его начальному значению, если нет. Другими словами, он ведет себя как Наследовать ключевое слово в первом случае и как начальное ключевое слово в второй случай.

Хорошая поддержка браузера: http://caniuse.com/css-unset-value

9 голосов
/ 07 марта 2011

как, скажем, класс .c1 имеет высоту: 40px;как мне избавиться от этого свойства высоты?

К сожалению, вы не можете.У CSS нет заполнителя по умолчанию.

В этом случае вы бы сбросили свойство, используя

 height: auto;

, поскольку @Ben правильно указывает, в некоторых случаях inheritправильный путь, например, при сбросе цвета текста элемента a (это свойство наследуется от родительского элемента):

a { color: inherit }
8 голосов
/ 12 апреля 2017
.c1 {
    height: unset;
}

Значение unset, добавленное в CSS3 , также решает эту проблему, и это еще более универсальный метод, чем auto или initialпотому что оно устанавливает для каждого свойства CSS свое значение по умолчанию и дополнительно его поведение по умолчанию относительно его родителя.

Обратите внимание, что значение initial нарушает вышеупомянутое поведение.:

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

7 голосов
/ 10 февраля 2013

Ключевое слово initial добавляется в CSS3, чтобы авторы могли явно указать это начальное значение.

2 голосов
/ 07 марта 2011

Вам необходимо предоставить селектор с специфичностью , чем в Main.css. С помощью этого селектора установите значения свойств, которые вы хотите, по умолчанию, например,

body .c1 {
    height: auto;
}

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

2 голосов
/ 07 марта 2011

Чтобы избавиться от свойства фиксированной высоты, вы можете установить для него значение по умолчанию:

height: auto;
1 голос
/ 04 июля 2017

У меня была проблема, заключающаяся в том, что даже когда я перезаписывал «height» на «unset» или «initial», он вел себя иначе, чем когда я удалял предыдущую настройку.Свойство min-height тоже!

height: unset;
min-height: none

Редактировать: Я тестировал IE 7, и он не распознает «unset», поэтому «auto» работает лучше ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...