Я пытаюсь выровнять 1 из 2 предметов над другим при использовании flex. У меня есть .section, который отображает: flex - .main-body, который определяет ширину контейнера, а затем .logo & .content в этом. Я не уверен, где я все испортил, но я пытаюсь выровнять .logo по .content (или смайлик в моем примере ниже). Используя display: flex в .section, я смог отцентрировать контейнер (.main-body) и сохранить для всех элементов этого контейнера заданную ширину, однако, когда я пытаюсь выровнять .logo вправо, используя justify -content или любое другое свойство flex, нет никаких изменений в позиции логотипа.
Я нашел решение сделать смену с помощью «margin-left: XXXpx;» на .logo, но это толкает контейнер div .logo, чтобы я затем получил горизонтальную прокрутку.
РЕДАКТИРОВАТЬ: Извините, я думаю, я не очень ясно (уже поздно!). Фрагмент кода ниже в полноэкранном режиме показывает цель и то, что я собираюсь сделать, не используя .logo {margin-left: 500px;}
для достижения результата. Без свойства margin-left грань выравнивается по левому краю над текстом. По сути, мне интересно, как я могу настроить это так, чтобы он был выровнен по правому краю над текстом, используя flex.
<!DOCTYPE html>
<head>
<style>
* {
margin: 0;
padding: 0;
}
.container {
background: white fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
width: 100%;
height: 100vh;
}
.section {
height: 100vh;
width:100%;
display: flex;
justify-content: center;
align-items: center;
}
.main-body {
width: 736px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
.logo {
background: url('https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTx0S56P8lrzrjb-7aJX3QG_feOPux89cnLLXF_UJ49tHAys99ccw') no-repeat;
height: 205px;
width: 240px;
display: flex;
justify-content: right;
align-self: flex-end;
}
.content {
font-size: 45px;
margin-bottom: 20px;
}
.lorem {
font-size: 18px;
}
</style>
</head>
<body>
<div class="container">
<div class="section">
<div class="main-body">
<div class="logo"></div>
<div class="content">
<h1>Right Align Smiley</h1>
</div>
<div class="lorem">
<p>"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo."</p>
</div>
</div>
</div>
</body>
</html>
Я создал этот пример в codepen, чтобы показать структуру и то, что я пытаюсь выполнить, но без необходимости полагаться на «margin-left» в .logo. Как мне это сделать, используя flex?