#html #css
Вопрос:
Хорошо, итак, я застрял на задаче переднего плана, в частности, на компоненте карты предварительного просмотра статистики.
Я пытаюсь взять текст, который находится в статистике div-div, и переместить его ниже h2, которые я дал различным классам.
это моя текущая настройка.
и это мой код.
body {
background-color: hsl(233, 47%, 7%);
}
.card {
background-color: hsl(244, 38%, 16%);
border-radius: 7px;
border-style: hidden;
height: 30vh;
margin: 100px 75px 75px 75px;
}
h1 {
color: white;
font-family: lexend deca;
margin: 100px 0 0 50px;
}
.insights {
color: hsl(277, 64%, 61%);
}
p {
color: hsla(0, 0%, 100%, 0.75);
font-family: inter;
font-size: 13px;
line-height: 175%;
margin: 25px 0 0 50px;
text-align: left;
width: 40%;
}
.right-image {
float: right;
height: 100%;
margin: 0;
object-fit: cover;
width: 42%;
}
.stats-div {
display: flex;
margin: 25px 0 0 50px;
}
.companies-number, .templates-number, .queries-number {
margin: 0;
width: 10%;
clear: both;
color: white;
font-family: lexend deca;
flex: 1;
}
.stats {
margin: 0;
}
<body>
<div class="card">
<img src="images/image-header-desktop.jpg" alt="girls interacting with technology gleefully" class="right-image">
<h1>Get <span class="insights">insights</span> that help your business grow.</h1>
<p> Discover the benefits of data analytics and make better decisions regarding revenue, customer
experience, and overall efficiency.</p>
<div class="stats-div">
<h2 class="companies-number">
10k </h2>
<p class="stats">companies</p>
<h2 class="templates-number">314</h2>
<p class="stats">templates</p>
<h2 class="queries-number">12m </h2>
<p class="stats">queries</p>
</div>
<div class="attribution">
Challenge by <a href="https://www.frontendmentor.io?ref=challenge" target="_blank">Frontend Mentor</a>.
Coded by <a href="#">Your Name Here</a>.
</div>
</div>
</body>
вот как должна выглядеть карта:
Меня особенно интересует, правильно ли используется мой код. Я очень новичок в css (отсюда и задача начального уровня).
Комментарии:
1. Пожалуйста, отредактируйте сообщение и включите соответствующий HTML-код.
2. извини за это! код добавлен в!
Ответ №1:
Вы могли бы завернуть каждую пару h2
и p.stats
в прилагаемый div
.card {
background-color: hsl(244, 38%, 16%);
border-radius: 7px;
padding: 25px;
}
.stats-div {
display: flex;
color: white;
}
.stats-div-item {
flex: 1 1 calc(100%/3);
}
<div class="card">
<div class="stats-div">
<div class="stats-div-item">
<h2>10k </h2>
<p>companies</p>
</div>
<div class="stats-div-item">
<h2>314</h2>
<p>templates</p>
</div>
<div class="stats-div-item">
<h2>12m </h2>
<p>queries</p>
</div>
</div>
</div>
С дополнительным div на месте другой способ сделать это-использовать css-сетку.
.card {
background-color: hsl(244, 38%, 16%);
border-radius: 7px;
padding: 25px;
color: white;
}
.stats-div {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
<div class="card">
<div class="stats-div">
<div>
<h2>10k </h2>
<p>companies</p>
</div>
<div>
<h2>314</h2>
<p>templates</p>
</div>
<div>
<h2>12m </h2>
<p>queries</p>
</div>
</div>
</div>
Кроме того, это может быть возможно без изменения исходного html с помощью столбцов css.
.stats-div {
columns: 3;
}
.stats-div>h2 {
margin-top: 0
}
<div class="stats-div">
<h2>10k </h2>
<p>companies</p>
<h2>314</h2>
<p>templates</p>
<h2>12m </h2>
<p>queries</p>
</div>
Комментарии:
1. Спасибо! Я ломал голову, думая, что это проблема css, когда мне просто нужно было, чтобы дивы были отделены и позволили им соответствовать стилю по умолчанию.