У меня есть компонент React, который разделен на 3 части и содержит 3 разных значения данных: дату, название и сумму. Макет выглядит хорошо и выровнен, но когда я добавляю значение в первый раздел (красный), он настраивает мой CSS очень странным образом, и я не могу понять, почему. Первое изображение показывает сам компонент, второе изображение показывает компонент с содержимым HTML внутри него.
Расход.js
<div className="expense">
<div className="date">
<h6>DEMO!</h6>
</div>
<div className="title">
</div>
<div className="amount">
</div>
Расход.css
.expense {
border: 1px darkslategrey solid;
height: 100px;
display: flow-root;
}
.date {
display: inline-block;
background-color: darkred;
width: 20%;
height: 100%;
}
.title {
display: inline-block;
background-color: darkorange;
width: 60%;
height: 100%;
}
.amount {
display: inline-block;
background-color: darkgreen;
width: 20%;
height: 100%;
}
Вы имеете в виду "неожиданно"?
Добавьте vertical-align: top
к трем компонентам (inline-block). Значение по умолчанию для этого — baseline
, это то, что вы видите на втором изображении.
На самом деле вам не нужно добавлять его три раза, но вы можете сделать это так:
.expense > div {
vertical-align: top;
}
Полный код (преобразованный в обычный HTML/CSS):
.expense {
border: 1px darkslategrey solid;
height: 100px;
display: flow-root;
}
.expense>div {
vertical-align: top;
}
.date {
display: inline-block;
background-color: darkred;
width: 20%;
height: 100%;
}
.title {
display: inline-block;
background-color: darkorange;
width: 60%;
height: 100%;
}
.amount {
display: inline-block;
background-color: darkgreen;
width: 20%;
height: 100%;
}
<div class="expense">
<div class="date">
<h6>DEMO!</h6>
</div><div class="title">
</div><div class="amount">
</div>
</div>
Проверяли ли вы в своих браузерах инструменты разработчика, чтобы увидеть, кто/где устанавливает поля в h6?