Ответы пользователя по тегу HTML
  • Как так же обрезать круг в svg?

    @strelok011
    Посмотрите сюда
    Ответ написан
    Комментировать
  • Почему Хром игнорирует viewport?

    @strelok011
    указывайте initial-scale
    <meta name="viewport" content="width=device-width, initial-scale=1">


    А еще - видно, что у вас вьюпорт отрабатывает правильно, иначе у вас вся страница была бы отображена на экране и очень мелко.
    Вам нужно либо скорректировать вьюпорт с нужным масштабированием (это зло, управлять оч тяжело), либо делать корректный адаптив - для ширины от 340 до 600 (к примеру) - указываете размер шрифта и картинки отличный от десктопа.
    Нужна ручная работа, на автомате - играть с процентом масштабирования (если сработает, если честно, я таким извратом не баловался)
    Ответ написан
  • Почему блокируется отправка формы авторизации и редирект в Iframe?

    @strelok011
    Вы не сможете обойти блокировку из-за настроек параметров CORS (Cross-Origin Resource Sharing). Настраивается это на стороне серверов.
    Есть сайты, специально настроенные для обеспечения такого доступа, обычно это какие-либо виджеты для сайтов.
    Мечты "открыть на любом сайте форму любого другого сайта" запрещены (к счастью) во всех современных браузерах, иначе воровство денег и персональных данных ничем бы не сдерживалось.
    https://developer.mozilla.org/ru/docs/Web/HTTP/CORS
    Ответ написан
    Комментировать
  • Анимация градиента внутри SVG?

    @strelok011
    Анимацию атрибутов внутри SVG можно реализовывать отдельным тегом Animate

    Пример анимации цвета
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 
       viewBox="10 10 24 24">
        <defs>
            <linearGradient id="linear-gradient" x1="0" y1="0" x2="100%" y2="0" >
                <stop offset="0" stop-color="red">
                   <animate attributeName="stop-color" values="yellow;red" dur="2s" repeatCount="indefinite"  /> 
                </stop>
                <stop offset="1" stop-color="yellow">
                    <animate attributeName="stop-color" values="red;yellow" dur="2s" repeatCount="indefinite"  /> 
                </stop>
            </linearGradient>
        </defs>
    <path fill="url(#linear-gradient)" d="M20,31 C15.4189994,27.2225585 12.5023327,24.2225585 11.25,22 C10.2743515,20.6156479 10,19.6181623 10,18.1428571 C10,15.5113854 12.4883456,13 15,13 C17.3176009,13 18.9621484,13.8491346 20,15.5714286 C21.0382977,13.8491346 22.6828452,13 25,13 C27.5116544,13 30,15.5113854 30,18.1428571 C30,19.6181623 29.7256485,20.6156479 28.75,22 C27.497816,24.2225585 24.5811493,27.2225585 20,31 Z" />
    </svg>


    Пример анимации офсета
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 
       viewBox="10 10 24 24">
        <defs>
            <linearGradient id="linear-gradient" x1="-100%" y1="0" x2="200%" y2="0" >
                <stop offset="0" stop-color="red">
                   <animate attributeName="offset" values="0;0.2;0.5" dur="2s" repeatCount="indefinite"  /> 
                </stop>
                <stop offset="0.5" stop-color="yellow">
                    <animate attributeName="offset" values="0.5;0.7;0.8;1" dur="2s" repeatCount="indefinite"  /> 
                </stop>
            </linearGradient>
        </defs>
    <path fill="url(#linear-gradient)" d="M20,31 C15.4189994,27.2225585 12.5023327,24.2225585 11.25,22 C10.2743515,20.6156479 10,19.6181623 10,18.1428571 C10,15.5113854 12.4883456,13 15,13 C17.3176009,13 18.9621484,13.8491346 20,15.5714286 C21.0382977,13.8491346 22.6828452,13 25,13 C27.5116544,13 30,15.5113854 30,18.1428571 C30,19.6181623 29.7256485,20.6156479 28.75,22 C27.497816,24.2225585 24.5811493,27.2225585 20,31 Z" />
    </svg>
    Ответ написан
    Комментировать
  • Как отключить загрузку изображения браузером при определенном размере экрана?

    @strelok011
    1. Для картинок есть такой тег как picture
    Позволяет подгружать нужное изображение в зависимости от размера окна, подгружать различные форматы изображений, на случай если какой-то не поддерживается.
    2. Что запрещает завернуть в медиа-запрос оба условия?

    @media screen and (max-width: 767px) {   
        .img{
        	background-image: url(http://...);
        } 
    }
    
    @media screen and (min-width: 768px) {      
        .img{      
        	background-image: url(http://...);
        } 
    }
    Ответ написан
    Комментировать
  • Как сделать задний фон картинки прозрачным html?

    @strelok011
    Фотошоп надо освоить. Просто ластиком потереть в jpg оригинале не поможет.

    https://youtu.be/awz-RjRF6E4
    Ответ написан
    Комментировать
  • Почему transition работает только в одну сторону?

    @strelok011
    Пишете небольшой js для получения высоты своей страницы (ну или элемента, на котором должен проявляться эффект) после загрузки, добавляете инициализацию этого же кода на resize (мало ли как контент себя поведет), используете это значение для анимации.
    Если высота не известна - никакие транзишны и анимашки корректно работать не будут. Всякие аккордеоны, прокрутки и т.п. требуют заранее известной высоты для корректной работы. Браузер ее, к сожалению "на автомате" не подсовывает.
    Решение не привожу, в интернете можно найти. Но общий смысл действий описал.
    Ответ написан
    Комментировать
  • Как правильно верстать фигурные блоки?

    @strelok011
    Думаю, вам помогут clip и mask.
    Работает и просто в css и с помощью svg
    Генератор css clip
    Обрезка и маска svg
    Ну и в инете по этим словам найти уроки и примеры не составит труда
    Ответ написан
    Комментировать
  • Как сделать таб чтоб width:100% уменшалась в зависимости от margin?

    @strelok011
    Если у Вас не флекс-верстка, то:
    1. С увеличением padding абсолютная длина будет что??
    2. Тот же эффект - это какой?

    Если у Вас есть блочный контейнер (div, p, h, которые по умолчанию имеют состояние display: block), то они занимают всю доступную ширину, им указывать 100% не обязательно.
    Если Вы хотите зафиксировать ширину блока и добавить ему паддинг, то для сохранения значения ширины добавляют атрибут box-sizing: border-box, т.к. значение по умолчанию content-box
    Если вы хотите задействовать margin - можно использовать вычисляемую ширину
    width: calc(100% - 20px)
    где margin в сумме должен быть равен 20px. При этом обязательна именно такая расстановка пробелов. Внутри скобок между значениями и арифметическим знаком.

    Чтобы меньше путаться - гуглите информацию про блочные и строчные элементы.
    Ответ написан
    Комментировать
  • Почему height:100% не срабатывает в safari?

    @strelok011
    Это обычная проблема для мобильных браузеров, связанная с динамическим изменением высоты вьюпорта браузера при скролле, когда на экране появляются дополнительные панели управления с кнопками.
    Есть лайфхак с использованием вместо процентов vh, добавлением js на ресайз окна и переопределением стандартного значения в vh в css-переменную, ссылко
    Тут больше вопрос к дизайну мобильного вида страницы, и как она должна выглядеть в зоопарке мобильных устройств (новомодные узкие мобилы, старые ведроиды, планшеты)
    Если дизайнер слабо разбирается в этом - будет ад для верстальщика с поддержкой кучи промежуточных разрешений в css со сменой размеров шрифтов, отступов и т.п.
    Ответ написан
  • Что делать, если не загружается css на телефоне?

    @strelok011
    больше похоже на то что путь из html к css неверный.
    Ответ написан
    Комментировать
  • Можно ли задать отступы блоку относительно его заголовка?

    @strelok011
    Дам немного развернутый ответ, почему это не возможно.
    Прежде всего - почему стили именно каскадные? Каскад - это цепочка зависимостей, определяющих, на что данный стиль повлияет.
    Пример:
    a {color: "red"}
    h1 a {color: "green"}
    h1+a {color: "yellow"}

    первый стиль говорит - "все теги А будут красного цвета"
    второй стиль уточняет - "а теги А, лежащие в теге H1 будет зелеными"
    третий стиль добавляет еще правило "теги А, находящиеся СРАЗУ ПОСЛЕ тега H1 будут желтыми"
    При этом чем больше уточняющих узлов (на самом деле есть еще нюансы, но это отдельный разговор) в каскаде стиля, тем он будет более весомый.
    Уточняющие стили будут перекрывать значение первого общего стиля.
    Как же работает браузер?
    К примеру есть такой стиль
    div h1 span a {color: "blue"}
    Это каскад, говорящий что тэг А, находящийся во вложенной структуре вида div>h1>span>a и только такой будет синего цвета.
    Так вот браузер начинает разбирать такой стиль начиная с правого! края. Соответственно он в начале собирает коллекцию всех тегов А и потом начинает отсеивать не подпадающие под описание в стиле варианты. Сначала оставит только те тэги, которые вложены в тег SPAN, затем по цепочке пройдет до самого начал.
    Этот алгоритм парсинга и сообщает, что нельзя прописывать условие для элемента опираясь на его вложение.
    Можно написать стиль для элементов, которые идут следом за каким-либо определенным.
    h1~p {color: "orange"}
    раскрасит текст во всех тегах p, идущих следом после h1 (причем могут идти не подряд) но только в рамках общего родительского контейнера.
    Ответ написан
  • Как можно изменить высоту полосу прокрутки с помощью CSS?

    @strelok011
    Системный скроллбар изменить не получится, это за пределами области документа.
    Разные браузеры могут предоставлять урезанные и не совпадающие по изменяемым свойствам вендорные хаки.
    Для полного управления внешним видом скроллба можно использовать решения, опирающиеся на атрибуты overflow для body и контейнеров в html + js для позиционирования своего сверстанного бегунка с произвольными параметрами.
    Если есть желание всё это использовать - есть готовые решения типа https://grsmto.github.io/simplebar/
    Но нужно иметь в виду, что такое решение может сломаться в каких-либо непредвиденных разработчиками условиях, в отличие от системного скролла.
    Вердикт - полное извращение )
    Ответ написан
    Комментировать
  • Что производительнее css + html или картинка PNG?

    @strelok011
    Лучший вариант был бы не канвас а svg
    Ответ написан
    Комментировать
  • Возможно ли реализовать непрерывающуюся карусель с блоками на CSS?

    @strelok011
    чтобы сделать инфинит скролл необходимо получить дубль содержания по ширине страницы или больше в начале и в конце.
    Тогда всё сработает, разницы нет, картинка это или верстка. На приведенном примере специально пример показан и объясняется принцип. Странно что здесь это надо уточнять.
    Без js не получится динамически выпиливать блоки в начале и добавлять их в хвост.
    Без верстки, которая тянет блоки в каком-то процентном соотношении от ширины экрана - та же беда, рано или поздно найдется ширина, когда заложенного дубля не будет хватать (не говоря о контенте вообще)
    Ответ написан
    Комментировать
  • Почему блок накладывается на другой блок?

    @strelok011
    Хм. Прежде чем строить сетку на флексе, стоит удавить всевозможные position: absolute в brand...
    position: absolute выключает из потока ваш блок, соответственно у контейнера вокруг такого блока нет информации о размере, то бишь он и становится внутри флекса высотой 0, флекс начинает заполнять вторым контейнером всё доступное пространство.

    Рекомендую почитать про поток html, про верстку на флексе, про grow и shrink
    Ответ написан
    2 комментария
  • Что за странный баг с width?

    @strelok011
    есть как минимум три предположения:
    1. на странице отсутствует <DOCTYPE html>
    2. на странице подключается дополнительно стилевой файл или в хидер монтируется пачка стилей, в которых у инпута есть отступы
    3. возможно в фиддле влияет внешний файл со сбросом стилей.
    Возможно поможет инструкция box-sizing: border-box;
    Ответ написан
  • Почему не отображается png без live server?

    @strelok011
    Немного дополню предыдущего комментатора:
    1. если ссылка начинается с "/" - это значит "начать с корня сайта (или диска). например ссылка вида /images/image.png будет искаться либо по адресу site.ru/images/image.png, а локально - относительно того раздела на винте (c:/images/image.png), где находится файл html. При этом не будет браться в расчет путь к каталогу, где находится html. Ссылка получится "абсолютной".
    2. если ссылка будет без дроби вначале вида "images/image.png" - путь к изображению будет строиться от места нахождения файла html. Например: файл лежит в каталоге "c:/work/site/index.html", тогда рядом с ним должен находиться каталог images с картинкой, и браузер будет открывать картинку по следующему пути: "c:/work/site/images/image.png".
    Ссылка без дроби вначале сработает аналогично "./images..."
    точка с дробью принудительно указывает на текущий каталог, в котором лежит файл html. Ссылка получится "относительной" (т.е. будет строиться относительно местонахождения html файла)

    live в редакторе позволяет имитировать работу на сайте и подставляет корневой каталог от местонахождения файла html. Если будет более сложная структура - и live может не помочь, если будете так ссылки выстраивать. Для локальной верстки используйте только относительные ссылки. При необходимости обратиться в соседний по уровню вложенности каталог ссылка может начинаться с "../", что укажет браузеру необходимость подняться на один уровень вложенности выше.
    Ответ написан
    1 комментарий
  • Как с помощью flex расставить так блоки?

    @strelok011
    Если вы хотите сверстать макет на рисунке именно на флексах - изолируйте каждую смену направления в отдельный контейнер (пусть будет div).

    На флексах можно это представить в виде 4 последовательных div, в последнем еще два div для вертикальной ориентации.

    вот пример
    Ответ написан
    Комментировать
  • Почему device toolbar в инспекторе кода работает неправильно?

    @strelok011
    возможно, в теге HTML нужно добавить этот медиа-запрос.
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover">
    Ответ написан