Удалить все форматирование из одного тега

Я использую плагин WordPress, который применяет некоторое форматирование CSS ко всем тегам ввода. Я хотел бы, чтобы моя кнопка отправки не имела их и использовала вместо них настройки CSS по умолчанию (применяемые браузером).

Как я могу

  1. Применить CSS ко всем тегам ввода, кроме кнопки "Отправить" (input type="submit") ИЛИ
  2. Удалить все пользовательские CSS из кнопки отправки?

Благодарю.

4 ответа

Решение

В CSS3 вы можете настроить таргетинг на все элементы, кроме x с:

*:not(x) {
    // some css
}

Смотрите здесь.

Я не уверен, что это возможно с CSS2 (без использования javascript, как указывает Джефф в комментариях).

Используя jquery, должно работать что-то вроде следующего:

$('input[type=submit]').removeAttr("class")

Это было быстро сковано, а не проверено.

Это может быть проблематично по кросс-браузерным причинам.

input[type="submit"] { margin:0; padding:0; background:#fff;border:.... }

Будет предназначаться только для представления входных данных, однако это не совместимо с IE6.

input:not([type="submit"]) {...} 

Ориентирован на все входные данные, которые не являются текстовыми, но не совместимы с IE6, 7 или 8.

Если вы обеспокоены IE6, вам придется вручную переопределить класс в вашем style.css

Проверьте матрицу совместимости здесь: http://www.quirksmode.org/css/contents.html

Для элемента № 1 вы можете просто определить типы входных данных, которые не отправляются, аля:

input[type=text], input[type=password],input[type=checkbox], input[type=radio],
textarea, select {
    background-color:#fff;
    border: 1px solid #bbb;
}

Для элемента № 2 вам нужно будет назначить и идентифицировать кнопку отправки, а затем переопределить все наследуемые стили, которые вы хотите удалить.

Другие вопросы по тегам