Как показать эллипс внизу div

Я хочу иметь что-то вроде эллипса внизу div, но я хочу, чтобы он реагировал. У меня следующий код:

.home-title {
  background-color: #ba173a;
  position: relative;
  width: 100%;
  text-align: center;
}

.home-title:before { 
  content: "";
  position: absolute;
  bottom: -95px;
  left: 33%;
  margin-left: -939px;
  height: 500px;
  width: 2050px;
  border-radius: 100%;
  border: 100px solid #fff;

}

.g-font-weight-600{
  font-weight: 600;
}

.g-pa-70{
  padding: 70px;
}

.g-color-white{
  color: white;
}
<div class = "home-title">
  <h2 class = "g-font-weight-600 g-pa-70 g-color-white">
    This is some dummy text<br />This is more dummy text
  </h2>
</div>

Проблема в этом фрагменте заключается в том, что мне всегда нужно менять width на .home-title:before, чтобы все было правильно.

Любая идея, как я могу всегда иметь эллипс внизу div, независимо от размера экрана.

Вот рабочий пример.

ОБНОВИТЬ

Мне нужен такой эффект в углах div

Как показать эллипс внизу divКак показать эллипс внизу div

И не тот эффект:

Как показать эллипс внизу divКак показать эллипс внизу div

Каковы точные характеристики? По определению, возможно бесконечное количество эллипсов. Должно ли быть определенное соотношение? Приложить <h2> (и как)? Пожалуйста, будьте конкретны. Мое первоначальное предположение было бы таким: используйте изображение с адаптивной шириной, но я не уверен, что это именно тот тип ответов, который вам нужен.

SteeveDroz 14.01.2019 08:23

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

Thanveer Shah 14.01.2019 08:34

@ThanveerShah Нет. Проверь скрипку.

Boky 14.01.2019 08:36
Многоточие - это три точки, которые используются для отображения следующего текста .... Эллипс - это кривая
mplungjan 14.01.2019 08:37

Итак, вы хотите, чтобы эта маленькая форма была видна на каждом устройстве?

Thanveer Shah 14.01.2019 08:37

@ThanveerShah Проверьте скрипку и попробуйте изменить ее размер, и вы увидите, что эффект эллипса выглядит не очень хорошо.

Boky 14.01.2019 08:43

Понял, я могу это исправить

Thanveer Shah 14.01.2019 08:44

Проверьте мой ответ и дайте мне знать

Thanveer Shah 14.01.2019 08:50
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
8
493
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

  1. имеет border-radius, установленный на 100%. Это приводит к тому, что кривизна адаптируется к границе блока псевдоэлемента (что бы это ни было)
  2. установите ширину псевдоэлемента на 100%
  3. установите фиксированное значение высоты, при этом небольшая высота создает псевдоэлемент с «прямоугольной границей». Это создаст область, в которой будет определяться эллипс / изогнутая форма по нижнему краю родительского элемента.
  4. вертикальное смещение псевдоэлемента от нижнего края родительского элемента на половину высоты псевдоэлемента. Это приводит к тому, что нижняя половина псевдоэлемента становится видимой, чтобы создать иллюзию изогнутого нижнего края на родительском элементе.
  5. раскрасьте фоновый цвет псевдоэлементов в соответствии с цветом родительского элемента:

.home-title {
  background-color: #ba173a;
  position: relative;
  width: 100%;
  text-align: center;
}

.home-title:before { 
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display:block;
        
  /* Color of curve to match parent background color */
  background:#ba173a;  

  /* Causes the curve/radius to adaptively resize based on parent width */
  border-radius: 100%;       

  /* Causes curve to expand adaptively to parent width */
  width: 100%;

  /* Set fixed height to twice that of curve depth */
  height: 100px;

  /* Offset ellipse to create illusion of curve */
  bottom:-50px;

}

.g-font-weight-600{
  font-weight: 600;
}

.g-pa-70{
  padding: 70px;
}

.g-color-white{
  color: white;
}
<div class = "home-title">
  <h2 class = "g-font-weight-600 g-pa-70 g-color-white">
    This is some dummy text<br />This is more dummy text
  </h2>
</div>

Обновлять

Чтобы добиться «острых» углов (как показано в обновленном вопросе) в сочетании с отзывчивым изогнутым «нижним краем», вы можете изменить свой код следующим образом:

.home-title {
  overflow: hidden;
  /* Add padding to bottom to allow depth of curve to be visible */
  padding-bottom: 50px;
}

/* Style nested div */
.home-title>div { 
  background-color: #ba173a;
  position: relative;
  width: 100%;
  text-align: center;
}

.home-title>div:before {
  content: "";
  position: absolute;
  bottom: 0;

  /* Offset the ellipse left-ward by some amount */
  left: -10%;

  /* Set width percentage to exceed the parent width, plus twice the offset amount */
  width: 120%;

  border-radius: 100%;
  background: #ba173a;
  display: block;
  height: 100px;
  bottom: -50px;
}

.g-font-weight-600 {
  font-weight: 600;
}

.g-pa-70 {
  padding: 70px;
}

.g-color-white {
  color: white;
}
<div class = "home-title">
  <div> <!-- UPDATE: Add nested element -->
    <h2 class = "g-font-weight-600 g-pa-70 g-color-white">
      This is some dummy text<br />This is more dummy text
    </h2>
  </div>
</div>

https://jsfiddle.net/8Lm932jv/

Спасибо за ответ, но это не многоточие, это круг.

Boky 14.01.2019 08:23

@Boky извините за это - на моем конце, кажется, отображаются эллипсы. Возможно, я неправильно понял ваш вопрос?

Dacre Denny 14.01.2019 08:32

Я обновил свой вопрос.

Boky 14.01.2019 08:35

@Boky, это помогает? jsfiddle.net/Lat3q21h

Dacre Denny 14.01.2019 08:43

Это именно то, что я хочу.

Boky 14.01.2019 08:52

@Boky cool - рад, что смог помочь. Я тоже только что обновил ответ :)

Dacre Denny 14.01.2019 08:53

Сработал бы это и на вас, @Boky?

Yom T. 14.01.2019 08:55

Это то, что вы имели ввиду?

.home-title {
  background-color: #ba173a;
  position: relative;
  width: 100%;
  text-align: center;
  
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 50%;
  border-bottom-left-radius: 50%;
}


/*
.home-title:before { 
  content: "";
  position: absolute;
  bottom: -95px;
  left: 33%;
  margin-left: -939px;
  height: 500px;
  width: 2050px;
  border-radius: 100%;
  border: 100px solid #fff;
}
*/

.g-font-weight-600 {
  font-weight: 600;
}

.g-pa-70 {
  padding: 70px;
}

.g-color-white {
  color: white;
}
<div class = "home-title">
  <h2 class = "g-font-weight-600 g-pa-70 g-color-white">
    This is some dummy text<br />This is more dummy text
  </h2>
</div>

Спасибо за ответ, но я не этого хочу. Я сказал это в обновленном вопросе.

Boky 14.01.2019 08:57

Ладно, хорошо. Хотя, честно говоря, я не вижу разницы между моей версией и принятым ответом? За исключением того, что принятый использует отдельный псевдоэлемент для придания эллиптического вида. В любом случае, рад, что вы нашли ответ.

Yom T. 14.01.2019 09:04

Проверьте первый ответ @Dacre (он похож на ваш), а затем проверьте обновленный.

Boky 14.01.2019 09:09

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

Yom T. 14.01.2019 09:12

Другие вопросы по теме