Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Изменение при наведении (https://javascript.ru/forum/xhtml-html-css/83217-izmenenie-pri-navedenii.html)

Сергей Ракипов 17.10.2021 11:56

Изменение при наведении
 
Я могу сделать при помощи CSS так что бы при наведении на один элемент менялся другой, но при условии что они находятся в одном родители и тот кто меняется должно находится после того на который находятся. К примеру в 1 родители я навожусь на 1 а 2 меняется


1 А можно ли сделать так что бы менялся тот который находится перед тем на кого наводятся. К примеру наводится на 3 а 1 меняется

2 Или что бы у них были разные родители. навожусь на кого то из 1 родителя а в 2 родители что то меняется.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .roditel {
            display: flex; 
        }
        .roditel2 {
            display: flex; 
        }
        .rebenok {
            width: 64px;
            height: 64px;
            border: 4px solid #000;
            font-size: 24px;
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0px 20px 0px 20px;
            cursor: pointer;
        }
        .rebenok1 {
            color: red
        }
        .rebenok2 {
            color: orange
        }
        .rebenok3 {
            color: green;
        }
        .rebenok4 {
            color: red
        }
        .rebenok5 {
            color: orange
        }
        .rebenok6 {
            color: green;
        }
        .rebenok1:hover~.rebenok2{
            color: black;
        }
    </style>
</head>
<body>
    <h1>Родитель 1</h1>
    <div class="roditel">
        <div class="rebenok rebenok1">1</div>
        <div class="rebenok rebenok2">2</div>
        <div class="rebenok rebenok3">3</div>
    </div>
    <h1>Родитель 2</h1>
    <div class="roditel2">
        <div class="rebenok rebenok4">4</div>
        <div class="rebenok rebenok5">5</div>
        <div class="rebenok rebenok6">6</div>
    </div>
</body>
</html>

рони 17.10.2021 13:44

Сергей Ракипов,
можно на js

Сергей Ракипов 17.10.2021 18:58

Цитата:

Сообщение от рони (Сообщение 540749)
Сергей Ракипов,
можно на js

На JS я могу, вы и научили.

рони 17.10.2021 19:06

Сергей Ракипов,
css в обратку не умеет))) ... пока

Aetae 17.10.2021 19:08

Нельзя. Можно поменять только то что находится ниже и с общим родителем. И то это большая поблажка со стороны css.

Сергей Ракипов 18.10.2021 06:22

Ну я так и думал, просто бывает что люди в своем изучении могут делать такие вещи о которых даже не предположить из серии А ЧТО ТАК МОЖНО БЫЛО?! вот и спросил на всякий случай.

Можно сделать вот такой визуальный обман )) и сейчас наводишься на "последний элемент" и все работает.
Наводишь на 3 меняться один, наводишь на 6 меняется 4

По идее должно сработать и с абсолютным позиционирование, но я не пробовал.

Но общего родителя ни как не отменить.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .roditel {
            display: inline-grid; 
            grid-template-columns: auto auto auto;
            grid-template-rows: auto;
            grid-template-areas: 
                "rebenok3 rebenok2 rebenok1";
        }
        .roditel2 {
            display: flex; 
            flex-direction: row-reverse;
            justify-content: flex-end;
        }
        .rebenok {
            width: 64px;
            height: 64px;
            border: 4px solid #000;
            font-size: 24px;
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0px 20px 0px 20px;
            cursor: pointer;
        }
        .rebenok1 {
            color: red;
            grid-area: rebenok1;
        }
        .rebenok2 {
            color: orange;
            grid-area: rebenok2;
        }
        .rebenok3 {
            color: green;
            grid-area: rebenok3;
        }
        .rebenok4 {
            color: red;
        }
        .rebenok5 {
            color: orange;
        }
        .rebenok6 {
            color: green;
        }
        .rebenok1:hover~.rebenok3{
            color: black;
        }
        .rebenok4:hover~.rebenok6{
            color: black;
        }
    </style>
</head>
<body>
    <h1>Родитель 1</h1>
    <div class="roditel">
        <div class="rebenok rebenok1">3</div>
        <div class="rebenok rebenok2">2</div>
        <div class="rebenok rebenok3">1</div>
    </div>
    <h1>Родитель 2</h1>
    <div class="roditel2">
        <div class="rebenok rebenok4">6</div>
        <div class="rebenok rebenok5">5</div>
        <div class="rebenok rebenok6">4</div>
    </div>
</body>
</html>


Часовой пояс GMT +3, время: 19:48.