Почему это «ширина: авто» стиль работы как встроенный стиль в обоих браузерах, но перерыв при перемещении на внешнюю таблицу стилей только в IE?

голоса
0

У меня есть входной элемент, который по умолчанию это «ширина: 100%». Это заставляет его подтолкнуть другие элементы рядом с ним вниз на следующую строку. Чтобы исправить это временно я добавил атрибут встроенного стиля на элементе, как это:

<input style=width: auto ...>

который работал нормально. Теперь я возвращаюсь, чтобы очистить временные исправления и я двигаюсь все стили из стиля атрибуты во внешние таблицы стилей. Когда я двигаю эту конкретную «ширина: авто» стиль в таблице стилей он все еще выглядит отлично в Firefox, но в IE она игнорирует его и по умолчанию «ширина: 100%» снова, который дует из элементов рядом с ним снова.

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

Изменить: Я клянусь, что я пытался правой кнопкой мыши на панели разработчиков IE, но я предполагаю, что нет, - когда я делаю «стиль трассировки» на «ширина: 100%» в IE я получаю всплывающее окно, которое просто говорит: «1. Нет матча», однако в Firefox он показал, что 100% было кровотечение из через селектор выше на элемент, который был что-то вроде «#outer Foo бар INPUT», которая охватывает этот вход, а также. Я ошибочно предположить, что «#id» непосредственно на входной элемент будет иметь более высокую специфичность, чем «#id Foo бар INPUT», но я предполагаю, что браузеры не согласны с этим. В любом случае, что есть в корень моей проблемы, поэтому спасибо за комментарии. Хотелось бы, чтобы был способ продвижения комментарий к ответу ...

Задан 10/12/2008 в 06:15
источник пользователем
На других языках...                            


1 ответов

голоса
2

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

Одна вещь, вы можете попробовать, кроме внушения Джона Шихэна является применение идентификатора элемента ввода, а затем создать правило в таблицу стилей, которая добавляет ширина: авто на этот элемент через селектор ID.

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

EDIT: Учитывая ваши обновления, то правило, которое вызывает у вас горе работает так , как предполагается (насколько Специфичность обеспокоена). Если вы хотите , чтобы адрес вашего элемента конкретно вы можете написать правило с более сильной специфичностью с чем - то вроде этого:

#outer foo bar INPUT#id {
  width:auto;
}

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

Ответил 10/12/2008 в 08:36
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more