Изменение свойства внешнего DIV при наведении на внутренний элемент <a> - PullRequest
0 голосов
/ 04 декабря 2010

Я пытаюсь сделать кнопку чисто CSS-способом (я стараюсь максимально избегать JavaScript) У меня есть следующий код

CSS:

.Button a{
text-align:center;
vertical-align:middle;
background-color:transparent;
Height:100%;
color:white;
text-decoration:none;
}
.Button a:hover{
background-color:brown;
cursor:default;
}
.Button a:active{
background-color:gray;
}

СейчасМоя проблема заключается в том, что я хочу изменить цвет фона внешнего элемента (тот, который с классом, как «Кнопка»).Приведенный выше код меняет цвет фона элемента, а не вмещающий.Любые идеи, как я могу получить это (без использования JavaScript)?

Ответы [ 3 ]

1 голос
/ 04 декабря 2010

Псевдокласс :hover может быть применен и к элементам без привязки:

div.Button:hover {border:1px solid red}
0 голосов
/ 04 декабря 2010

Я отвечаю на свой вопрос, в надежде, что другие, которые могут наткнуться на эту ветку позже, могут извлечь выгоду, если у них возникнет та же проблема (так что им нужно сканировать сеть столько же, сколько я сделал сегодня: -P).

Как сказал Elusive, НЕ можно выбрать родительский элемент с помощью CSS-селекторов.

И код ниже работал для меня:

a.Button {
text-align:center;
vertical-align:middle;
background-color:transparent;
display:block;
Height:100%;
min-width:100px;
color:white;
padding:3px 3px 3px 3px;
text-decoration:none;
}
a.Button:hover{
background-color:brown;
cursor:default;
}
a.Button:active{
background-color:gray;
}

Я сделал стиль отображения элемента «блоком». И я смог добиться эффекта, который искал.

0 голосов
/ 04 декабря 2010

Это невозможно. CSS-селекторы не способны выбирать родительские элементы. Они не могут ходить по DOM. Вот почему я предпочитаю XPath, а не CSS-селекторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...