Как применить CSS только для текстовых полей, но не для всех типов <input>, таких как флажки и т. Д.? - PullRequest
1 голос
/ 03 мая 2010

Если бы все браузеры поддерживали селекторы атрибутов, мы могли бы легко сделать следующее:

input[type='text'] { font:bold 0.8em 'courier new',courier,monospace; } 
input[type='radio'] { margin:0 20px; } 
input[type='checkbox'] { border:2px solid red;

Но я не думаю, что все версии IE 6 и выше поддерживают это.

Думаю, я бы хотел избежать скинов. Не уверен, почему, кроме того, что я попробовал их, и я помню, что у меня был негативный опыт Вероятно, это было мое отсутствие знаний. Есть ли какие-либо проблемы в использовании и CSS, внешние или иные?

Какой лучший способ справиться с этим? В настоящее время я назначаю отдельные классы для каждого типа элемента управления.

1 Ответ

6 голосов
/ 03 мая 2010

Вы правы, что IE6 не поддерживает селектор атрибута. Единственным другим способом было бы иметь определенные для флажка классы, которые вы назначаете вручную. Я тоже, должно быть, новичок, потому что понятия не имею, о чем ты говоришь в отношении "скинов для микрофона".

Я бы сказал, что наиболее гибкий способ справиться с этим (если вы планируете совместимость с IE6) состоит в использовании Javascript-фреймворка, такого как jQuery, для назначения стилей рассматриваемым элементам. С селектором вроде:

$('input[type="checkbox"]').each( function() {
    $(this).css({
        'property': 'value'
    });
});

У вас есть кросс-браузерный совместимый способ гибкого назначения CSS для флажков только по типу.

EDIT:

Исправлена ​​ошибка начальной кодировки. Спасибо мистеру Мердоку за то, что он не такой, как чашка кофе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...