Css градиент: Использование CSS-градиентов — CSS | MDN


26.06.2023 Facebook Twitter LinkedIn Google+ Разное


CSS-border с анимированным градиентом | xhtml.ru

Здесь речь пойдёт о применении градиентной заливки для CSS-border и её анимации для перемещения цветов градиента вдоль границ блока.

Самый очевидный способ реализации рамки с градиентом – установить какой-либо тип CSS-градиента в качестве значения CSS-свойству border-image:

div {
  border: 3em solid;
  border-image: linear-gradient(to right, green, yellow) 1;
}

See this code CSS Gradient Border on x.xhtml.ru.

Выглядит хорошо. Можно ли теперь анимировать эту рамку, чтобы градиент перемещался по краю блока?

Чтобы анимировать градиентную заливку CSS-border, нужно с помощью настраиваемого свойства (CSS-переменной) добавить градиенту угол (--angle) поворота, а для анимации изменять его значение в @keyframes.

div {
  --angle: 0deg;
  /* … */
  border-image: linear-gradient(var(--angle), green, yellow) 1;
  animation: 10s rotate linear infinite;
}
@keyframes rotate {
  to {
    --angle: 360deg;
  }
}

Используя CSS-переменную, можно заставить браузер правильно автоматически изменять её значение от 0 до 360 градусов, вместо того, чтобы добавлять отдельные ключевые кадры для каждого увеличения на 1 градус. Чтобы это работало, нужно зарегистрировать настраиваемое свойство с помощью правила @property.

@property --angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

Поскольку @property поддерживается только в Chromium, примеры ниже будут работать только в браузерах, основанных на нём. Для браузеров, которые его не поддерживают, можно добавить отдельные ключевые кадры для каждого шага, но здесь в примерах обойдёмся без усложнений.

See this code CSS Gradient Border (Animated) on x.xhtml.ru.

Хотя эффект в этом примере уже выглядит довольно красиво, если использовать более двух цветов, будут заметны конвульсии в момент перехода градиентов через углы блока. Например, такая радужная градиентная рамка:

See this code CSS Rainbow Gradient Border (Animated, Attempt 1) on x.xhtml.ru.

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

Чтобы исправить это и сделать движение плавным, сперва можно подумать об использовании радиального градиента, но на самом деле тут нужен конический градиент:

Таким образом, теперь каждый цвет градиента будет аккуратно и плавно переходить в рамку, а это приведёт к правильной плавной анимации.

div {
  /* … */
  border-image: conic-gradient(from var(--angle), red, yellow, lime, aqua, blue, magenta, red) 1;
}

Чтобы конец градиента красиво переходил в его начальный цвет, нужно в конце списка цветов повторить первый, здесь в примере это –

red.

See this code CSS Rainbow Gradient Border (Animated) on x.xhtml.ru.

Если выключить заливку фона, то можно увидеть, что border-image растягивает каждый цвет градиента перпендикулярно своему краю, вместо обозначенного для градиента конуса. С помощью различных типов CSS-градиента, как отмечено выше, можно получить разные эффекты при перемещении цвета по границе контейнера.

Animating a CSS Gradient Border.

Xamarin.Forms Кисти: линейные градиенты — Xamarin

  • Статья

Скачать пример

Класс LinearGradientBrush является производным от GradientBrush класса и рисует область линейным градиентом, который объединяет два или более цветов вдоль линии, известной как ось градиента. GradientStop объекты используются для указания цветов в градиенте и их положениях. Дополнительные сведения об объектах см. в GradientStop разделе Xamarin. Forms Brushes: Gradients.

Класс LinearGradientBrush определяет следующие свойства:

  • StartPointтипа Point, представляющий начальные двумерные координаты линейного градиента. Значение этого свойства по умолчанию — 0,0.
  • EndPointтипа Point, представляющий конечные двумерные координаты линейного градиента. Значение этого свойства по умолчанию — 1,1.

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

Класс LinearGradientBrush также в качестве IsEmpty метода, который возвращает объект bool , представляющий, назначена ли кисть объектами GradientStop .

Примечание

Линейные градиенты также можно создать с помощью linear-gradient() функции CSS.

Позиции градиента линейной градиентной кисти расположены вдоль оси градиента. Ориентация и размер оси градиента можно изменить с помощью кисти StartPoint и EndPoint свойств. С помощью этих свойств можно создавать горизонтальные, вертикальные и диагональные градиенты, обратить вспять направление градиента, сжать распределение градиента и многое другое.

