На моем веб-сайте я использую эту многосекундную директиву несколько мест
http://isteven.github.io/angular-multi-select/#/main
Например, я использую его в своем навигаторе в качестве раскрывающегося списка выбора языка. Однако я хотел бы указать ширину раскрывающегося списка языков до уровня, не превышающего стандартного. В других местах я использую ту же директиву, и автоматическая ширина в порядке. Я могу изменить ширину языкового меню, изменив min-width и max-width в файле css, но это изменит ширину всех моих мультиселектов.
Итак, в основном, как я могу изменить css только одного конкретного экземпляра директивы?
[Обновить]
Многоселектор добавляется следующим образом:
<div isteven-multi-select
input-model="languages"
output-model="outputlanguages"
button-label="icon name"
item-label="icon name maker"
tick-property="ticked"
selection-mode="single"
helper-elements="filter"
on-item-click="changeLanguage(data)"
>
</div>
Когда html загружается, div isteven-multi-select будет содержать следующее:
<span class="multiSelect inlineBlock">
<button ...>
</button>
<div class="checkboxLayer"> //here is the dropmenu itself
</div>
</span
Поэтому, редактируя.checkboxLayer в файле css, я могу настроить ширину выпадающего меню. Но это изменяется для всех экземпляров multiselect. Он не работает, если я добавлю еще один класс в isteven-multi-select, так как это родительский div.
Добавьте класс css в div с директивой, в которой вы хотите уменьшить раскрывающийся список:
<div isteven-multi-select
input-model="languages"
output-model="outputlanguages"
button-label="icon name"
item-label="icon name maker"
tick-property="ticked"
selection-mode="single"
helper-elements="filter"
on-item-click="changeLanguage(data)"
<!-- Add this -->
class="thinDropdown" >
</div>
Затем в своем css напишите:
.thinDropdown .checkboxLayer {
width: 200px; /* Or whatever width you like */
}