- revert
- Examples
- Возврат против отмены
- HTML
- CSS
- Result
- Revert all
- HTML
- CSS
- Result
- Возврат на родителя
- HTML
- CSS
- Result
- Specifications
- .prevent Default ( )
- Как пишется
- Пример
- Как понять
- На практике
- Георгий Милевский советует
- JavaScript — Отмена стандартного действия браузера
- Действия браузера по умолчанию
- Отмена стандартного действия браузера
- Влияет ли отмена стандартного действия, которое выполняет браузер, на его всплытие
revert
Ключевое слово revert CSS возвращает каскадное значение свойства из его текущего значения в значение, которое свойство имело бы, если бы текущий источник стиля не внес никаких изменений в текущий элемент. Таким образом, он сбрасывает свойство к его унаследованному значению, если оно наследуется от своего родителя, или к значению по умолчанию, установленному таблицей стилей пользовательского агента (или пользовательскими стилями, если таковые существуют). Его можно применить к любому свойству CSS, включая сокращенное свойство CSS all .
Это ключевое слово удаляет из каскада все стили,которые были переопределены,пока не будет достигнут стиль,к которому выполняется откат.
- Если используется собственными стилями сайта (авторское происхождение), revert откатывает каскадное значение свойства к пользовательскому стилю, если таковой существует; в противном случае он возвращается к стилю пользовательского агента по умолчанию.
- Если используется в настраиваемой таблице стилей пользователя или если стиль был применен пользователем (источник пользователя), revert откатывает каскадное значение к стилю пользовательского агента по умолчанию.
- Если оно используется в стилях пользовательского агента по умолчанию, это ключевое слово функционально эквивалентно unset .
revert ключевых слов работает точно так же , как и не unset во многих случаях. Единственная разница заключается в свойствах, значения которых задаются браузером, или настраиваемыми таблицами стилей, созданными пользователями (устанавливаемыми на стороне браузера).
Возврат не повлияет на правила, применяемые к дочерним элементам элемента, который вы сбрасываете (но удалит эффекты родительского правила для дочернего элемента). Итак, если у вас есть color: green для всех разделов и all: revert к определенному разделу, цвет раздела будет черным. Но если у вас есть правило сделать все абзацы красными, то все абзацы по-прежнему будут красными во всех разделах.
Примечание. Возврат — это просто значение. По-прежнему можно переопределить значение revert , используя специфичность .
Примечание. Ключевое слово revert отличается от ключевого слова initial , которое использует начальное значение, определенное для каждого свойства в спецификациях CSS , и его не следует путать . Напротив, таблицы стилей агента пользователя устанавливают значения по умолчанию на основе селекторов CSS.
Например, начальное значение свойства display — inline , в то время как обычная таблица стилей пользовательского агента устанавливает display значение по умолчанию для в block , для в table и т. д.
Examples
Возврат против отмены
Хотя revert и unset похожи, они отличаются некоторыми свойствами для некоторых элементов.
Итак, в приведенном ниже примере мы устанавливаем пользовательский font-weight , но затем пытаемся revert его и unset в HTML-документе. Ключевое слово revert сделает текст жирным, потому что это значение по умолчанию для заголовков в большинстве браузеров. Ключевое слово unset сохранит нормальный текст, поскольку это начальное значение свойства font-weight .
HTML
h3 style="font-weight: revert; color: revert;"> This should have its original font-weight (bold) and color: black h3> p>Just some text p> h3 style="font-weight: unset; color: unset;"> This will still have font-weight: normal, but color: black h3> p>Just some text p>
CSS
h3 < font-weight: normal; color: blue; >
Result
Revert all
Восстановление всех значений полезно в ситуации, когда вы внесли несколько изменений в стиль, а затем хотите вернуться к значениям браузера по умолчанию. Таким образом, в приведенном выше примере вместо того, чтобы возвращать font-weight и color по отдельности, вы можете просто вернуть их все сразу, применив ключевое слово revert all файлам .
HTML
h3>This will have custom styles h3> p>Just some text p> h3 style="all: revert"> This should be reverted to browser/user defaults. h3> p>Just some text p>
CSS
h3 < font-weight: normal; color: blue; border-bottom: 1px solid grey; >
Result
Возврат на родителя
Возврат эффективно удаляет значение для элемента,который вы выбрали с помощью некоторого правила,и это происходит только для этого элемента.Чтобы проиллюстрировать это,мы установим зеленый цвет для раздела и красный цвет для абзаца.
HTML
section> h3>This will be dark green h3> p>Text in paragraph will be red. p> This will also be dark green. section> section class="with-revert"> h3>This will be black h3> p>Text in paragraph will be red. p> This will also be black. section>
CSS
section < color: darkgreen > p < color: red > section.with-revert < color: revert >
Обратите внимание, что абзац по-прежнему имеет красный цвет, несмотря на то, что свойство цвета для раздела было изменено. Также обратите внимание, что и заголовок, и обычный текстовый узел имеют черный цвет. Это точно так же, как если бы section < color: darkgreen >не существовал бы для второго раздела.
Result
Specifications
.prevent Default ( )
На каждое действие пользователя на сайте, браузер создаёт события. Это наш главный способ в коде понимать, что происходит на странице. Событие — это объект, который имеет набор свойств и методов для взаимодействия с ним.
prevent Default ( ) — метод события. Этот метод отменяет поведение браузера по умолчанию, которое происходит при обработке события.
Например, при нажатии на ссылку, мы переходим по адресу этой ссылки. Вызов prevent Default ( ) отменит это поведение.
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Отменим переход по ссылке для всех тегов на странице. Для этого получим все ссылки с помощью query Selector ( ) , подпишемся на событие ‘click’ , и вызовем prevent Default ( ) :
const links = document.querySelector('a') links.addEventListener('click', (event) => // отменяем действие по умолчанию. Перехода по ссылке не будет event.preventDefault()>)
const links = document.querySelector('a') links.addEventListener('click', (event) => // отменяем действие по умолчанию. Перехода по ссылке не будет event.preventDefault() >)
Пример
Скопировать ссылку «Пример» Скопировано
Как понять
Скопировать ссылку «Как понять» Скопировано
Давайте разберём код из интерактивного примера:
const runTimer = (inputElement) => setTimetout(() => inputElement.focus() >, 5000) > const inputElement = document.querySelector('.input') inputElement.addEventListener('mousedown', (event) => event.preventDefault() runTimer(inputElement) >);
const runTimer = (inputElement) => setTimetout(() => inputElement.focus() >, 5000) > const inputElement = document.querySelector('.input') inputElement.addEventListener('mousedown', (event) => event.preventDefault() runTimer(inputElement) >);
Когда пользователь нажимает на инпут элемент, генерируется цепочка событий в следующем порядке: mousedown -> mouseup -> click .
Когда происходит событие mousedown , браузер устанавливает фокус на поле ввода. Вызовом event . prevent Default ( ) мы отменили это поведение. Затем мы запустили таймер, который установит фокус на инпут через 5 секунд с помощью вызова метода focus ( ) .
На практике
Скопировать ссылку «На практике» Скопировано
Георгий Милевский советует
Скопировать ссылку «Георгий Милевский советует» Скопировано
🛠 Часто возникает необходимость отправить данные из формы на сервер без перезагрузки страницы. Поведение по умолчанию формы — это отправка запроса на сервер и перезагрузка страницы. И тут нам на помощь приходит метод prevent Default ( ) , который отменит действия связанные с отправкой формы:
form class="discount-form"> label for="promocode">Промокодlabel> input id="promocode" type="text" name="promocode" placeholder="WIN-1234" required> button type="submit">Применитьbutton> form>
const form = document.querySelector('.discount-form')form.addEventListener('submit', (event) => event.preventDefault() // код по подготовке данных // и их отправка на сервер>)
const form = document.querySelector('.discount-form') form.addEventListener('submit', (event) => event.preventDefault() // код по подготовке данных // и их отправка на сервер >)
Подробнее этот подход разбирается в статье «Работа с формами».
JavaScript — Отмена стандартного действия браузера
На этом уроке мы рассмотрим, как можно отменить стандартные действия браузера, которые происходят, когда пользователь взаимодействует с некоторыми элементами веб-страницы. Также узнаем как отмена стандартного действия, которое выполняет браузер, влияет не его всплытие.
Действия браузера по умолчанию
Имеется много различных событий, при наступлении которых браузер выполняет определённые стандартные действия:
- mousedown — запускает выделение при перемещение мыши;
- click на элементе — переходит на указанный URL;
- click на — устанавливает или снимает флажок;
- click на кнопке с type=»submit» или нажатие Enter внутри поля формы вызывает событие submit и отправляет форму на сервер;
- keydown — нажатие клавиши может привести к добавлению символа в поле или другим действиям;
- contextmenu — событие происходит при щелчке правой кнопкой мыши (выполняет отображение контекстного меню браузера и т.п.).
Иногда в процессе обработке этих событий вы хотите, чтобы браузер не выполнял соответствующее стандартное действие. Его необходимо отменить и вместо него выполнить другое действие. В JavaScript возможно отменить стандартное действие браузера, для этого используется метод preventDefault .
Отмена стандартного действия браузера
Отмена стандартного действия браузера осуществляется посредством вызова метода preventDefault в обработчике события.
$element.addEventListener('click', function(e) { // отменяем стандартное действие браузера e.preventDefault(); . }, false);
Например, отменим стандартное действие для элемента а , имеющего id=»myAnchor» :
Перейти на сайт Яндекс
Если вы подписались на событие через JavaScript с помощью свойства объекта on[event] , т.е. способом, не рекомендованным стандартом ( addEventListener() ). То для отмены стандартного действия кроме event.preventDefault() также можно ещё использовать return false .
Предупреждение: Данный способ ( return false ) не будет работать, если обработчик назначен через метод addEventListener() .
element.onclick = function(event) { //. return false; }
Изменим вышеприведённый пример, выполнив подписку на событие » click » через свойство DOM-элемента on[событие] . Для прерывания выполнения действия будем использовать инструкцию return false :
Перейти на сайт Яндекс
Возможность отменять стандартные действия браузера очень часто применяются перед отправкой формы на сервер. Она используется для того чтобы проверить правильность заполнения формы с помощью скриптов JavaScript.
Влияет ли отмена стандартного действия, которое выполняет браузер, на его всплытие
В этом разделе мы рассмотрим следующий вопрос: «Влияет ли на всплытие события то, что мы отменили выполнение стандартного действия браузера, которое с ним связано?»
Чтобы разобраться в этом вопросе, давайте рассмотрим следующий пример:
Перейти на сайт Яндекс
Из этого примера видно, что отмена стандартного действия браузера (переход на страницу, указанную в атрибуте href , при нажатии на ссылку) не останавливает всплытие пузырька (события).
Следовательно, отмена стандартного действия браузера для некоторого события не влияет на всплытие пузырька (события), т.е. они выполняются не зависимо друг от друга
В ситуациях, когда Вам необходимо отменить стандартное действие браузера и всплытие события (пузырька), можно использовать следующий код:
element.addEventListener("click",function(event) { . //отменить стандартные действия браузера еvent.рreventDefault(); //отменить всплытие события, т.е. проткнуть пузырь event.stopPropagation(); },false);
Внимание: Не любое стандартное действие браузера можно отменить. Это может быть связано с тем, что стандартные действия для некоторых событий браузер выполняет до того как происходит вызов его обработчика. Следовательно, такие действия уже отменить нельзя. Кроме этого, стандартное действие для некоторых событий браузер не позволяет отменить из-за политики безопасности, которая в нём используется.