Как я могу аннулировать свойство css?
В основном у меня есть два внешних css на моей странице.
Первый Main.css
содержит все правила стиля, но у меня нет доступа к нему, и поэтому я не могу его изменить. У меня есть доступ ко второму файлу Template.css
, поэтому мне нужно переопределить значения Main.css
в Template.css
.
Это легко, для чего мне нужно изменить значение, но как полностью удалить свойство?
Как сказать, класс .c1
имеет height: 40px;
, как мне избавиться от этого свойства height?
Ответы
Ответ 1
У вас должно быть reset каждое отдельное свойство обратно по умолчанию. Это не здорово, но это единственный способ, учитывая информацию, которую вы нам дали.
В вашем примере вы бы сделали:
.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
Ключевое слово unset CSS - это комбинация начального и наследуемого ключевые слова. Как и эти два других ключевых слова CSS, его можно применить к любое свойство CSS, включая CSS-стенографию. Это ключевое слово сбрасывается свойство к его унаследованному значению, если оно наследуется от его родителя или к его первоначальному значению, если нет. Другими словами, он ведет себя как наследовать ключевое слово в первом случае и как начальное ключевое слово в второй случай.
Поддержка браузера хорошая: http://caniuse.com/css-unset-value
Ответ 2
например, класс .c1 имеет высоту: 40 пикселей; как я могу избавиться от этого свойства height?
К сожалению, вы не можете. CSS не имеет "заполнителя" по умолчанию.
В этом случае вы должны reset использовать свойство
height: auto;
как @Ben правильно указывает, в некоторых случаях inherit
- правильный путь, например, при сбросе цвета текста элемента a
(это свойство наследуется от родительского элемента):
a { color: inherit }
Ответ 3
В CSS3 добавляется ключевое слово initial
, чтобы авторы могли явно указать это начальное значение.
Ответ 4
.c1 {
height: unset;
}
Значение unset
, добавленное в CSS3, также решает эту проблему, а - еще более универсальный метод, чем auto
или initial
, потому что он устанавливает для каждого свойства CSS значение по умолчанию и, кроме того, его поведение по умолчанию относительно его родителя.
Обратите внимание, что значение initial
нарушает вышеупомянутое поведение.
От MDN:
Подобно этим двум другим ключевым словам CSS, он может применяться к любому свойству CSS, включая сокращенную CSS all. Это ключевое слово сбрасывает свойство до унаследованного значения, если оно наследуется от его родителя или его начального значения, если нет.
Ответ 5
Чтобы избавиться от свойства фиксированной высоты, вы можете установить его значение по умолчанию:
height: auto;
Ответ 6
Вам нужно предоставить селектор с более высоким specificity, чем тот, который находится в Main.css
. С помощью этого селектора установите значения свойств, которые вы хотите по умолчанию, например
body .c1 {
height: auto;
}
Нет значения "по умолчанию", которое будет работать для всех свойств, вам нужно посмотреть, что по умолчанию для каждого, и использовать его.
Ответ 7
У меня возникла проблема, что даже когда я переписывал "высоту" на "unset" или "initial", это отличалось от того, когда я удалил предыдущую настройку.
Оказалось, что мне нужно также удалить свойство min-height!
height: unset;
min-height: none
Изменить: я тестировал в IE 7 и не распознал "unset", поэтому "auto" работает лучше ".