Свойства StartPoint и EndPoint свойства относятся к области, нарисованной. (0,0) представляет верхний левый угол краской области, а (1,1) представляет нижний правый угол области. На следующей схеме показана ось градиента для диагональной линейной кисти градиента:

На этой схеме пунктирная линия показывает ось градиента, которая выделяет путь интерполяции градиента от начальной точки до конечной точки.

Создание горизонтального линейного градиента

Чтобы создать горизонтальный линейный градиент, создайте LinearGradientBrush объект и присвойте ей StartPoint значение (0,0) и значение EndPoint (1,0). Затем добавьте в коллекцию LinearGradientBrush.GradientStops два или более GradientStop объектов, которые указывают цвета в градиенте и их положениях.

В следующем примере XAML показана горизонтальнаяLinearGradientBrush, заданная в качестве Background значения :Frame

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
    <Frame.Background>
        <!-- StartPoint defaults to (0,0) -->
        <LinearGradientBrush EndPoint="1,0">
            <GradientStop Color="Yellow"
                          Offset="0.1" />
            <GradientStop Color="Green"
                          Offset="1.0" />
        </LinearGradientBrush>
    </Frame.Background>
</Frame>  

В этом примере фон рисуется с LinearGradientBrush помощью интерполяции от желтого Frame до зеленого по горизонтали:

Создание вертикального линейного градиента

Чтобы создать вертикальный линейный градиент, создайте LinearGradientBrush объект и присвойте ей

StartPoint значение (0,0) и значение EndPoint (0,1). Затем добавьте в коллекцию LinearGradientBrush.GradientStops два или более GradientStop объектов, которые указывают цвета в градиенте и их положениях.

В следующем примере XAML показана вертикальная, LinearGradientBrush заданная в качестве Background значения:Frame

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
    <Frame.Background>
        <!-- StartPoint defaults to (0,0) -->    
        <LinearGradientBrush EndPoint="0,1">
            <GradientStop Color="Yellow"
                          Offset="0.1" />
            <GradientStop Color="Green"
                          Offset="1.0" />
        </LinearGradientBrush>
    </Frame.Background>
</Frame>

В этом примере фон Frame рисуется с LinearGradientBrush помощью интерполяции от желтого до зеленого по вертикали:

Создание диагонального линейного градиента

Чтобы создать диагональный линейный градиент, создайте LinearGradientBrush объект и присвойте StartPoint ей значение (0,0) и значение EndPoint (1,1). Затем добавьте в коллекцию LinearGradientBrush.GradientStops два или более GradientStop объектов, которые указывают цвета в градиенте и их положениях.

В следующем примере XAML показана диагоналиLinearGradientBrush, заданная в качестве Background значения :Frame

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
    <Frame.Background>
        <!-- StartPoint defaults to (0,0)      
             Endpoint defaults to (1,1) -->
        <LinearGradientBrush>
            <GradientStop Color="Yellow"
                          Offset="0.1" />
            <GradientStop Color="Green"
                          Offset="1.0" />
        </LinearGradientBrush>
    </Frame.Background>
</Frame>

В этом примере фон рисуется с LinearGradientBrush помощью интерполяции от желтого Frame к зеленому диагонали:

  • BrushesDemos (пример)
  • Xamarin. Forms Кисти: градиенты

зеленый градиент CSS | SheCodes

Больше зеленых CSS-градиентов

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Код CSS Перейти в полноэкранный режим

Могу ли я отправить по электронной почте… linear-gradient()

Могу ли я отправить по электронной почте… linear-gradient()

Gmail

Настольная веб-почта

2021-12

iOS

2021-12

Андроид

2021-12

Мобильная веб-почта

2021-12

Перспектива

Окна

2007 г.

1

2010

1

2013

1

2016

1

2019

1

Почта Windows

2021-12

Outlook.com

2021-12

iOS

2.51.1

4.2148.2

Андроид

4.2147.4

Яху! Почта

Настольная веб-почта

2021-12

iOS

2021-12

Андроид

2021-12

АОЛ

Настольная веб-почта

2021-12

iOS

2021-12

Андроид

2021-12

Мозилла Тандерберд

macOS

91.4.1

ПротонПочта

Настольная веб-почта

2021-12

iOS

2021-12

Андроид

2021-12

Быстрая почта

Настольная веб-почта

2021-12

ПРИВЕТ

Настольная веб-почта

2021-12

Апельсин

Настольная веб-почта

2021-12

iOS

2021-12

Андроид

2021-12

LaPoste.

Comments