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

StackOverflow https://stackoverflow.com/questions/1956000

  •  21-09-2019
  •  | 
  •  

Вопрос

Таким образом, похоже, что если я добавлю стиль, такой как цвет фона, к 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>
Это было полезно?

Решение

Редактировать:Ваш вопрос неясен, но вы, похоже, неправильно понимаете 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).

Другие советы

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

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

Есть два стиля 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";

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top