добавление стиля в LinkButton без переопределения CSS - PullRequest
1 голос
/ 24 декабря 2009

Похоже, что если я добавлю стиль, такой как цвет фона, в 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>

Ответы [ 4 ]

2 голосов
/ 24 декабря 2009

РЕДАКТИРОВАТЬ : Ваш вопрос неясен, но вы, похоже, неправильно понимаете 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).

1 голос
/ 24 декабря 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";

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

1 голос
/ 24 декабря 2009

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

0 голосов
/ 24 декабря 2009

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

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

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

...