добавление стиля в LinkButton без переопределения css

Таким образом, похоже, что если я добавлю стиль, такой как цвет фона, в LinkButton в моем коде .cs, он переопределит любой CSS, который у меня есть, который к нему относится.

есть ли способ добавить стиль, а не заменить его в моем коде? Спасибо! Я использую кнопку ссылки в качестве меню, поэтому активная кнопка ссылки должна иметь другой цвет фона. поэтому мое решение заключалось в том, что когда пользователь нажимает кнопку ссылки в моем обработчике событий, я делаю что-то вроде:

   lnkView.BackColor = System.Drawing.Color.FromName("#369");

Но тогда мой стиль наведения, который у меня есть в моем css, больше не будет работать:

.navlist a:hover
{
    color: #fff;
    background-color: #369;
    text-decoration: none;
}

в моем aspx:

<ul class="navlist">
        <li><asp:LinkButton ID="lnkView" runat="server">view</asp:LinkButton></li>
        <li><asp:LinkButton ID="lnkCreateNew" runat="server">create new</asp:LinkButton></li>
    </ul>

person sarsnake    schedule 23.12.2009    source источник


Ответы (4)


EDIT: Ваш вопрос неясен, но вы, похоже, неправильно понимаете CSS. Добавление background-color к свойству style не приведет к полному игнорированию любых правил CSS. Скорее, это переопределит любые правила CSS для свойства background-color, но не повлияет ни на какие другие правила.

Если вы не хотите переопределять свойство background-color из правила CSS, добавьте флаг !important к правилу CSS в :hover, например:

background-color: #369 !important;

Также измените цвет, чтобы изменения были заметны.

В качестве альтернативы вы можете добавить новое правило CSS для .navlist a:link .Active с цветом фона, а затем добавить класс Active в код. (lnkView.CssClass += "Active")

Кстати, вместо Color.FromName нужно писать Color.FromArgb(0x33, 0x66, 0x99).

person SLaks    schedule 24.12.2009

Любые встроенные стили всегда переопределяют любые унаследованные стили из заголовка документа или внешнего файла css. Единственным другим вариантом было бы добавить функцию javascript, которая переопределяет стиль объекта после события готовности DOM или готовности окна.

person TALLBOY    schedule 24.12.2009

Не уверен, что вы используете здесь, так как ваш вопрос не совсем ясен. Впрочем, это тоже может быть вариантом.

Имейте два стиля css:

.navlistafteranaction a:link
    {
        color: #fff;
        background-color: #123;
        text-decoration: none;
    }

.navlist a:link
    {
        color: #fff;
        background-color: #123;
        text-decoration: none;
    }

Затем в вашем коде просто переключите свой CSSClass:

lnkbtn.CssClass = "navlistafteranaction";

Это изменило бы класс, чтобы иметь любой стиль, который вы хотели после факта.

person Clarence Klopfstein    schedule 24.12.2009

Если я правильно понимаю, что вы хотите, вы хотите, чтобы применялись разные стили в зависимости от того, находится ли кнопка ссылки? Итак, имейте стиль, который у вас есть, но также имейте:

.navlist a:link
    {
        color: #fff;
        background-color: #123;
        text-decoration: none;
    }

если вам нужен третий цвет после посещения ссылки, определите его с помощью a:visited. Это то, что вам нужно?

person Patrick Karcher    schedule 24.12.2009