ASP.NET - проблема в применении элементов CSS к (дочерней) странице мастера - PullRequest
0 голосов
/ 17 июня 2011

У меня есть некоторые элементы CSS, основанные на идентификаторах элементов HTML. например,

ul#subNav div
{   
    /*top:45px !important;*/
    position: relative;
    visibility: hidden;
    margin: 0;
    padding: 0;
    background: #C6DEFF;
    border: 1px solid #5970B2;
    z-index:2020; 
}

Теперь я не могу применить этот стиль к веб-странице (веб-форме ASP.NET) на основе мастер-страницы, поскольку во время рендеринга идентификатор UL "subnav" меняется на "ctl100_subnav" и, следовательно, браузер no дольше применяется CSS.

Есть идеи преодолеть это?

Заранее спасибо.

1 Ответ

1 голос
/ 17 июня 2011

Добавьте класс в Div SubNav и примените CSS к классу, а не к идентификатору.

Или вы используете .net 4

Чтобы избежать конфликтов имен в элементах управления, ASP.NET 2.0 / 3.5 использовал ClientID, благодаря чему каждый элемент управления генерировал атрибут id, уникальный для этой страницы. Однако сгенерированные идентификаторы были длинными и непредсказуемыми. Разработчики, которые занимались программированием на стороне клиента с использованием языка сценариев, такого как JavaScript, печально рассказывают, когда речь заходит о ссылках на эти ClientID в своих сценариях.

ASP.NET 4.0 через новое свойство ClientIDMode теперь возвращает разработчику контроль над ClientID, сгенерированным элементами управления ASP.NET. По моему личному мнению, это было хорошее дизайнерское решение, принятое командой ASP.NET, так как многие разработчики ASP.NET используют программирование на стороне клиента для улучшения своих интерфейсов, а популярные платформы JavaScript, такие как jQuery, становятся все более популярными.

...