@cmtz

Как сделать всплывающие окно с «ножной» на css?

Здравствуйте, подскажите, как реализовать такое окно?

6449137ccbbdf462133257.png

Интересует как сделать этот треугольник? Его параметры следующие: основание 40px, стороны по 20px, а высота 10px (красная линия на схеме).
Также у всего этого блока (треугольник + прямоугольник) есть бордер и тень.

Из того что пробовал:
1. Делать квадрат 40 на 40, поворачивать его на 45 градусов, в таком случае высота треугольника получается 20px, что мне не подходит
2. Разные непотребства с прозрачными бордерами, тоже не подходит, т.к у этого треугольника должна быть и бордер.

Также подскажите как правильно называть эту "ножку"? Уж больно глупо заголовок вопроса выглядит, но не знаю, как иначе назвать)
  • Вопрос задан
  • 183 просмотра
Решения вопроса 2
delphinpro
@delphinpro Куратор тега CSS
frontend developer
sqrt(10^2 + 20^2) = 22,36 != 20

Исходя из этого, можно взять квадрат со стороной 22 пикселя, расплющить его в ромб (transform: skew(), градус посчитать или подобрать), повернуть на 45 градусов (transform:rotate()) и абсолютом прибить в нужное место.

Кроме того, можно использовать варианты с SVG или clip-path.
Ответ написан
Stalker_RED
@Stalker_RED
1. Если вы хотите чтобы сторона этого треугольника была равна 20, то какой смысл делать квадрат со стороной 40, а не 20?
2. Гипотенуза у вас указана как 40. Но если длина боковых сторон по 20, то их сумма в точности равна длине основания, и высота треугольника будет равна нулю.
3. Если все-таки сделать боковые стороны по 20 и высоту 10, то длинна основания будет равна 34.64, а верхний угол будет равен 120 градусам. То есть квадрат не подойдет.

В общем уточните какую "ножку" вам нужно, скорее всего подойдет псевдоэлемент с transform: skew.
В худшем случае можно clip-path применить или svg маску.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы