Есть ли способ заставить стиль элемента div, который уже имеет атрибут style = "" - PullRequest
25 голосов
/ 19 сентября 2008

Я пытаюсь обработать вывод HTML, который я не могу контролировать. Одним из элементов является div с атрибутом style="overflow: auto".
Есть ли способ в CSS заставить div использовать overflow: hidden;?

Ответы [ 6 ]

69 голосов
/ 19 сентября 2008

Вы можете добавить !important в конец вашего стиля, например:

element {
    overflow: hidden !important;
}

Это то, на что обычно не стоит полагаться, но в вашем случае это лучший вариант. Изменение значения в Javascript отклоняется от лучшей практики разделения разметки, представления и поведения (html / css / javascript).

10 голосов
/ 19 сентября 2008

Вы пробовали установить !important в файле CSS? Что-то вроде:

#mydiv { overflow: hidden !important; }
4 голосов
/ 19 сентября 2008

Не уверен, сработает ли это или нет, не проверял с overflow.

overflow:hidden !important

возможно

2 голосов
/ 19 сентября 2008

Magnar правильный, как объяснено в спецификации W3C, вставленной ниже. Кажется, было добавлено ключевое слово! Important, позволяющее пользователям переопределять даже настройки стиля «запеченный в» на уровне элементов. Поскольку вы находитесь в ситуации, когда у вас нет контроля над HTML, это может быть вашим лучшим вариантом, хотя это не будет нормальным шаблоном проектирования.

Характеристики CSS W3C

Выдержка:

6.4.2! Важные правила CSS пытается создать баланс сил между автором и стилем пользователя листы. По умолчанию правила в Таблица стилей автора переопределяет те, что в таблица стилей пользователя (см. правило каскадирования 3).

However, for balance, an "!important" declaration (the keywords

"!" и "важно" следовать декларация) имеет приоритет над нормальная декларация. И автор, и пользовательские таблицы стилей могут содержать "! Важные" объявления и пользователь "! Важные" правила переопределяют автора «! важные» правила. Эта функция CSS улучшает доступность документов предоставление пользователям с особыми требованиями (крупные шрифты, цветовые сочетания, и т.д.) контроль над представлением.

Note. This is a semantic change since CSS1. In CSS1, author

"! Важные" правила имеют приоритет Над пользователем "! Важные" правила.

Declaring a shorthand property (e.g., 'background') to be

"! Важно" эквивалентно объявив все свои под-свойства в быть "! важно".

Example(s):

The first rule in the user's style sheet in the following example

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

/* From the user's style sheet */
P { text-indent: 1em ! important }
P { font-style: italic ! important }
P { font-size: 18pt }

/* From the author's style sheet */
P { text-indent: 1.5em !important }
P { font: 12pt sans-serif !important }
P { font-size: 24pt }
2 голосов
/ 19 сентября 2008

Если у div есть объявление встроенного стиля, единственный способ изменить его без изменения источника - это JavaScript. Атрибуты встроенного стиля 'win' каждый раз в CSS.

0 голосов
/ 19 сентября 2008

Насколько я знаю, стили реальных элементов HTML переопределяют все, что вы можете сделать в отдельном стиле CSS.

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

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