Селектор IE8 CSS выбирает, но не применяет стиль - PullRequest
5 голосов
/ 16 апреля 2010

Опыт отладки http://www.dmhermitage.org/wtfborders.pngThis заставляет меня хотеть убить себя.

У меня есть несколько действительно простых CSS для стилизации моих входных объектов:

    input, button
    {
        border: 1px solid #c66600;
        background-color: white;
        color: #7d212f;
        font-family: "Eras Light ITC", Tahoma, sans;
    }

Но мне не нравится эта уродливая граница, вокруг которой расположены переключатели, поэтому я использую селектор, чтобы убить границу:

input[type=radio] { border: none; }

Вероятно, вы можете догадаться, в каких браузерах это работает, а в каких - ОДНОМ, в котором оно не работает. Забавно, когда я нажимаю клавишу F12, чтобы запустить отличные инструменты для разработчиков в IE8, это фактически говорит мне о том, что стиль переключателей был переопределен. на «нет», как я и просил, но на объектах переключателей остается рамка.

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

И, наконец, я попробовал только стилизацию объектов 'текста', и в этом случае стиль не применяется ни к чему. Опять же, браузер утверждает, что выполняет выделение CSS, но визуально это не происходит.

Мысли

Кстати, это установка DotNetNuke со сгенерированным кодом, где я не могу явно установить стиль переключателей.

Спасибо, Dan

Ответы [ 6 ]

2 голосов
/ 16 апреля 2010

IE8, по-видимому, выполняет рендеринг в режиме причуд, а не в режиме стандартов, который в IE всегда все портит. Чтобы перейти в стандартный режим, проще всего заменить тип документа в первой строке документа следующим образом:

<!DOCTYPE HTML>

Возможно, вы также захотите посмотреть на выводимый HTML-код. У вас есть диапазон с идентификатором dnn_dnnMENU_ctldnnMENU, который содержит десятки готовых атрибутов, таких как BackColor, SysImgPath, MenuItemHeight и так далее. Они не будут иметь эффекта в большинстве браузеров (возможно, IE интерпретирует их специально, я не знаю).

1 голос
/ 16 апреля 2010

проблема в том ...

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

решение [править]

из-за: http://dorward.me.uk/www/ie8/

установите ваш тип документа html 4 на:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
0 голосов
/ 16 апреля 2010

Насти. Попробуйте указать цвет границы для белого?

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

Это невозможно с CSS больше (насколько я знаю), но с помощью этого Javascript здесь это будет возможно для вас; Стилизация флажков и переключателей с помощью CSS и Javascript .

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

Вы можете удалить границу, установив атрибут встроенного стиля на панели инструментов разработчика равным border: none; ... Поэтому по какой-то причине стиль не применяется к переключателю, хотя стиль отслеживается правильно. Похоже, что-то вроде ошибки ... Вы пытались усилить специфику правила (оно должно быть уже выше, чем ввод, но только чтобы попробовать)?

Например:

#page input[type=radio] {
   border: none;
}
0 голосов
/ 16 апреля 2010

На всякий случай, вы пробовали с:

input[type='radio'] { border: none; }

Обратите внимание на добавление апострофа (или как вы его называете 'на вашем смешном языке: P)


Я посмотрел на сайте, ваш CSS правильный, и я ничем не могу вам помочь. Удачи!

...