добавление стиля к LinkButton без переопределения css
-
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.
Это то, чего ты добиваешься?