#jquery #jquery-ui #autocomplete #jquery-autocomplete
#jquery #jquery-пользовательский интерфейс #автозаполнение #jquery-автозаполнение
Вопрос:
Я использую плагин автозаполнения jQuery, который генерирует следующую разметку при появлении предложений.
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 16; width: 1355px; position: relative; top: -1615px; left: 40px; display: none; ">
<li class="ui-menu-item" role="menuitem">
<a class="ui-corner-all" tabindex="-1">java</a>
</li>
<li class="ui-menu-item" role="menuitem">
<a class="ui-corner-all" tabindex="-1">javascript</a>
</li>
</ul>
Насколько я понимаю, он использует плагин UI Position для позиционирования его относительно поля ввода. Но внутри сгенерированного style="z-index: 16; width: 1355px; position: relative; top: -1615px; left: 40px; display: none; "
ширина намного больше, чем у моего поля ввода.
Поскольку это встроенные стили, добавленные модулем, я не могу переопределить это с помощью ui-autocomplete
селектора. Есть идеи?
Комментарии:
1. Примечание: ширина моего поля ввода равна
1140px
Ответ №1:
Используйте !important
метод в css: например
.ui-autocomplete {
width:200px !important;
}
Комментарии:
1. Потрясающее исправление! У меня была такая же проблема, когда jQuery UI (для вкладок) вводил ширину встроенного стиля, а в IE она всегда была основана на пикселях (все другие браузеры основывались на процентах и имели правильное значение). С предложенным вами флагом ‘!important’ в моем CSS IE работает как все другие браузеры … спасибо!
2. @Jeach Приятно знать, что это помогло тебе. Однако вы должны считать этот метод последним возможным вариантом. Потому что это может привести вас к одной из самых болезненных отладок css.
3. Спасибо за совет! Но из любопытства, знаете ли вы (или кто-либо еще), почему в IE они вводят значение пикселя (которое слишком велико, что еще хуже), а во всех других браузерах они вводят процент?
4. Возможно, IE не может достичь 100%. Например:
width = 950
; 25% от 950 — это237.5
. Возможно, IE попытается отобразить это как238
и, возможно, как237
. Я не знаю, это всего лишь предположение. Но в любом случае у вас будет2
лишний пиксель.