Прежде чем погрузиться в CSS, сначала правильно структурируйте свой HTML.Вы спрашиваете о родительских элементах, и это делается с помощью упаковки элементов с открывающими / закрывающими тегами:
HTML:
<div id="message_container">
<div id="message_content">message</div>
</div>
CSS:
С вашим собственным HTML, вы работаете над стилем:
#message_container {
/* to position it at bottom-left (dependent on the parent) */
position: absolute;
bottom: 2em;
left: 2em;
/* to position the contents within the box (ie the message text) */
display: flex;
justify-content: center;
align-items: center;
/* to style the message box in particular ways */
padding: 2em;
border-radius: 40px;
box-shadow: 4px 4px 20px rgba(0,0,0,0.3);
width: 100%;
max-width: 200px;
}
Отзывчивая оптимизация:
После того, как ваша структура (HTML) и стиль (CSS)Твердые, то вы можете думать об отзывчивости.Для этого вам нужно изучить правила CSS @media, чтобы изменить свойства стиля рамки в соответствии с некоторыми условиями (например, шириной экрана).Все это субъективно, так что вы должны сами пробовать и вносить ошибки, чтобы очистить макет на разных размерах экрана.
Например:
/* for screens smaller than 320px width */
@media (max-width: 320px) {
/* make the message slimmer, and center it */
#message_container {
padding: 0.5em;
padding-top: 1em;
padding-bottom: 1em;
left: 50%;
transform: translate(-50%,0);
}
/* make the message text smaller */
#message_content {
font-size: 0.9em;
}
}
Управление коробкой:
Если вы хотите, чтобы это поле появлялось и исчезало в соответствии с различными событиями (например, через 2 секунды после полной загрузки страницы или когда пользователь щелкает что-то в другом месте), вы будете использоватьJavascript.Для этого есть множество учебных пособий.
Это общий процесс.
Codepen
#message_container {
/* to position it at bottom-left (dependent on the parent) */
position: absolute;
bottom: 2em;
left: 2em;
/* to position the contents within the box (ie the message text) */
display: flex;
justify-content: center;
align-items: center;
/* to style the message box in particular ways */
padding: 2em;
border-radius: 40px;
box-shadow: 4px 4px 20px rgba(0,0,0,0.3);
width: 100%;
max-width: 200px;
}
@media (max-width: 320px) {
#message_container {
padding: 0.5em;
padding-top: 1em;
padding-bottom: 1em;
left: 50%;
transform: translate(-50%,0);
}
#message_content {
font-size: 0.9em;
}
}
<div id="message_container">
<div id="message_content">message</div>
</div>