2011-12-29 3 views
1

У меня есть форма, которая связана с различными таблицами стилей. У меня есть две таблицы стилей, которые имеют стили для выбранного тега. Таким образом, он становится конфликтующим, когда я связываю обе таблицы стилей.Как вручную применить стили из определенной таблицы стилей к элементу?

Например

У меня есть style1.css и style2.css, который содержит стили для выбора тега. И у меня есть два тега select с идентификаторами select1 и select2.

Я хочу только стиль от style1.css для применения к select1 и стилям от style2.css до select2. Как мне это сделать ?

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

Как я могу сделать стили разных таблиц стилей работать только в определенном месте?

+2

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

+0

Это невозможно без изменения селектора CSS в любом из таблиц стилей. – Sjoerd

ответ

1

Вы можете использовать селектор CSS3 :not(). Например, в style2.css, можно было бы написать:

select:not(#select1) { 
    // styling here will be applied to all selects except select1 
} 

Но на самом деле вы просто должны сохранить все стили для select тега в одном CSS документа. Таким образом, вы можете более легко контролировать конфликты.

+0

Очень хорошее решение, есть только одна проблема: ': not()' selector не поддерживается IE8 и ранее. IE9 и другие браузеры поддерживают его. – psur

0

CSS работает таким образом, что последние настройки являются самыми важными. Таким образом, вы можете связать style1.css первый, затем style2.css и в конце из style2.css вы можете определить стили для select1:

#select1 
{ 
    /* styles */ 
} 

Это не повлияет на какие-либо другие элементы, только select1.

Но обычно вы должны объединять стили для выбора в одной таблице стилей.

0

Вы можете определить имя класса для идентификатора style1 как class="style-one", а затем определить стили, указав тег !important стилям стилей. Как это:.

.style-one{border:none !important;} 

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

Смежные вопросы