Как создать объединение двух фигур в css и применить тени к окончательной форме? - PullRequest
3 голосов
/ 13 января 2020

Я в основном дизайнер, но я делаю макетный html документ, используя некоторые основы c html и css, чтобы продемонстрировать реализуемость моего дизайна. Ниже приведена пользовательская форма, которую я разработал на фиг.

My design on Figma

Теперь я едва знаком с html или css, но, занимаясь рудиментарным поиском, я был возможность создать форму, которую я хотел в css. Ниже приведены фрагменты кода html и css, которые я использовал для реализации результата, показанного на изображении под кодом.

/* Html Part */
<body>
    <div id="topLabel">
        <div id="topLabelRectangle"></div>
        <div id="topLabelCircle"></div>
    </div>
</body>

/*CSS Part*/
#topLabelRectangle {
position: absolute;
left: 0%;
right: 0%;
top: 0%;
bottom: 90%;

background: #FFFFFF;
border-radius: 0px 0px 50px 50px;
//box-shadow: 0px 10px 10px rgba(112, 112, 112, 0.25);
}

#topLabelCircle {
position: absolute;
left: 47%;
right: 47%;
top: 4.5%;
bottom: 83%;
background: #FFFFFF;

//box-shadow: 0px 10px 10px rgba(112, 112, 112, 0.25);
border-radius: 250px;
}

Результат, полученный из кода выше (без тени) свойство)

The result I got from the code above (without the dropshadow property)

Теперь, когда я попытался добавить свойство тени, оно выглядело так, как показано ниже (что не является ожидаемым результатом, которого я ожидал)

Результат, который я получил с тенями, примененными отдельно

Result I obtained with shadows applied separately

Чтобы решить эту проблему, я попытался сделать следующее:

  1. Я удалил свойство тени из отдельных элементов.
  2. Добавлено свойство для родительского элемента обоих элементов, как показано ниже
   #topLabel {
       box-shadow: 0px 10px 10px rgba(112, 112, 112, 0.25);
   }

Когда я это сделал, свойство shadow не было применено ни к одному элементу и выглядело как один до того, как тень была добавлена.

Полагаю, мое отсутствие знаний по предмету является причиной моей неспособности найти решение для этого с помощью Google. Пожалуйста, направьте меня в этом вопросе.

1 Ответ

1 голос
/ 13 января 2020

Итак, я нашел решение своей проблемы, просто изменив свой круг на полукруг и поместив его точно на краю моего прямоугольника. Полукруг был создан путем изменения свойства радиуса границы, как показано ниже:

#topLabelRectangle {
  position: absolute;
  left: 0%;
  right: 0%;
  top: 0%;
  bottom: 92.5%;

  background: #FFFFFF;
  border-radius: 0px 0px 25px 25px;
  box-shadow: 0px 10px 10px rgba(112, 112, 112, 0.25);
}

#topLabelCircle {
  position: absolute;
  left: 46.2%;
  right: 46.2%;
  top: 7.5%;
  bottom: 84%;
  background: #FFFFFF;

  box-shadow: 0px 10px 10px rgba(112, 112, 112, 0.25);
  border-radius: 0px 0px 300px 300px;
}

Вот результат, который я получил: Solution Result

Но все же, что я Это был дизайнерский jugaad, но я хотел бы знать, есть ли техническая возможность получить тот же результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...