Как сделать так, чтобы hover вызывал еще один hover в css? [Дубликат]

Вы можете сделать это с помощью атомного номера. Например:

import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.IntStream;
import java.util.stream.LongStream;

public class Accumulator {
    public static LongStream toCumulativeSumStream(IntStream ints){
        AtomicLong sum = new AtomicLong(0);
        return ints.sequential().mapToLong(sum::addAndGet);
    }

    public static void main(String[] args){
        LongStream sums = Accumulator.toCumulativeSumStream(IntStream.range(1, 5));
        sums.forEachOrdered(System.out::println);
    }
}

Эти выходы:

1
3
6
10

Я использовал Long для хранения сумм, потому что вполне возможно, что два ints будут хорошо дополняться Integer.MAX_VALUE, а у длинного меньше вероятность переполнения.

-1
задан Temani Afif 3 March 2019 в 21:42
поделиться

2 ответа

Если не наложить два элемента так, чтобы указатель находился над ними обоими одновременно, вы не можете… по определению.

Вы могли бы написать селектор, который соответствует некоторому другому элементу, когда первый перемещается с помощью комбинаторов, но специфика будет зависеть от взаимосвязи между элементами в DOM.

См. комбинаторы в спецификации .

Например:

div div {
  margin-left: 1em;
}

div:hover {
  outline: solid red 1px;
}

div:hover~div>div {
  background: orange;
}
<div>First</div>
<div>Second</div>
<div>
  Third
  <div>Child of third</div>
</div>
<div>
  Fourth
</div>

0
ответ дан Quentin 3 March 2019 в 21:42
поделиться

Если вы имеете в виду запуск правил в каком-то другом :hover {} правиле невыделенного элемента, то вы не можете. Совпадение одного селектора не может привести к внезапному совпадению другого несоответствующего селектора.

CSS имеет ограниченный набор комбинаторов и родственных селекторов, которые позволяют вам выражать отношения между элементами. Таким образом, вы можете выбрать элемент, который находится внутри или рядом с наведенным элементом, например :

:hover + p { color: red }

& amp;

<div>hover me</div>
<p>I'll become red</p>

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

0
ответ дан Kornel 3 March 2019 в 21:42
поделиться