Як я можу звести нанівець властивість css?


109

В основному у мене на сторінці два зовнішні CSS.

Перший Main.cssмістить усі правила стилю, але я не маю до нього доступу, а значить, я не можу його змінювати. У мене є доступ до другого файлу Template.css, тому мені потрібно змінити значення Main.css's в template.css.

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

Як скажімо, клас .c1має height: 40px;, як я можу позбутися цього властивості висоти?


Відповіді:


175

Вам потрібно повернути кожне окреме майно до його значення за замовчуванням. Це не здорово, але це єдиний спосіб, враховуючи інформацію, яку ви нам дали.

У вашому прикладі ви зробите:

.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


3
+1 за приємну відповідь та довідку. Думаю, посилання змінилося на: developer.mozilla.org/en-US/docs/Web/CSS/Reference
Паоло

Встановлення значення авто не працює, коли немає початкового значення ("початкове значення: жодне"). Наприклад, роблячи "max-width: auto;" Я отримую помилку невідповідності значення властивості. Що я повинен зробити?
користувач1779563

3
@ user1779563 Ви встановили його на "немає".
AndreKR

1
Я хотів би подякувати @simhumileco за його відповідь, яку я безсоромно вкрав, оскільки моя відповідь прийнята, і люди можуть не прокручуватися вниз.
тридцять

10
.c1 {
    height: unset;
}

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

Зауважте, що initialзначення порушує вищезгадану поведінку.

Від MDN :

Як і ці два інші ключові слова, що стосуються CSS, воно може бути застосоване до будь-яких властивостей CSS, включаючи скорочення всіх CSS . Це ключове слово скидає властивість до його успадкованого значення, якщо воно успадковує від свого батьківського або його початкове значення, якщо ні.


9

скажімо, клас .c1 має висоту: 40 пікселів; як я можу позбутися цього властивості висоти?

На жаль, ви не можете. У CSS немає заповнення за замовчуванням.

У такому випадку ви б відновили властивість, використовуючи

 height: auto;

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

a { color: inherit }

3
Я дам +1 за це. Існує також значення "успадкувати". У деяких контекстах, окрім висоти, успадкування є більш доцільним.
Бен

1
@meo ти маєш рацію. (Супутнє запитання), що, здається, означає, що в IE є властивості, які не можна скинути до стандартних стандартів ... як шкода
Pekka

7

У initialCSS3 додається ключове слово, щоб автори могли чітко вказати це початкове значення.


FYI: height:initial;не працює в IE9.
Кріс Холленбек

так у чому різниця між initialі autoі unset?
ExillustX

2

Щоб позбутися властивості фіксованої висоти, ви можете встановити його за замовчуванням:

height: auto;

2

Потрібно надати селектору більш високу специфічність, ніж в Main.css. За допомогою цього селектора встановіть значення властивостей, які ви хочете, за замовчуванням, наприклад

body .c1 {
    height: auto;
}

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


1

У мене виникла проблема, що навіть коли я перезаписав "висоту" на "скинутий" або "початковий", він поводився інакше, ніж коли я видаляв попереднє налаштування.

Виявилося, мені теж потрібно було зняти властивість мінімальної висоти!

height: unset;
min-height: none

Редагувати: Я протестував на IE 7, і він не розпізнає "unset", тому "auto" працює краще ".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.