it-swarm.com.ru

Селектор атрибута CSS для ввода type = "button" не работает в IE7

Я работаю над большой формой, и она содержит много кнопок по всей форме, поэтому я пытаюсь получить рабочий ввод [type = "button"] в моем основном файле CSS, чтобы он ловил все кнопки без необходимости добавлять класс для каждого, по какой-то причине это не работает на IE7, после проверки в Интернете он говорит, что IE7 должен поддерживать это.

Также это должно быть type = "button", а не type = "submit", так как не все кнопки будут отправлять форму.

Кто-нибудь может дать подсказку, что я делаю неправильно?

input[type="button"] {
    text-align:center;
}

Я также пробовал input[type=button]

10
Amra

Я изо всех сил пытался заставить селекторы input[type=button] работать в IE7 или IE8. Проблема оказалась в том, что на страницах HTML отсутствовала декларация "! DOCTYPE". Как только я добавил

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Тогда все работало нормально. Очевидно, что вы можете использовать другую декларацию "! DOCTYPE", чтобы удовлетворить ваши требования.

26
ipr101
input[type="button"]{ text-align:center; }

Что вы ожидаете от этого? Текст в <input type="button"> по умолчанию уже центрирован.

Если вы хотите выровнять саму кнопку внутри родительского элемента, вы должны установить text-align для родительского элемента, а не для кнопки.

Селекторы атрибутов - с кавычками или без них - работают в IE7. Это IE6, это проблема браузера там.

8
bobince

У меня не было проблем с получением таких CSS-заявлений, работающих в IE7; IE6 - это всегда проблема, но я верю, что этот CSS тоже подойдет. Поэтому я не думаю, что IE7 является проблемой.

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

input[type="submit"], input[Type="button"]
{ text-align: center; }

Во-вторых, как сказал Маноло Сантос, не могли бы вы сделать еще одно утверждение CSS, которое переопределяет настройку выравнивания текста? Настройка только для элементов ввода? Вероятно, стоит использовать инструмент разработчика, такой как Firebug, или компоненты разработчика, встроенные в Chrome или IE8, чтобы помочь найти проблему CSS.

3
Jeff Siver

Я уверен, что все знают о том, что решение добавить! DockType в заголовок не всегда возможно.

Например, я разрабатываю в среде DotNetNuke (DNN), в которой у разработчика нет доступа к заголовку. Тогда это почти невозможно добавить! DocType.

В этом случае у вас не так уж много вариантов, кроме как привязать CssClass к кнопке и явно сослаться на нее в модуле CSS.

1
Mehrad

К сожалению, селекторы атрибутов еще недостаточно хорошо реализованы во всех основных браузерах, потому что это текущий стандарт CSS3, а не 2.1 Поскольку ребята из W3C не так быстро принимают решения, вам лучше не возлагать слишком большие надежды, потому что мы не сможем использовать css3 в ближайшее время. Некоторые его аспекты уже реализованы, но этого нет (конечно, не в IE6).

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

Когда я создаю форму, я всегда добавляю тип ввода как класс, например:

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

1
Robbert van den Bogerd

Они работают для меня в IE7 (обе формы, с кавычками и без).

Может быть, есть другой селектор, который маскирует ваш. Вы можете попытаться сделать ваш селектор более конкретным, чтобы придать ему более высокий приоритет, например:

body form input[type="button"] {
background: red;
}
1
Manolo Santos

По любой причине бывают случаи, когда селекторы атрибутов не применяются до того, как страница отображается в IE7. Это на самом деле только что произошло со мной. Мой селектор был table[bgColor="#c0c0c0"] и не применялся при загрузке страницы. Так как я использовал IE9 (режим браузера: IE7, режим документа: стандарты IE7), я смог использовать F12 Developer Tools для просмотра моего CSS-файла. Я снял флажок селектора, а затем снова проверил его. Атрибуты, примененные после этого. Это воспроизводимо точно в старой доброй IE7, поэтому мне придется искать обходной путь. (Примечание: ни использование одинарных, двойных или нулевых кавычек, ни изменение капитализации здесь не оказывают влияния.)

0
Micah Henning

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

input [type = "Submit"] не работает в IE7 (несмотря на то, что IE правильно назначил стиль для ввода, как я видел в инструментах dev).

РЕШЕНИЕ: я переключился с Отправить на отправить, и это сработало!

Я разместил это здесь, потому что это может помочь кому-то при отладке.

0
Pedro Gil