Я уверен, что об этом уже говорилось / спрашивалось, но я искал возраст без удачи, моя терминология, должно быть, неверна!
Я смутно помню твит, который я видел некоторое время назад, в котором говорилось о наличии правила css, которое удаляло бы любые стили, ранее установленные в таблице стилей для определенного элемента.
Хорошим примером использования может служить сайт RWD, ориентированный на мобильные устройства, где большая часть стилей, используемых для определенного элемента в представлениях малого экрана, требует «сброса» или удаления для того же элемента в представлении рабочего стола.
Правило CSS, которое может достичь чего-то вроде:
.element {
all: none;
}
Пример использования:
/* mobile first */
.element {
margin: 0 10;
transform: translate3d(0, 0, 0);
z-index: 50;
display: block;
etc..
etc..
}
@media only screen and (min-width: 980px) {
.element {
all: none;
}
}
Таким образом, мы можем быстро удалить или переустановить стиль без необходимости объявлять каждое свойство.
Имеет смысл?
all
который предлагается для сброса всех свойств CSS для данного элемента в некоторые CSS шириной значений - значение , которое вы хотите использовать будешьunset
, который сбрасывает свойство либо унаследованное значение , если он наследует по умолчанию, или в противном случае его начальное значение. Нет слов о реализации, но приятно знать, что кто-то об этом думал.all: revert
Сделаю. Смотри мой ответ. @CBroe Да, такая вещь существует сейчас.Ответы:
Ключевое слово CSS3
initial
устанавливает для свойства CSS3 начальное значение, определенное в спецификации .initial
Ключевое слово имеет широкую поддержку браузера для семей IE и Opera Mini за исключением.Поскольку отсутствие поддержки IE может вызвать проблемы, вот некоторые из способов, которыми вы можете сбросить некоторые свойства CSS до их начальных значений:
Как упомянуто в комментарии @ user566245:
[POST EDIT FEB 4, '17] Признан за то, что стал современной нормой, пользователь Joost
ПРИМЕР ОТ W3
ЯВАСЦРИПТ?
Никто не думал о чем-то кроме css для сброса css? Да?
Вот этот фрагмент полностью актуален: https://stackoverflow.com/a/14791113/845310
ответил 9 Фев '13 в 20:15 VisioN
Со всем этим сказано; я не думаю, что сброс css является чем-то выполнимым, если только у нас не останется только один веб-браузер ... если в конце браузер установит 'default'.
Для сравнения, вот список значений Firefox 40.0 для
<blockquote style="all: unset;font-style: oblique">
гдеfont-style: oblique
запускает DOM-операцию.источник
Для будущих читателей. Я думаю, что это было то, что имелось в виду, но в настоящее время не очень широко поддерживается (см. Ниже):
источник
all
.all
как рассматриваемый . Будущая версия Edge вполне может его поддержать.#someselector { ... * { all: unset; } ... }
- это Sass. Вы не упомянули здесь Sass - это что-то новое в CSS3? Поиск "вложенного CSS" просто дает мне учебные пособия начального уровня и информацию Sass. Добавление... * { ... } ...
вложенной части в мой CSS (в HTML5) нарушает мой документ (мои дочерние элементы по отдельности принимают стиль, который я просто хотел применить к родителю).Для этой проблемы найдено новое решение.
Используйте
all: revert
илиall: unset
.От MDN:
Итак, если элемент имеет имя класса, например
remove-all-styles
:Например:
HTML:
С помощью CSS:
Сброс всех стилей, примененных
other-class
,another-class
и всех других унаследованных и примененных стилей к этомуdiv
.Или в вашем случае:
Сделаю.
Нажмите здесь, чтобы узнать разницу между автором, пользователем и пользовательским агентом.
Например: если мы хотим изолировать встроенные виджеты / компоненты от стилей страницы, которая их содержит , мы можем написать:
Который будет возвращать все
author styles
(т. Е. CSS разработчика) кuser styles
(стили, которые установил пользователь нашего сайта - менее вероятный сценарий) или кuser-agent
самим стилям, если пользовательские стили не установлены.Более подробная информация здесь: https://developer.mozilla.org/en-US/docs/Web/CSS/revert
И единственная проблема заключается в поддержке : только Safari 9.1 и iOS Safari 9.3 поддерживают
revert
значение на момент написания.Поэтому я скажу использовать этот стиль и отступить от любых других ответов.
источник
all: initial
иall: unset
работал для меня на MS Edge 16).Позвольте мне подробно ответить на этот вопрос, потому что он был источником боли для меня в течение нескольких лет, и очень немногие люди действительно понимают проблему и почему это важно для ее решения. Если бы я вообще отвечал за спецификацию CSS, я бы, честно говоря, смутился за то, что не обратился к этому в последнее десятилетие.
Проблема
Вам нужно вставить разметку в документ HTML, и она должна выглядеть определенным образом. Кроме того, вы не являетесь владельцем этого документа, поэтому вы не можете изменять существующие правила стиля. Вы не представляете, какими могут быть таблицы стилей или что они могут изменить.
Для этого используются случаи, когда вы предоставляете отображаемый компонент для использования неизвестными сторонними веб-сайтами. Примеры этого могут быть:
Самое простое исправление
Поместите все в iframe. Это имеет свой собственный набор ограничений:
Если ваш контент может уместиться в рамку, вы можете обойти проблему # 1, если ваш контент напишет iframe и явно задает контент, обходя тем самым проблему, поскольку iframe и документ будут совместно использовать один и тот же домен.
Решение CSS
Я искал решение проблемы, но, к сожалению, нет. Лучшее, что вы можете сделать, это явно переопределить все возможные свойства, которые могут быть переопределены, и переопределить их, как вы думаете, их значение по умолчанию.
Даже когда вы переопределяете, нет никакого способа гарантировать, что более целенаправленное правило CSS не переопределит ваше . Лучшее, что вы можете здесь сделать, - это настроить ваши правила переопределения как можно точнее и надеяться, что родительский документ не случайно получит лучший результат: используйте неясный или случайный идентификатор родительского элемента вашего контента и используйте! Важное во всех определениях значений свойств. ,
источник
p { color: blue}
не будет сброшен)другие способы:
1) включите код CSS (файл) сброса CSS CSS Yahoo и затем поместите все в этот DIV:
2) или использовать
источник
Я не рекомендую использовать ответ, который был отмечен как правильный здесь. Это огромная капля CSS, которая пытается охватить все.
Я бы посоветовал вам оценить, как удалить стиль из элемента для каждого конкретного случая.
Допустим, для целей SEO вам нужно включить H1 на страницу, которая не имеет реального заголовка в дизайне. Возможно, вы захотите сделать навигационную ссылку на этой странице H1, но, разумеется, вы не хотите, чтобы эта навигационная ссылка отображалась как гигантский H1 на странице.
Что вам нужно сделать, это обернуть этот элемент в тег h1 и проверить его. Посмотрите, какие стили CSS применяются конкретно к элементу h1.
Допустим, я вижу следующие стили, примененные к элементу.
Теперь вам нужно точно указать стиль, который применяется к H1, и сбросить их в классе CSS. Это будет выглядеть примерно так:
Это намного чище и не просто помещает в ваш файл случайный фрагмент кода, который вы не знаете, что он на самом деле делает.
Теперь вы можете добавить этот класс в свой h1
источник
Если вы используете sass в системе сборки, один из способов сделать это, который будет работать во всех основных браузерах, - это обернуть все ваши импорты стилей с помощью селектора: not (), например, так ...
Затем вы можете использовать класс отключения в контейнере, и у субконтента не будет ни одного из ваших стилей.
Конечно, теперь все ваши стили будут дополнены селектором: not (), так что это немного странно, но работает хорошо.
источник
Вы упомянули сайты, ориентированные на мобильные устройства ... Для адаптивного дизайна, безусловно, можно переопределить стили для маленьких экранов со стилями для больших экранов. Но вам может и не понадобиться.
Попробуй это:
Эти медиа-запросы не перекрываются, поэтому их правила не перекрывают друг друга. Это облегчает поддержку каждого набора стилей отдельно.
источник
ЛУЧШЕЕ РЕШЕНИЕ
Загрузите таблицу стилей «копировать / вставить» для сброса свойств CSS по умолчанию (стиль UA):
https://github.com/monmomo04/resetCss.git
Спасибо @ Мильче Патерн!
Полезная ссылка:Я действительно искал значения свойств стиля сброса / по умолчанию. Моя первая попытка состояла в том, чтобы скопировать вычисленное значение из инструмента Dev в браузере корневого (html) элемента. Но, как он рассчитал, он выглядел бы / работал по-разному в каждой системе.
Для тех, кто сталкивается с ошибкой браузера при попытке использовать звездочку * для сброса стиля дочерних элементов, и, поскольку я знал, что это не сработало для вас, я заменил звездочку "*" вместо имени всех тегов HTML. , Браузер не зависал; Я на Chrome версии 46.0.2490.71 м.
Наконец, хорошо отметить, что эти свойства будут сбрасывать стиль к стилю по умолчанию для самого верхнего корневого элемента, но не к начальному значению для каждого элемента HTML. Поэтому, чтобы исправить это, я взял стили «user-agent» браузера, основанного на webkit, и реализовал его в классе «reset-this».
Загрузите таблицу стилей «копировать / вставить» для сброса свойств CSS по умолчанию (стиль UA):
https://github.com/monmomo04/resetCss.git
Стиль пользовательского агента:
CSS браузеров по умолчанию для элементов HTML
http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css
Css специфичность (обратите внимание на специфику):
https://css-tricks.com/specifics-on-css-specificity/
https://github.com/monmomo04/resetCss.git
источник
В моем конкретном сценарии я хотел пропустить применение общих стилей к определенной части страницы, что лучше проиллюстрировано следующим образом:
После работы со сбросом CSS, который не принес большого успеха (в основном из-за приоритета правил и сложной иерархии таблиц стилей), вызвала на помощь вездесущий jQuery, который сделал работу очень быстро и достаточно грязно:
(Теперь расскажите, как плохо использовать JS для работы с CSS :-))
источник
Для тех из вас, кто пытается выяснить, как на самом деле удалить стиль только из элемента, не удаляя CSS из файлов, это решение работает с jquery:
источник
если вы устанавливаете свой CSS в классах, вы можете легко удалить их с помощью метода jQuery removeClass (). Код ниже удаляет класс .element:
Если параметр не указан, этот метод удалит ВСЕ имена классов из выбранных элементов.
источник
Нет, это просто вопрос лучшего управления структурой CSS.
В вашем случае я бы заказал мой CSS примерно так:
Просто эксперимент.
источник
Есть ли шанс, что вы ищете! Важное правило? Он не отменяет все объявления, но предоставляет способ их переопределить.
«Когда в объявлении стиля используется правило! Important, это объявление переопределяет любое другое объявление, сделанное в CSS, где бы оно ни находилось в списке объявлений. Хотя! Важное не имеет ничего общего со спецификой».
https://developer.mozilla.org/en-US/docs/CSS/Specificity#The_!important_exception
источник