Ответы пользователя по тегу HTML
  • Prompt-компонент на весь сайт?

    ae_ph
    @ae_ph
    I'm a owl )
    Объяснение:
    Я изменил имя переменной состояния isBlock на isBlocking, чтобы было понятнее, что она представляет.
    Добавил прослушиватель событий к событию beforeunload, который будет запущен, когда пользователь попытается покинуть страницу.
    Добавил этот прослушиватель событий в хук useEffect, чтобы его можно было очистить при размонтировании компонента.
    Добавил функцию handleFormChange, которая будет запускаться каждый раз при изменении формы, она проверяет значение ввода или текстового поля, если оно больше 0, оно устанавливает для isBlocking значение true, в противном случае — значение false.
    Добавил событие onchange в форму и текстовое поле и событие onClick на кнопке отмены, это вызовет функцию handleFormChange, а также позволит пользователю отменить и покинуть страницу без каких-либо подсказок.
    Также добавил в форму кнопку отправки и удалил useEffect, который опрашивал элемент textarea, и setTimeout, который использовался для этого.
    Также добавил сообщение к событию beforeunload, которое будет отображаться как подсказка для пользователя с просьбой подтвердить, хотят ли они покинуть страницу.

    Этот обновленный код теперь будет проверять наличие изменений в форме и текстовой области и предлагать пользователю подтвердить, хотят ли они покинуть страницу, если есть какие-либо несохраненные изменения.
    Это также позволяет пользователю отменить и покинуть страницу без каких-либо подсказок, а также добавлена ​​кнопка отправки.

    function MyPrompt() {
      const [isBlocking, setIsBlocking] = React.useState(false);
      const location = useLocation();
    
      const handleBeforeUnload = (event) => {
        if (isBlocking) {
          event.preventDefault();
          event.returnValue = "Are you sure you want to leave?";
        }
      };
    
      React.useEffect(() => {
        window.addEventListener("beforeunload", handleBeforeUnload);
    
        return () => {
          window.removeEventListener("beforeunload", handleBeforeUnload);
        };
      }, [isBlocking]);
    
      const handleFormChange = (event) => {
        if (event.target.value.length > 0) {
          setIsBlocking(true);
        } else {
          setIsBlocking(false);
        }
      };
    
      return (
        <div>
          <form onChange={handleFormChange}>
            <input type="text" placeholder="Type something here" />
            <textarea placeholder="Type something here"></textarea>
            <button type="submit">Submit</button>
            <button type="button" onClick={() => setIsBlocking(false)}>Cancel</button>
          </form>
        </div>
      );
    }
    Ответ написан
    Комментировать
  • Как отформатировать код в HTML?

    ae_ph
    @ae_ph Автор вопроса
    I'm a owl )
    Собственно на самом сайте css-tricks я и нашёл решение )
    Возможно у вас есть свои варианты, когда не используется CMS WordPress
    Ответ написан
    Комментировать
  • Замена превью ссылки в skype?

    ae_ph
    @ae_ph
    I'm a owl )
    Сайт не подключен случайно к серверу Cloudflare?
    Если да, тогда вам нужно очистить кэш там.
    Я не знаю точно о какой версии скайпа идёт речь о браузерной или десктопной.
    Но так-же вам нужно попробовать очищать кэш во встроенной версии Skype
    Ну а если это веб браузер просто сотрите cookies файлы в браузере ctrl + shift + del или F12 > Приложения > Файлы cookies.
    620d4503ac769992864348.png
    Ответ написан
  • Как реализовать видеоплеер с уменьшением длины видео (обрезка)?

    ae_ph
    @ae_ph
    I'm a owl )
    Думаю вам нужно смотреть в эту сторону: Управление видео из JavaScript.
    ссылка 1
    ссылка 2
    А если вы хотите обрезать видео прямо в браузере по таймлайну тогда тут можно на сервере использовать ffmpeg.
    Но я не совсем уверен, чего именно вы хотите добиться.
    Ответ написан
    Комментировать
  • Ошибка в консоли Google Chrome, как понять причину?

    ae_ph
    @ae_ph
    I'm a owl )
    Расширения отключите в браузере
    Ответ написан
    Комментировать
  • Как добавить на один домен несколько сайтов?

    ae_ph
    @ae_ph Автор вопроса
    I'm a owl )
    О том как это сделал я
    На основном сайте есть изображения "миниатюры" моих сайтов, они являются ссылками.
    При нажатии на ссылку открывается тот или иной сайт.
    В основной каталог сайта я положил папку my_works в неё папку 01 "в этой папке первый сайт", в папку 01 закинул файлы сайта (index.html, css "папку со стилями", js "папку со скриптами")
    На основном сайте ссылка выглядит так
    <a href="my_works/01/index.html" class="myworks">img</a>
    Ответ написан
    Комментировать
  • Как сделать раздвигающееся меню?

    ae_ph
    @ae_ph Автор вопроса
    I'm a owl )
    На JS я всё это сделал.
    Сделал фиксированную высоту в PX боксу с контентом.
    И при клике на кнопку добавляю 100% высоты и обратно сворачиваю при клике.
    Ответ написан
  • Как правильно настроить slick slider для background?

    ae_ph
    @ae_ph
    I'm a owl )
    Я думаю дело в том, что вам нужно сладеру прописать стили, что-бы он был под контентом.
    position: absolute;
    z-index: -1;
    Ответ написан
    Комментировать
  • Как отменить скролл по блоку в мобильной версии swiper slider?

    ae_ph
    @ae_ph
    I'm a owl )
    simulateTouch принимает только события мыши.
    Я думаю, что нужно попробовать следующее, это может помочь вам:

    Отключить / включить возможность перемещения ползунка, захватив его мышью или коснувшись его пальцем (на сенсорных экранах), назначив этому свойству false / true
    swiper.allowTouchMove: true,

    Если false, то единственный способ переключить слайд - использовать внешние функции API, такие как slidePrev или slideNext.
    allowTouchMove: false,

    Включение / отключение прокрутки элементов, соответствующих классу, указанному в noSwipingClass
    noSwiping: true,
    Укажите класс css элемента noSwiping
    noSwipingClass: 'swiper-no-swiping'

    Когда он включен, он не позволяет менять слайды смахиванием или кнопками навигации / разбивки на страницы во время перехода.
    preventInteractionOnTransition: true,
    Ответ написан
    Комментировать
  • Как убрать отступ?

    ae_ph
    @ae_ph
    I'm a owl )
    Вы могли-бы задать height: 100%; для class="container-fluid"
    Тогда ваш фон цвета #6000ff заполнит всё доступное простррансво.
    Дело в том, что вы футер прижали к низу.
    А с верху у вас есть часть контента, которая не доходит до самого конца.
    Если вы зададите боксу class="container-fluid" в который вы всё положили 100% высоту, тогда я думаю вы получите то, что вы хотите.
    Ответ написан
    8 комментариев
  • Как реализовать частичное накрывание 1го блока вторым при скролле?

    ae_ph
    @ae_ph
    I'm a owl )
    На JS можно сделать подобное, задавая разные стили боксам при прокрутки страницы.
    Эта статья может помочь вам ссылка.
    Ответ написан
    Комментировать
  • Плавная прокрутка к якорю средствами css?

    ae_ph
    @ae_ph
    I'm a owl )
    Вы можете воспользоваться полифилами
    Просто перейдите по этой ссылке в github репозиторий и установите его в свой проект.

    Поддержка в браузерах:
    • Изначально поддерживается в Chrome и Firefox
    • Safari 6+
    • Internet Explorer 9+
    • Microsoft Edge 12+
    • Opera Next


    Его довольно просто использовать
    let button1 = document.getElementById('button1');
    let button2 = document.getElementById('button2');
    let formaSend = document.getElementById('main-form');
    button1.addEventListener('click', smoothscroll);
    button2.addEventListener('click', smoothscroll);
    
    function smoothscroll() {
        formaSend.scrollIntoView({ behavior: 'smooth' });
    }
    Ответ написан
    Комментировать
  • Как сделать дату и время горизонтально?

    ae_ph
    @ae_ph
    I'm a owl )
    Ваша вёрстка кривая )
    У вас был горизонтальный скролл из за class="poisk" и других классов которые стояли на position: relative; и было заданно смещение, так никто не делает, только не в данном случае.
    Я её немго поправил, так-же решил вашу проблему с позиционированием..
    Дальше сами..

    Ваш код
    HTML

    <html>
    <head>
      <title>Новостное агенство</title>
      <link rel="stylesheet" type="text/css" href="styles.css">
    </head>
    <body>
      <div id="black-bar">
        <div class="fixed-container">
          Самые <a href="#">свежие новости</a> в реальном времени
          <div id="datetime">12:40 30.03.2021</div>
        </div>
      </div>
      </div>
      <div id="header">
        <div class="fixed-container">
          <img id="logo" src="img/logo.png">
        </div>
        <div class="gorod">
          <a href="#">Москва</a>
        </div>
        <div class="pogoda">
          <img id="oblokoomg" src="img/pogoda.PNG">
          <span>+22C</span>
        </div>
        <div class="poisk">
          <input type="search" name="q" placeholder="Поиск по сайту" size="35">
        </div>
      </div>
          <div class="fixed-container">
        <div class="nav">
        <nav>
          <a href="1.html">Главная</a> /
          <a href="2.html">Политика</a> /
           		<a href="3.html">Общество</a> / 
           		<a href="4.html">Экономика</a> /
           		<a href="1.html">В мире</a> /
          <a href="2.html">Проишествия</a> /
           		<a href="3.html">Спорт</a> / 
           		<a href="4.html">Наука</a> /
           		<a href="4.html">Туризм</a>
       		</nav>
       		</div>
       	</div>
      <div id="central-container">
        <div class="fixed-container">
        <div id="column-left">
          <h2>Новости дня</h2>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
        <div class="news-item">
          <div class="news-item-text">Кот Аххил предсказал поражение сброной Египта на чемпионате по футболу.</div>
          <div class="news-item-props"><a href="#">/ЧМ по футболу</a>
            <div class="new-item-time">19:00</div>
            <div class="new-comments">17</div>
          </div>
        </div>
      </div>
        <div id="column-center">
          <div class="news-center">
          <div class="politikanews"><a href="#">/ Политика</a></div>
          <div class="krimnews">В Крыму отреагировали на слова Кравчука о возврате полуострова</div>
          <div class="datakrim">19 Июня 2018</div>
          <div class="krimvremia">10:48</div></div>
        </div>
    
        <div id="column-right">
          <img src="img/banner-1.png">
          <img src="img/banner-2.png">
        </div>
      </div>
      <div class="fixed-container">
        <div id="special-news">
          er text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text ret 
        </div>
      </div>
      </div>
      </body>
    </html>



    CSS

    html, body{
      margin:0;
      padding: 0;
      min-width: 1000px;
      font-family: arial;
    }
    #header {
      margin-top: 15px;
      margin-bottom: 15px;
      height: 50px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-left: 20px;
      padding-right: 20px;
    }
    
    h2{
      font-size: 20px;
      padding: 27px 0 27px 18px;
      margin: 0 0 34px;
      border-bottom: 1px solid #e5e5e5;
    }
    
    #black-bar{
      background-color: black;
      color: white;
      padding: 20px 20px;
    }
    
    #black-bar a{
      color: white;
    }
    
    .fixed-container{
    /*   width: 960px; */
    /*   margin: 0 auto; */
    }
    
    .inline-block{
      background-color: yellow;
      padding: 10px;
      width: 70px;
      text-align: right;
      margin-bottom: 10px;
      display: inline-block;
    }
    
    #datetime{
      float: right;
    }
    
    #logo{
      position: relative;
      top: 40px;
    }
    
    .gorod{
    /*   width: 600px; */
    /*   margin: 0 auto; */
    /*   position: relative; */
      top: 10px;
      text-decoration: underline;
      	text-decoration-style: dashed;
    }
    
    .pogoda{
    /*   position: relative; */
    /*   top: -15px; */
    /*   left: 900px; */
      display: flex;
      align-items: center;
    }
    
    #oblokoomg{
      position: relative;
      top: 6px;
    }
    
    .poisk{
    /*   position: relative;
      top: -32px; */
    /*   left: 1100px; */
    }
    
    .nav{
      text-align: center;
    }
    
    #column-left{
      background-color: white;
      width: 250px;
      float: left;
    }
    
      .news-item{
        padding-left: 18px;
        margin-bottom: 27px;
        font-size: 14px;
      }
    
      .news-item-text{
        margin-bottom: 20px;
      }
    
      .news-item-props a{
        color: #91919f;
      }
    
      .news-item-props{
        font-size: 12px;
        position: relative;
      }
    
      .new-item-time{
        position: absolute;
        top: 0;
        left: 120px;
        padding-left: 15px;
        background-image: url(img/icon-time.png);
        background-repeat: no-repeat;
      }
    
      .new-comments{
        position: absolute;
        top: 0;
        left: 180px;
        padding-left: 15px;
        background-image: url(img/icon-comments.png);
        background-repeat: no-repeat;
      }
    
    #column-center{
      background-image: url(img/1_1_11.jpg);
      width: 420px;
      margin-left: 20px;
      float: left;
      height: 322px;
    
    }
    
    #column-right{
      width: 250px;
      float: right;
    }
    
    #column-right img{
      margin-bottom: 20px;
    }
    
    #central-container .fixed-container{
      overflow-y: hidden;
    }
    
    #central-container{
      padding-top: 20px;
      background-color: #f9f9f9;
      background-image: url(img/central-bg-top.png);
      background-repeat: repeat-x; 
    }
    
    #special-news{
      margin-top: 20px;
    
    }
    
    #central-container{
      margin-top: 20px;
    
    }
    
    .news-center{
      padding-left: 20px;
    
    }
    
    .politikanews{
      padding-top: 100px;
      font-size: 12px;
      position: relative;
    
    }
    
    .politikanews a{
      color: #91919f;
    
    }
    
    .krimnews{
      margin-top: 30px;
      font-family: arial;
      font-weight: 600;
      font-size: 20px;
      color: white;
      
    }
    
    .datakrim{
      margin-top: 30px;
      position: absolute;
      top: 0;
      left: 180px;
    
    
    }
    
    .krimvremia{
      position: absolute;
        top: 0;
        left: 120px;
        padding-left: 15px;
    
    }

    Ответ написан
    Комментировать
  • Как вывести 5 фотографий на страницу с помощью lightGallery?

    ae_ph
    @ae_ph
    I'm a owl )
    Думаю документация этого плагина должна помочь вам.
    Атрибуты
    6067123ba6e3a416737558.jpeg
    Ответ написан
    Комментировать
  • Почему происходит задержка применения CSS?

    ae_ph
    @ae_ph
    I'm a owl )
    iframe будут работать медленнее по тому, что для браузера есть дополнительные накладные расходы (его рендеринг, поддержка его экземпляра и ссылки на него).
    Ответ из статьи
    =====================================================
    Иван Кулаков,
    Проверьте ваш HTML документ.
    Если вы указывали в <head> JavaScript и если вы его указали раньше стилей CSS тогда возможна изначальная загрузка JavaScript а затем и CSS стилей из за чего могут быть эти баги.
    Нужно указывать сначало CSS стили а затем уже JavaScript код. Но в иделе конечно писать JavaScript перед закрывающим тегом </body>
    Также хотелось-бы добить, чтобы вы указали ваш <title>Document</title> в низу под стилями.
    6066728f7d82e434619101.jpeg

    Попробуйте написать в конце HTML документа в "скрипт с пробелом" или с комментарием.
    Примеры:
    <script type="text/javascript"> </script>
    <script type="text/javascript">//</script>


    Или за место верхнего скрипта с пробелом просто добавьте пустой JS скрипт там.
    6066681e0d4db105801708.jpeg

    Так-же попробуйте это решение описанное в css-tricks.
    Transitions только после загрузки страницы.

    Цитата из w3 org

    Различные вещи могут вызывать изменения вычислительных значений свойств элемента.
    К ним относятся: вставка и удаление элементов из дерева документа (которые изменяют, имеют ли эти элементы вычисленные значения и могут изменять стили других элементов посредством сопоставления селекторов), изменения в дереве документа (которые вызывают изменения в том, какие селекторы соответствуют элементам), изменения на таблицы стилей или атрибуты стилей и другие вещи.
    Эта спецификация не определяет, когда вычисленные значения обновляются, кроме того, что реализации не должны использовать, представлять или отображать что-либо, являющееся результатом каскадирования CSS, вычисления значений и процесса наследования.


    Также перехода можно избежать, задав стили в HTML файле вместо использования CSS, которые загружаются асинхронно.
    Ответ написан
    9 комментариев
  • Как через SVG-спрайт подключать картинки через background?

    ae_ph
    @ae_ph
    I'm a owl )
    Что-бы можно было управлять SVG из стилей, тебе нужно его прописывать либо инлайново - в HTML кидать код svg файла либо в HTML подключать SVG файл через object.
    По другому ими через css не получится управлять.

    А вставить SVG в SVG можно.
    Ответ написан
  • Как сделать резиновый svg?

    ae_ph
    @ae_ph
    I'm a owl )
    Если svg прописан в HTML как код или через object.
    Тогда пропиши в css следующее...
    svg {
    width: 100%;
    }
    Ответ написан
    Комментировать
  • Css проблема фон сайта?

    ae_ph
    @ae_ph
    I'm a owl )
    В этой строчке подключается через DNS файл css и в этом файле прописано у body { background-color: #fff }
    Как вариант можешь у себя в css написать background-color: #fff!important;5e94e13ef01cf037084910.png
    Ответ написан