Возвращение стиля CSS кнопки <input type = submit к ее стилю по умолчанию - PullRequest
18 голосов
/ 19 декабря 2008

Я использую букмарклет, который вставляет тег скрипта в текущую веб-страницу.

Этот скрипт имеет некоторый интерфейс и тег "input type=submit....".

Веб-страница A выбрала не стилизовать теги "input type=submit..", тогда как веб-страница B их стилизовала.

Это приводит к тому, что букмарклет отображает отправку по-разному кнопки, основанные на стиле базовой страницы.

Я хочу, чтобы кнопки отправки были одинаково стилизованы на всех веб-страницах в по умолчанию .

Одним из решений является установка стиля CSS для кнопки отправки в моем скрипте поэтому он одинаково отображается на всех страницах. (Это то, что я сделал для всех другие теги).

Мой вопрос:

  1. Как установить стиль CSS для кнопки отправки, чтобы она отображалась в «по умолчанию» или?
  2. Можно ли удалить существующий стиль и, если да, то как для кнопки, чтобы она отображалась «по умолчанию»?

Другими словами, как я могу иметь кнопки отправки в пользовательском интерфейсе моего букмарклет будет отображаться «по умолчанию» независимо от того, основная веб-страница выбрала стиль или нет?

Примечание. Под «способом по умолчанию» я подразумеваю способ отображения кнопки отправки, когда к ней не добавлены стили. Например, «поиск Google» или Кнопки «Мне повезло» на http://www.google.com.

Ответы [ 10 ]

8 голосов
/ 19 декабря 2008

Взято из Центра разработчиков Mozilla

Восстановление значения свойства по умолчанию Поскольку CSS не предоставляет ключевое слово «по умолчанию», единственный способ восстановить значение свойства по умолчанию - это явное повторное объявление этого свойства. Таким образом, следует соблюдать особую осторожность при написании правил стиля с использованием селекторов (например, селекторов по имени тега, например p), которые вы можете переопределить с помощью более конкретных правил (например, тех, которые используют селекторы идентификатора или класса), поскольку исходное значение по умолчанию значение не может быть восстановлено автоматически. Из-за каскадной природы CSS рекомендуется определять правила стилей как можно точнее, чтобы предотвратить элементы стиля, которые не предназначены для стилизации.

Единственный способ, которым вы располагаете, - это установить свой собственный класс для кнопки, что очень явно указано в ее правилах CSS: то есть

background-color:grey !important;

вместо

background:grey;
7 голосов
/ 08 июня 2009

Для Firefox вы можете найти стили формы по умолчанию, введя resource: //gre/res/forms.css в адресную строку, которая, по крайней мере, даст вам детали стиля по умолчанию для кнопки ввода, чтобы вы могли затем скопируйте их и переопределите, используя!

Это не совсем удовлетворительно, хотя стиль по умолчанию, конечно, может измениться в будущей версии браузера, и стиль по умолчанию для разных браузеров может отличаться.

6 голосов
/ 17 июля 2009

Вы можете ограничить CSS-стилизацию INPUT (кнопка «Отправить» является типом ввода), чтобы она не влияла на кнопки «Отправить»

Так что вместо того, чтобы просто поставить:

input{
blah; blah; blah;
}

Вы можете создать стиль:

input[type="text"] {
blah blah blah
}

И это повлияет только на ввод текста, оставив все остальное, включая кнопки отправки по умолчанию.

Ссылка JWW на ресурс: //gre/res/forms.css является справочной. Если вы посмотрите на это, вы увидите, как установить стиль, влияющий на несколько разных типов ввода.

1 голос
/ 25 июля 2012

URL выше стилей по умолчанию в Firefox больше не работает по крайней мере в ff14, новое местоположение:

resource:///chrome/toolkit/res/forms.css
1 голос
/ 04 апреля 2010

Спасибо, используется с хорошими результатами

INPUT, SELECT
{
    color: #003333;
    font-size: 90%;
    border-bottom: #d3d3d3 1px solid;
    border-left: #d3d3d3 1px solid;
    border-top: #d3d3d3 1px solid;
    border-right: #d3d3d3 1px solid;
}

INPUT[type="submit"]
{
    background-color: #336699;
    color: #f0e68c;
}
0 голосов
/ 24 мая 2016

Вы можете использовать стиль ниже для сброса стиля кнопки на стиль по умолчанию

.reset-this {
    animation : none;
    animation-delay : 0;
    animation-direction : normal;
    animation-duration : 0;
    animation-fill-mode : none;
    animation-iteration-count : 1;
    animation-name : none;
    animation-play-state : running;
    animation-timing-function : ease;
    backface-visibility : visible;
    background : 0;
    background-attachment : scroll;
    background-clip : border-box;
    background-color : transparent;
    background-image : none;
    background-origin : padding-box;
    background-position : 0 0;
    background-position-x : 0;
    background-position-y : 0;
    background-repeat : repeat;
    background-size : auto auto;
    border : 0;
    border-style : none;
    border-width : medium;
    border-color : inherit;
    border-bottom : 0;
    border-bottom-color : inherit;
    border-bottom-left-radius : 0;
    border-bottom-right-radius : 0;
    border-bottom-style : none;
    border-bottom-width : medium;
    border-collapse : separate;
    border-image : none;
    border-left : 0;
    border-left-color : inherit;
    border-left-style : none;
    border-left-width : medium;
    border-radius : 0;
    border-right : 0;
    border-right-color : inherit;
    border-right-style : none;
    border-right-width : medium;
    border-spacing : 0;
    border-top : 0;
    border-top-color : inherit;
    border-top-left-radius : 0;
    border-top-right-radius : 0;
    border-top-style : none;
    border-top-width : medium;
    bottom : auto;
    box-shadow : none;
    box-sizing : content-box;
    caption-side : top;
    clear : none;
    clip : auto;
    color : inherit;
    columns : auto;
    column-count : auto;
    column-fill : balance;
    column-gap : normal;
    column-rule : medium none currentColor;
    column-rule-color : currentColor;
    column-rule-style : none;
    column-rule-width : none;
    column-span : 1;
    column-width : auto;
    content : normal;
    counter-increment : none;
    counter-reset : none;
    cursor : auto;
    direction : ltr;
    display : inline;
    empty-cells : show;
    float : none;
    font : normal;
    font-family : inherit;
    font-size : medium;
    font-style : normal;
    font-variant : normal;
    font-weight : normal;
    height : auto;
    hyphens : none;
    left : auto;
    letter-spacing : normal;
    line-height : normal;
    list-style : none;
    list-style-image : none;
    list-style-position : outside;
    list-style-type : disc;
    margin : 0;
    margin-bottom : 0;
    margin-left : 0;
    margin-right : 0;
    margin-top : 0;
    max-height : none;
    max-width : none;
    min-height : 0;
    min-width : 0;
    opacity : 1;
    orphans : 0;
    outline : 0;
    outline-color : invert;
    outline-style : none;
    outline-width : medium;
    overflow : visible;
    overflow-x : visible;
    overflow-y : visible;
    padding : 0;
    padding-bottom : 0;
    padding-left : 0;
    padding-right : 0;
    padding-top : 0;
    page-break-after : auto;
    page-break-before : auto;
    page-break-inside : auto;
    perspective : none;
    perspective-origin : 50% 50%;
    position : static;
    /* May need to alter quotes for different locales (e.g fr) */
    quotes : '\201C' '\201D' '\2018' '\2019';
    right : auto;
    tab-size : 8;
    table-layout : auto;
    text-align : inherit;
    text-align-last : auto;
    text-decoration : none;
    text-decoration-color : inherit;
    text-decoration-line : none;
    text-decoration-style : solid;
    text-indent : 0;
    text-shadow : none;
    text-transform : none;
    top : auto;
    transform : none;
    transform-style : flat;
    transition : none;
    transition-delay : 0s;
    transition-duration : 0s;
    transition-property : none;
    transition-timing-function : ease;
    unicode-bidi : normal;
    vertical-align : baseline;
    visibility : visible;
    white-space : normal;
    widows : 0;
    width : auto;
    word-spacing : normal;
    z-index : auto;
}

Ссылка на ссылку - GitHub

Выше приведено решение вашей проблемы, но я не думаю, что сброс css является чем-то возможным, если мы не окажемся в такой ситуации, поэтому постарайтесь избегать подобных ситуаций.

Надеюсь, это поможет вам.

Спасибо

0 голосов
/ 13 ноября 2013

Это , кажется, прекрасно работает (поверьте мне, попробуйте):

/* Restore Browser's Default Submit Button Style */
input[type=submit] {
    background:ButtonFace; 
    color:ButtonText; 
    border:2px outset ButtonFace;
}
input[type=submit]:active {
    border-style:inset; 
    -webkit-appearance:push-button;
}
0 голосов
/ 06 ноября 2012

То, что я сделал, и, похоже, работает во всех браузерах ...

$(buttonID).css({
'background-color':''
});

просто оставив цвет фона пустым, кажется, что кнопка возвращается в состояние по умолчанию.

0 голосов
/ 16 апреля 2011

Я не думаю, что есть какой-либо способ получить доступ к рассчитанному стилю. Javascript (насколько я знаю) может только устанавливать встроенные стили и назначать классы. Я бы хотел, чтобы объект стиля DOM имел доступ к вычисляемым стилям, но, к сожалению, это не так.

Лучшее, что я могу придумать на данный момент, это просто объявить свои собственные правила CSS, чтобы переопределить все, что использует хост-сайт. Пока ваше правило CSS более конкретное, оно в конце концов победит. Это придаст вашему букмарклету непротиворечивый вид во всех браузерах, что в итоге может показаться не таким уж плохим.

0 голосов
/ 31 декабря 2010

Я придумал ту же проблему. Эти посты мне очень помогли. Мне пришлось назначить это правило CSS для текстовых входов в специальной таблице, но не для всех текстовых входов на странице. Поэтому мне пришлось использовать правило CSS с идентификатором таблицы. Это должно хорошо работать с идентификаторами форм.

'# addForum note' - это идентификатор специальной отформатированной таблицы.


#addForumNote input[type="text"], label, textarea{
  width: 425px;
  background-color: #ccc;
  border-style: solid;
  border: 1px;
  border-color: #7a7b7a;
}

Надеюсь, это может кому-то помочь. Спасибо.

...