Ответы пользователя по тегу CSS
  • Как перенести нижний блок вверх в потоке?

    @g33km
    Все это обернуть в контейнер, которому дать
    .container { 
    display: flex;
    flex-direction: column;
    }

    Затем на необходимом разрешении экрана присвоить:
    .main { 
    order: 1; 
    }
    Ответ написан
    1 комментарий
  • Как сделать обтекание текста и прижать текст и картинку к низу?

    @g33km
    <div class="text-block">
      <div class="title">
        <div class="name">Тут прикольный заголовок который надо сместить вниз или нету eshkersad sadsad sadasd asdsadsad sadsadsad sadsad asdsad asdsadsad</div>
      </div>
      <div class="price">Тут уже совсем другой блок</div>
    </div>

    * {
      box-sizing: border-box;
    }
    
    .text-block {
      max-width: 300px;
    }
    
    .name {
      margin-bottom: 8px;
      font-size: 16px;
      line-height: 24px;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: #515151;
    }
    
    .name::after {
      content: "";
      display: inline-block;
      float: right;
      width: 50px;
      height: 20px;
      margin: 5px 0 0 5px;
      background: red;
      cursor: pointer;
    }
    
    .price {
      font-size: 16px;
      font-weight: 500;
      color: #515151;
    }

    В .name::after необходимо будет убрать красный background и вставить фоновым изображением стрелочку, а также настроить размеры самого блока под размеры кнопки.
    Result
    5ee8ad3392f19689336622.png

    Один вопрос: что значит "текст должен быть прижат к низу"?
    Ответ написан
  • Как выровнять 2 элемента: один по центру, второй сбоку?

    @g33km
    Либо с помощью добавления псевдоэлемента
    Ответ написан
    Комментировать
  • Как сделать space-between выравнивание для нечетного количества элементов?

    @g33km
    Как вариант, немного переписать код
    .card {
    justify-content: flex-start;
    }
    
    .card__item:nth-child(3n-1) {
      margin: 60px 10.589% 0 10.5%;
    }


    Не знаю, на сколько грамотно так делать, но суть такова, что блоки будут распределяться по родительскому контейнеру не за счет justify-content, а за счет того, что каждый центральный блок каждой строки будет толкать блоки слева и справа от себя. Значения margin подгоняются вручную, исходя из размеров самих блоков и контейнера-родителя.
    Ответ написан
  • Как сделать такое расположение блоков на flex?

    @g33km
    Один из вариантов: Codepen
    объявляем переменную высоты внутренних блоков (ибо величина динамическая)
    :root {
    --block-height: 50px;
    }

    Обертке добавляем свойство
    height: calc(var(--block-height) * 3 + 12px));

    Теперь высота блока-обертки будет подстраиваться под высоту блоков внутри с учетом их margin-ов (у вас указано для всех блоков margin:2px всего верхних и нижних отступов получается 6, сами блоки - 50px высотой, три блока в колонке, отсюда суммарная высота блока будет 50px*3 + 2px*6=162px)

    А дальше (если это возможно через js или другими способами) меняем значение css-переменной --block-height на необходимое значение, таким образом управляем высотой внутренних блоков.
    Ответ написан
  • Как сделать ширину меньше?

    @g33km
    Один из вариантов - высчитать вручную наибольшую ширину в px/% и задать для класса
    .chatContainer {
    max-width: значение;
    }


    Где "значение" - высчитанное значение максимальной ширины (например, 80% - тогда блок с отправкой сообщения будет занимать 80% от ширины родителя)
    Ответ написан
    Комментировать
  • Почему срабатывает только первая анимация?

    @g33km
    quote_animation не работает по причине того, что вы не указали ему относительное позиционирование
    position: relative;
    По этой причине блок никуда не сдвигается

    Затем, присутствует большая ошибка - вы несколько раз переназначили
    @keyframes quote_animation
    @keyframes quote_animation {
                    0% { left: -200px; }
                    100% { left: 200px; }
                 }      
                 @keyframes quote_animation {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
        
    }
    @keyframes quote_animation {
        0% { top: 0px; }
        100% { top: -360px; }
    }


    Как я понял, вы хотели, чтобы вначале надпись сдвигалась влево-вправо, затем проворачивалась на 360 градусов и после этого поднималась на 360px (либо все это должно происходить одновременно). Так вот все эти действия должны быть внутри одного @keyframes, в данном случае анимация будет выполнять только по заданным ниже всех правилам, то есть
    @keyframes quote_animation {
        0% { top: 0px; }
        100% { top: -360px; }
    }


    Опять-таки, ничего не происходит по причине того, что вы не задали относительное позиционирование.

    Кейфрейм img_animation вообще ни к одному объекту не применяется, поэтому ничего не происходит.

    У вас достаточно плохо написан код, начиная от неаккуратности, заканчивая ошибками непосредственно в коде. К примеру, в свойствах, применяемых к селектору #frame, не поставлена точка с запятой после
    height:600px

    Думаю, если покопаться в коде глубже, там найдется еще много чего нехорошего.
    Успехов!
    Ответ написан
    Комментировать
  • Почему flexbox nowrap не работает?

    @g33km
    Так ведь вы свойством "nowrap" задали им, что переноситься они не будут.
    Чтобы блоки занимали всю ширину родителя и переносились на новую строку, необходимо родителю дать
    flex-wrap: wrap;
    А детям
    flex-basis: 100%;
    Ответ написан
    Комментировать
  • Возможно ли в CSS сделать такое обтекание?

    @g33km
    Это самое обычное обтекание, здесь даже не нужны указанные в первом ответе свойства "shape-outside" и т.д.
    5eb1626fe4e84268365807.png

    Поэтому конструкция HTML у вас должна быть примерно следующая
    <p>Текст текст текст <img src="" alt="Солнце"> текст текст текст</p>

    Тегу img даете CSS-свойство float: right;
    Ответ написан
    Комментировать