Как поменять местами элементы таким образом? Такое возможно без js?

Ссылка скопирована
10 апреля 2026 1 ответ

Как поменять местами элементы таким образом? Такое возможно без js?

Как поменять местами элементы таким образом? Такое возможно без js?

HTML

<header class="header">         <div class="container">             <div class="header__top">                 <a class="logo" href="#">                     <img class="header__logo" src="images/header-logo.png" alt="">                 </a>                 <nav class="nav">                     <ul class="nav__list">                         <li class="nav__list-item">                             <a class="nav__list-link" href="#diagnostic">Диагностика</a>                         </li>                         <li class="nav__list-item">                             <a class="nav__list-link" href="#price">Стоимость</a>                         </li>                         <li class="nav__list-item">                             <a class="nav__list-link" href="#team">Мастера</a>                         </li>                         <li class="nav__list-item">                             <a class="nav__list-link" href="#comments">Отзывы</a>                         </li>                         <li class="nav__list-item">                             <a class="nav__list-link" href="#questions">Вопросы</a>                         </li>                     </ul>                 </nav>                 <div class="call">                     <p class="call__text">Москва</p>                     <a href="#" class="call__button">Позвонить</a>                 </div>             </div>

<header class="header"> <div class="container"> <div class="header__top"> <a class="logo" href="#"> <img class="header__logo" src="images/header-logo.png" alt=""> </a> <nav class="nav"> <ul class="nav__list"> <li class="nav__list-item"> <a class="nav__list-link" href="#diagnostic">Диагностика</a> </li> <li class="nav__list-item"> <a class="nav__list-link" href="#price">Стоимость</a> </li> <li class="nav__list-item"> <a class="nav__list-link" href="#team">Мастера</a> </li> <li class="nav__list-item"> <a class="nav__list-link" href="#comments">Отзывы</a> </li> <li class="nav__list-item"> <a class="nav__list-link" href="#questions">Вопросы</a> </li> </ul> </nav> <div class="call"> <p class="call__text">Москва</p> <a href="#" class="call__button">Позвонить</a> </div> </div>

CSS

.header {     background-image: url(../images/header-bg.jpg);     background-size: cover;     /* background-position: 100% 100%; */     background-repeat: no-repeat;     min-height: 100vh; }  .header__top {     display: flex;     justify-content: space-between;     align-items: center;     padding-top: 46px; }  .logo {     padding-bottom: 5px; }    .nav {     width: 50%; }  .nav__list {     display: flex;     gap: 40px;  }  .call {      display: flex; }   .call__text {     display: flex;     align-items: center;     padding-right: 40px; }  .call__text::before {     content: '';     padding-right: 10px;     background-image: url(../images/geo.svg);     background-repeat: no-repeat;     min-width: 20px;     min-height: 20px; }  .call__button {     padding: 18px 40px;     font-weight: 700;     background-color: transparent;     border: 2px solid #FFC464;     border-radius: 15px;     color: #FFC464;     cursor: pointer;     transition: all .3s ease;  }  .call__button:hover {     background-color: #fff;     color: black;  }

.header { background-image: url(../images/header-bg.jpg); background-size: cover; /* background-position: 100% 100%; */ background-repeat: no-repeat; min-height: 100vh; } .header__top { display: flex; justify-content: space-between; align-items: center; padding-top: 46px; } .logo { padding-bottom: 5px; } .nav { width: 50%; } .nav__list { display: flex; gap: 40px; } .call { display: flex; } .call__text { display: flex; align-items: center; padding-right: 40px; } .call__text::before { content: ''; padding-right: 10px; background-image: url(../images/geo.svg); background-repeat: no-repeat; min-width: 20px; min-height: 20px; } .call__button { padding: 18px 40px; font-weight: 700; background-color: transparent; border: 2px solid #FFC464; border-radius: 15px; color: #FFC464; cursor: pointer; transition: all .3s ease; } .call__button:hover { background-color: #fff; color: black; }

Дополнительно:

Почему вы все боитесь JS? Не так уж он и сложен, как вы думаете.

  • Anonymous, Потому-что решил пока остановиться на оттачивании навыков в html и css. Js считаю еще рано, слишком перегруженно получится.
  • с грид лайаутом можно. чем здесь js здесь поможет - не знаю.
    да с флексом можно. order - в помощь.
  • Please2334, а что там такого можно оттачивать? Сидеть и запоминать букАвки?
    Сделать через JS можно, а вот через CSS не знаю. Он не настолько интерактивный.
  • Anonymous, js тут даром не нужен. Только прибавит к css ещё немножко кода.

    Please2334, флексы, гриды, order, display: contents. Ну или даже абсолюты...

  • Ответы:

    CSS, @media, grid-template

    • То-есть следует прописать display: grid контейнеру хедера, при мобильной ширине? А при обычной ширине можно оставить flex?
    • Please2334, Можно и полность на grid.
      Для широкого варианта одна строка "a b b b . c d"
      Для узкого две строки "c b b b" и "a . . d"
    • Please2334, grid-template-areas

    Как уже ответили выше можно использовать grid-template, а можно поиграть со флексами и попробовать применить order и @media для изменения положения элементов

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Никита Орлов Ответ

    Да, такая задача вполне решаема без использования JavaScript. Для того чтобы поменять местами элементы на странице, можно воспользоваться CSS свойством `order`, которое позволяет управлять порядком отображения элементов без изменения HTML структуры.

    Прежде всего, необходимо задать родительскому элементу свойство `display: flex;`, чтобы дочерние элементы стали флекс-элементами. Затем для каждого дочернего элемента задаем свойство `order` с нужным значением, чтобы изменить порядок их отображения.

    Пример кода на PHP для смены местами двух элементов с классами "element1" и "element2" на странице:

     
        .container {
            display: flex;
        }
        .element1 {
            order: 2;
        }
        .element2 {
            order: 1;
        }
     
     
    <div class="container">
        <div class="element1">Элемент 1</div>
        <div class="element2">Элемент 2</div>
    </div>

    .container { display: flex; } .element1 { order: 2; } .element2 { order: 1; } <div class="container"> <div class="element1">Элемент 1</div> <div class="element2">Элемент 2</div> </div>

    В данном примере мы задаем порядок отображения элементов, где элемент с классом "element1" будет отображаться вторым, а элемент с классом "element2" - первым. Таким образом, элементы поменяются местами на странице без использования JavaScript.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно