Задать вопрос
  • Как создать фотогалерею с неявной сеткой в CSS?

    @HelWorld Автор вопроса
    Пишу своё решение на данный вопрос. Всё, что требуется в данном случае - создать несколько дополнительных колонок, размер у которых будет равен расстоянию от края картинки в одной из 2-х строк до края картинки в другой строке. При этом горизонтальный скролл убирается с помощью overflow, чтобы с помощью js была возможность позже пролистывать элементы, нажимая на кнопки.

    Код на CSS (решение с помощью grid):

    .slider1__content {
    	display: grid;
    	grid-template-columns: 321px 149px 220px 101px 369px 321px 99px auto;
    	grid-template-rows: repeat(2, 300px);
    	overflow: scroll;
    	overflow-x: hidden;
    }
    .slider1__img {
    	max-width: 470px;
    	width: 100%;
    	height: 300px;
    	object-fit: cover;
    }
    .slider1__img:first-child {
    	grid-column: 1 / 3;
    }
    .slider1__img:nth-child(2) {
    	grid-column: 3 / 5;
    }
    .slider1__img:nth-child(3) {
    	grid-column: 5 / 6;
    }
    .slider1__img:nth-child(4) {
    	grid-column: 6 / 8;
    }
    .slider1__img:nth-child(5) {
    	grid-column: span 1;
    }
    .slider1__img:nth-child(6) {
    	grid-column: 1 / 2;
    }
    .slider1__img:nth-child(7) {
    	grid-column: 2 / 4;
    }
    .slider1__img:nth-child(8) {
    	grid-column: 4 / 6;
    }
    .slider1__img:nth-child(9) {
    	grid-column: 6 / 7;
    }
    .slider1__img:last-child {
    	grid-column: span 2;
    }
    Ответ написан
    Комментировать
  • Как сделать такую сетку?

    @iiiajlyn
    (づ ◕‿◕ )づ
    https://doka.guide/css/grid-template-areas/?ysclid...

    Можно построить свою сетку и по этой сетке разложить блоки, и при адаптиве менять раскладку блоков если нужно
    grid-template-areas - строим сетку
    grid-template-columns - определяем ширину колонок
    grid-template-rows - высоту блоков
    gap - отступы

    А так вообще макет сделан корректно тут сетка из 8 колонок
    2 блока имеют 3 колонки в ширину и 1 блок 2 колонки в ширину
    можно сделать 2 класса W-3 и W-2 им прописать ширину и просто добавлять нужный класс к нужному блоку
    ширина 1 колонки в процентах 12,5%
    Ответ написан
  • Как выровнять поля в таблице по максимально длинному?

    altlisek
    @altlisek
    вечный студент
    Похоже, у Вас каждая строка является отдельной таблицей. Насколько знаю, тег table должен быть только один. Например, как здесь
    Ответ написан
    Комментировать
  • Как такие вещи верстаются?

    Используем clip-path и много-много CSS-переменных

    Ответ написан
    Комментировать
  • -webkit-overflow-scrolling: touch в iOS и потеря скролла?

    zerxx
    @zerxx
    В итоге никак это не победить.
    Выход: отказаться от flex в контейнере со скроллом. Я у себя в js сделал проверку на ios с добавлением специального класса контейнеру, и в нем прописал отдельные стили под ios.
    Ответ написан
    Комментировать
  • Как правильно сделать выход объекта за пределы грид?

    @RomanKudlatov
    в таком случае можно сделать трюк типо
    .image-wrap-selector {
        margin-right: calc( (100vw  -  min( 100vw , var(--container-width) ) ) / -2 )
    }

    ну и для img
    .image-wrap-selector img {
        width: 100%;
    }

    вроде как то так.
    если ошибся надеюсь мысль уловите
    Ответ написан
    Комментировать
  • Как сделать плавное появление скрытых под display: none; карточек по клику на кнопку, при подключеной AOS?

    @VegasChickiChicki
    Песочница не рабочая.

    Если объяснять проблему, то суть в том, что браузер видя display: none, который потом, я полагаю, меняется на display: block(допустим), показывает его без анимации. Если вы добавили что-то вроде opacity: 0 -> opacity: 1, анимации все равно не будет, потому что браузер сначала применит opacity, потом display. Браузер пытается запихнуть все изменения свойств стилей как бы в одну пачку операций.

    Решение: сначала делаем display, потом, в следующей операции применяем стили анимации.

    Как сделать применение стилей анимации в следующей операции? Один из способов - setTimeout(callback, 0);
    Ответ написан
    Комментировать
  • Как перенести незакоммиченные изменения в другую ветку?

    @iMaximus
    Сохранить изменения в Stash, а потом загружать этот Stash в какую угодно ветку. Всегда так делаю если путаю ветки или по каким то причинам не хочу в данный момент делать коммит.
    Ответ написан
    1 комментарий
  • Как перенести незакоммиченные изменения в другую ветку?

    @IgorNoskov
    Не делая коммит переходите в нужную ветку, изменения никуда не денутся, закоммитите их в нужной ветке.

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

    Update2
    Посмотрите видео https://learn.javascript.ru/screencast/git#branche... там всё подробно рассказано о данной ситуации. Советую посмотреть все видео из данного скринкаста.
    Ответ написан
    1 комментарий
  • Что такое эндпоинт простыми словами?

    @dvpingvin
    Если бы мы пытались находить понятия в родном языке, а не заимствовали без перевода и понимания иностранные, то IT было бы менее загадочной областью. Замените слово "endpoint" в тексте на "адресат" (означает лицо или организацию, которым адресовано почтовое отправление) и всё встанет на свои места.
    В контексте безопасности можно использовать "абонент".
    "Адресат" и "абонент" близкие по смыслу слова.

    UPD. Получив пару одобрительных комментариев решил дополнить ответ.
    "Endpoint" дословно перводистя как "конечная точка". Можно представить это как два конца верёвки. У верёвки нет главного конца и вторичного. В компьютерных сетях есть схожее понятие Socket ("розетка") это пара IP-адрес и порт, которым предназначен пакет. Но там не рессматривают взаимодействие выше 3 уровня моделя OSI.
    Если у нас есть две системы, которые должны общаться друг с другом, помимо IP-адреса и порта нам нужно знать ещё и протокол, по которому будет происходить взаимодействие. Когда просят указать Endpoint, то обычно требуется эта информация.
    Endpoint может выглядеть как строка вида ://:. Наример:
    TCP://MYSYSTEM.Adventure-works.MyDomain.com:7022
    TCP://MYSYSTEM.Adventure-works.MyDomain.com:7033
    TCP://10.193.9.134:7023
    TCP://[2001:4898:23:1002:20f:1fff:feff:b3a3]:7022

    В контексте анивирусной защиты под Endpoint понимают любое конечное защищаемое устройство: компьютер, смартфон, ноутбук, сервер и т.д.
    Провайдеры подразумевают под Endpoint конечного абонента, которому нужно провести кабель. Это может быть как квартира в жилом доме, так и здание предприятия.
    Ответ написан
    2 комментария
  • Что такое эндпоинт простыми словами?

    @kalapanga
    Встречаются немного различные интерпретации этого понятия. Например такая. Каждый api-сервис имеет endpoint, к которому и нужно обращаться, например отправлять http-запрос. Обычно это url. Т.о. endpoint - это url. Или такая. url включает в себя маршрут (основная часть адреса сервиса) и endpoint (часть url, которая содержит например имя вызываемого метода). Существует один маршрут и у него несколько эндпоинтов. Т.о. здесь endpoint - это только часть url.
    Ответ написан
    Комментировать
  • Как поставить на паузу Вконтакте видео при листании слайдера?

    @Lenkaaa
    Подключить скрипт
    <script src="https://vk.com/js/api/videoplayer.js"></script>

    в src iframe обязательно добавить &js_api=1
    <iframe src="https://vk.com/video_ext.php?oid=-22822305&id=456241864&hd=2&js_api=1" width="853" height="480" allow="autoplay; encrypted-media; fullscreen; picture-in-picture;" frameborder="0" allowfullscreen ></iframe>

    const player = VK.VideoPlayer(document.querySelector('#id iframe'));
    player.pause();

    Документация vk https://dev.vk.com/ru/widgets/video#%D0%A1%D0%BE%D...
    Ответ написан
    Комментировать
  • Как получить число посетителей страниц сайта за все время существования метрики?

    @Ig318
    import requests
    
    class YandexAPIClient:
        def __init__(self, api_key):
            self.header = {'Authorization': f'OAuth {api_key}'}
            self.base_url = "https://api-metrika.yandex.ru/stat/v1/data"
    
        # Запрос для выборки по просмотру страниц
        def fetch_page_views(self, start_date, end_date):
            params = {
                'date1': start_date.strftime('%Y-%m-%d'),
                'date2': end_date.strftime('%Y-%m-%d'),
                'id': id,
                'metrics': 'ym:s:visits, ym:s:users, ym:s:bounceRate, ym:s:pageDepth, ym:s:avgVisitDurationSeconds',
                'dimensions': 'ym:s:startURL',
                'filters': "ym:s:isRobot=='No'",
                'limit': 100000
            }
            response = requests.get(self.base_url, params=params, headers=self.header)
            response.raise_for_status()
            return response.json()


    Вот код, которым пользуюсь я
    Ссылка на документацию: Тык
    Ответ написан
    Комментировать
  • Как сбросить автопрокрутку у Swiper при переключении таба?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Можно использовать метод slideTo, но он ломает autoplay, поэтому можно сделать следующее:
    отключить autoplay - скролл до 1-го слайда - включить autoplay


    navList[i].addEventListener("click", (evt) => {
        let currentLink = tabContainer.querySelector(
          ".slidersTab__tab-label.current"
        );
        let currentTab = tabContainer.querySelector(
          ".slidersTab__slidersItem.current"
        );
        //добавить 4 строчки -- start 
        let currentSlider = tabList[i].querySelector('.slidersTab__slider-body').swiper;
        currentSlider.autoplay.stop();
        currentSlider.slideTo(0, 0, false);
        currentSlider.autoplay.start();
        //-- end
        currentLink.classList.remove("current");
        navList[i].classList.add("current");
    
        currentTab.classList.remove("current");
        tabList[i].classList.add("current");    
    });


    Ответ написан
    1 комментарий
  • Как сделать метку ссылкой на другую страницу на Яндекс.Картах?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Вам не нужно использовать балун вообще.

    var marker = new ymaps.Placemark(
    	//координаты
    	{
    		...
    	},
    	{
    		hasBalloon: false,
    		href: 'http://google.ru/'
    		...
    	}
    );
    marker.events.add('click', function (e) {
    	location = e.get('target').options.get('href');
    });
    Ответ написан
    5 комментариев
  • В чем может быть проблема с просмотром сайта не смартфоне?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего файл стилей закэширован. Для принудительной загрузки нового файла стилей добавьте после имени файла ?ver=2 или любой другой гет параметр. При каждой новой версии значение надо менять.
    Ответ написан
    Комментировать
  • Как скрыть controls под poster?

    nuykon
    @nuykon
    Full Stack Developer
    Сначала ставим тег video без атрибута controls
    <video class="video" poster="poster.jpg" preload>
      <source src="video.mp4">
    </video>

    по клику на видео запускаем проигрывание и устанавливаем controls = true
    на чистом js, без jQuery
    document.addEventListener("DOMContentLoaded", function(){ // аля $(document).ready
      let videos = document.getElementsByClassName('video'); // получаем все видосы с класосм
      videos = [].slice.call(videos); // преобразуем в массив
      videos.forEach(function(item) { // перебираем массив и навешиваем обработчики
        let media = item;
        media.onclick = function () {
          media.play(); // запускаем проигрывание
          media.controls = true; // добавляем контролы
        };
        media.addEventListener('ended', function() {
          media.controls = false; // видео просмотрено, убираем контролы
        });
      });
    });


    https://yandex.ru/search/?text=html5%20media%20api...
    Ответ написан
    1 комментарий
  • Почему callback для intersectionObserver запускается сразу?

    @steklovatnik
    я сейчас промучался некоторое количество времени, не понимая, почему observer моментально выводит картинки, а не при скролле.
    Оказалось, что так как картинки еще не загружены, они "схлопывались" не имея высоты в самом верху страницы, который, естественно, попадал в видимую часть.
    После этого они сразу и загружались)))
    Надеюсь это сообщение сэкономит кому-нибудь время и нервы/
    Ответ написан
    Комментировать