Ответы пользователя по тегу CSS
  • Угловая рамка. Как сделать чтобы небольшая рамка была только по углам div-а?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Еще вот такой вариант: https://jsfiddle.net/pghypd8t/
    Ответ написан
    Комментировать
  • Flexbox почему появляется горизонтальная прокрутка?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Картинки должны иметь max-width: 100%, и height: auto. Иначе картинка железно забирает свои размеры по дефолту, а флекс элементы растягиваются из-за контента! Второй момент, Вы написали flex: 1; это grow или shrink? Свойство может не сработает, так как и тот и другой варианты записываются фракциями, целыми числами, надо написать либо полное свойство флекс, включая basis, grow, shrink, либо отдельно flex-grow: 1.
    Ответ написан
    Комментировать
  • Как повлиять на соседний селектор?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Никак, следующий элемент можно достать с помощью + или ~, а вот предыдущий никак, только js)
    $('.item').on('mouseover', function(){
    $(this).prev('logo').css({
    color: red;
    //.... и так далее.
    };)
    }
    Ответ написан
    Комментировать
  • Почему не срабатывает соседний селектор?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Ответ уже дан, просто объясню, селектор + действует только на следующий элемент после данного, самый ближайший, а тильда ~ выбирает любой следующий элемент, но не предыдущий.
    Ответ написан
    1 комментарий
  • Как убрать вертикальный скролл внутри div?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    https://jsfiddle.net/dimovich85/5dczum12/
    Вверху способ как просто от скролла избавится, а внизу, как убрать полосу прокрутки, но скролл оставить: https://jsfiddle.net/dimovich85/g474qm2d/

    div::-webkit-scrollbar{
    	width: 0;
    }

    Вариант три: https://nicescroll.areaaperta.com/
    Плагин для стилизации скроллбара, там его так застилизовать, чтоб вообще пропал)
    Ответ написан
    Комментировать
  • Как центрировать по высоте элементы в шапке?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    display: flex;
    flex-direction: column;
    jastify-content: center;
    далее только маржины между элементами задать равномерно, иначе будет перекос, или все эти элементы загнать в еще контейнер и отцентровать только этот контейнер просто задав родителю display: flex, а контейнеру margin: auto.
    Ответ написан
  • Почему padding-bottom: 100% делает из блока квадрат?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Паддинг если задавать в процентах, он берется от ширины родителя, вот и выходит, что высота равна ширине, и как бы квадрат, но после паддинга можно ж и контент вставить, который его растянет вниз, и квадрата не будет.
    Ответ написан
  • Как задать значение тегам, которые стоят перед определенным тегом?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Насколько я помню, то css не дает такой возможности, как ни странно, зато js поможет)
    https://stackoverflow.com/questions/1817792/is-the...
    Ссылка выше подтверждает.
    На jQ можно так: $(selector).prev(). Причем метод .prev(selector) тоже принимает селектор, так что можно и на два три элемента назад из ряда добраться.
    Ответ написан
  • Как сделать перемещение блока при скроллинге?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    $(window).on('scroll',  (e)  => {
       $('.block_i_want_to_move').offset({
             top: e.target.scrollTop,
             left: e.target.scrollLeft
        });
    });

    Подробнее вот тут можно прочитать: http://jquery.page2page.ru/index.php5/Позиция_элемента

    Там есть еще нюансы, связанные со знаком, куда двигать блок, то есть задавать можно -scrollTop, тогда в другую сторону будет двигаться блок; суть в том, что просто на отслеживание скролла вешаете функцию, которая нужный объект двигает, можно брать н не offset, а animate, можно css менять, можно translate использовать, класс задавать, я с телефона не смог посмотреть на сайте фифа как выглядит эффект, видимо на мобильных они это отключили. По заголовку вопроса ответил вроде как раз. Зачем плагины?
    Ответ написан
    Комментировать
  • Как создать простой горизонатльный скроллинг контента в блоке?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    https://www.sitepoint.com/10-jquery-horizontal-scr...
    Посмотрите, кажется есть:)
    Ответ написан
    Комментировать
  • Важно ли использовать сетку для верстки?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Можно обойтись, но с сеткой быстрее и проще, ведь в сетке вся прелесть, что она уже имеет все медиа запросы, плюс в сетке учтены межколоночный интервал и паддинги по краям. Сами посудите, если в каждом проекте надо писать ширину, межколоночник, паддинги по бокам, бордер-бокс, а потом тучу медиа запросов, не рациональнее это все сохранить себе в библиотеку, чтоб потом много раз использовать? Вот, и по сути такая библиотека и есть сетка) Советую вот этот канал, там очень много про это: https://youtu.be/mVxkR50XL_E
    И да сетка нужна там, где нужна сетка, везде ее пихать нет смысла, например пункты меню ставить по сетке не имеет смысла.
    Ответ написан
    Комментировать
  • Резиновый background?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    О! Я над таким мучался, долго... Придумал такую структуру:
    1. Блоку с текстом задал ширину по сетке, как в макете. Задал максимальный маржин слева, чтоб блок был всегда справа. Слева остается пустота.
    2. Блоку с текстом задал position relative.
    3. Создал псевдоэлемент ::before{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    right: -100%;
    background: transparent url(img/bg.png) no-repeat top;
    background-size: cover;
    }
    Псевдоэлемент растянут по высоте на высоту родителя, вынесен влево полностью на 100% от родителя, то есть из родителя на всю катушку, далее просто задал картинку фоном, и там только позиционировать ее надо будет, а может и не надо, еще поиграться свойствами background-size, и все. Иногда бывали такие моменты, что на пару пикселей края не совпадали, это из-за бордеров может быть или маржины/паддинги какие-то, инспектором смотрите и потом двигаете псевдоблок но не через top/left... а margin-top +/-, margin-left+/- на величину этого самого бордера или маржина.
    Ответ написан
    Комментировать
  • Cоздать фигуру на CSS?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Почему бы не нарисовать это в svg? потом перевести все это в base64, вот онлайн конвертер: b64.io/, и вставить в css фоном в куда надо, хоть в псевдоэлемент? Может гуру подскажут, как нарисовать все это, но мне кажется, что без картинки тут не обойтись..
    Ответ написан
  • Почему не работает transition для background-image?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Не работает и работает не будет! Надо понимать, что такое переход из состояния в состояние, а что такое дискретность. Дело в том, что есть состояния, которые плавно перетекают, а есть только такое или такое. Например, ребенок растет плавно, вот ребенку один год, вот прошло два месяца и уже год и 2 месяца, как ни странно, а вот ему уже 43, а есть (сейчас не будем про хирургию) дискретное состояние ребенка или человека, это девочка или мальчик, человек либо родился такого пола, либо другого, нет переходного состояния, как в случае с возрастом. Зачем это понимать и знать? Потому что transition отработает только для свойств, которые переходные, но не дискретные. Например, есть ширина 0 пкс, добавим 1 пкс и ширина уже 1пкс, добавим еще 20 - 20пкс, такое свойство можно анимировать. Есть прозрачность 0, а есть 0.1, а есть 0.2, 0.5, 1 - тоже можно. Но, есть display: block, а есть display: none, это дискретные состояния, либо есть, либо нет, анимации не будет, зато можно блок показать/скрыть с помощью анимации на его ширину, высоту, прозрачность... Цвет, как ни странно это тоже величина, которая имеет переходные состояния, например в препроцессорах можно написать #ccc + #eee и получить новый цвет, так как цвета задаются, по сути, просто числом, и увеличивая/уменьшая число получаем анимацию. А какой переход между двумя картинками? Никакого, только такая картинка или такая, поэтому, чтобы сделать плавную анимацию надо пробовать, разве что, прозрачность блока с фоновым изображением.
    Ответ написан
    8 комментариев
  • Как сделать картинку в картинке?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Обе картинки сделать позишеном друг на друга, поиграться z-index. Заднюю картинку повернуть transform: rotate(45deg); или на другой градус. Верхней картинке задать ширину, высоту, border: 20px solid #fff; border-radius: 10px; все числа беру с потолка, надо подгонять, и далее этому div, который рамка background-color: transparent.
    По идее все.
    Ответ написан
    Комментировать
  • Чекбокс (radio) - как менять картинку в зависимости от выбран/не выбран?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    <input type="radio" checked name="dva" id="dva1"/>
    <label for="dva1"><img src="/upload/s1p1.png" class="notChecked"><img src="/upload/s1p2.png" class="ifChecked"></label>
    <style>
    
    input:checked + label img.ifChecked{
      display: block;
    }
    
    input:checked + label img.notChecked{
      display: none;
    }
    
    input + label img.ifChecked{
      display: none;
    }
    
    input + label img.notChecked{
      display: block;
    }
    
    
    </style>


    https://jsfiddle.net/z8b5cune/
    Ответ написан
    2 комментария
  • Две сетки с разным количеством колонок, как быть?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Насчет сетки, могу предложить вот такой инструмент: https://www.npmjs.com/package/smart-grid
    Видео о том, как с ней работать можно посмотреть вот тут:https://www.youtube.com/watch?v=KFVoIzaGPYg&list=P...
    Эту сетку можно сгенерировать под любое кол-во колонок и с любыми межколоночниками. Настройки для генерации сетки задаются в smart-grid.js, а сама генерация происходит через Node.js. Можно задать сначала сетку на 15 колонок и межколоночник в столько-то пикселей, сохранить препроцессорный файл на выходе просто переименовав его, а потом поменять настройки под сетку на 12 колонок, только задать разные префиксы для примесей.
    Сам пользуюсь, и рекомендую. Для кроссбраузерности можно использовать для построения сетки не флексы, а инлайнблоки, а для межколоночника указать значения в процентах. Можно и по деолту все оставить, и сетку на флексах сделать, так как они уже хорошо работают.

    2. Если я правильно понял суть дела, то можно задать флекс-контейнеру flex-direction: column, чтобы они по вертикали строились flex-wrap:wrap, чтобы переносились на новую вертикальную ось, далее надо задать высоту родителю, чтобы блоки переносились на новый ряд, поиграться с justify-content, align-content, align-items, а тем блокам, которые надо вынести вправо задать два самых больших ордера и задать им базис по приблизительно 50% (кальк 50%-20рх).
    Ответ написан
    4 комментария
  • Как сверстать углубление как на картинке?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Можно в фотошопе сделать белый прямоугольник с вот таким вырезом, вырез сделать прозрачным и вставить в верстку. Прямоугольник можно вырезать небольшим квадратом, чтобы браузер не грузил белый фон на всю ширину блока.
    Ответ написан
    7 комментариев
  • Как ширину элемента сделать с зависимостью от размеров элементов внутри него?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Если родителю задать display: flex, то все элементы -потомки будут иметь ширину по контенту, и встанут в ряд. Если надо чтобы они выстроились вертикально, то родителю еще добавить стоит flex-direction: column;
    UPD: prntscr.com/hrcg70
    Добавить элементу display: table-cell; :)
    Ответ написан
    Комментировать
  • Бэм и Препроцессоры?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Первый вариант вернет .checkout_bank .chexkout-img, то есть вложенный селектор, если Вы хотите получить такой селектор .checkout_bank-img (с модификатором), то правильно вот так:
    .checkout {
    &_bank{
    &-img
    }
    }
    Ответ написан
    Комментировать