Я пытался часами, но не могу найти решение, моя проблема:
Я пытаюсь создать страницу входа в систему, где форма входа расположена горизонтально и вертикально по центру страницы. Я работаю с syncfusion blazor и создал полноэкранный контейнер:
HTML:
<div class="control-section" style="min-height: 100vh !important; background-color: red !important;">
</div>
CSS:
body, html {
margin: 0 !important;
padding: 0 !important;
}
.container {
max-width: 100% !important;
width: 100% !important;
height: 100% !important;
padding-right: 0px !important;
padding-left: 0px !important;
}
.pb-3 {
padding-bottom: 0rem !important;
}
Это работает, и контейнер устанавливается на полную ширину и высоту без каких-либо полос прокрутки.
Однако я пытаюсь создать на этой странице один столбец, который вертикально и горизонтально центрирован в центре страницы.
Примечание. Я хочу, чтобы фон контейнера был красным, потому что я хочу отображать там полноэкранное изображение после завершения столбца/формы входа. Поэтому я не могу использовать строки, я думаю?
Что я пробовал до сих пор:
<div class="control-section" style="min-height: 100vh !important; background-color: red !important;">
<div class="col-xs-12 col-sm-2 offset-5" style="background-color: blue !important;">Test</div>
</div>
Это создало столбец шириной 2 и смещением 5, поэтому он центрирован по горизонтали, однако я не могу центрировать или вертикально. Может ли кто-нибудь помочь мне с этим?
ОБНОВЛЕНИЕ после ответа
Я использовал код ответа centerArea и поместил форму в свою строку:
.HTML:
<div class="control-section centerArea">
<div class="col-xs-12 col-sm-2" style="background-color: blue !important;">
<section>
<form id="account" method="post">
<hr />
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group" style="margin-top: 150px !important;">
<label asp-for="Input.Email"></label>
<input asp-for="Input.Email" class="form-control" />
<span asp-validation-for="Input.Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.Password"></label>
<input asp-for="Input.Password" class="form-control" />
<span asp-validation-for="Input.Password" class="text-danger"></span>
</div>
<div class="form-group">
<div class="checkbox d-inline-block">
<label asp-for="Input.RememberMe">
<input asp-for="Input.RememberMe" />
@Html.DisplayNameFor(m => m.Input.RememberMe)
</label>
</div>
<div class="d-inline-block">
<a id="forgot-password" asp-page="./ForgotPassword">Password?</a>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Log in</button>
</div>
<div class="form-group">
<p>
<a id="forgot-password" asp-page="./ForgotPassword">Password?</a>
</p>
<p>
<a asp-page="./Register" asp-route-returnUrl="@Model.ReturnUrl">Register as a new user</a>
</p>
<p>
<a id="resend-confirmation" asp-page="./ResendEmailConfirmation">Resend email confirmation</a>
</p>
</div>
</form>
</section>
</div>
</div>
.CSS:
<style>
body, html {
margin: 0 !important;
padding: 0 !important;
}
.container {
max-width: 100% !important;
width: 100% !important;
height: 100% !important;
padding-right: 0px !important;
padding-left: 0px !important;
}
.pb-3 {
padding-bottom: 0rem !important;
}
.centerArea {
min-height: 100vh !important;
background-color: red !important;
color: white;
display: flex;
justify-content: center;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
.form-group {
display: block !important;
margin: 0 auto !important;
max-width: 90% !important;
margin-bottom: 1% !important;
}
.d-inline-block {
display: inline-block !important;
}
</style>
Это выводит следующее:
Как вы видите, контент расположен по центру по горизонтали, но не по вертикали? Я пытаюсь сделать что-то вроде этого:
заранее спасибо
.control-section
гибким контейнером может быть полезно. - person ths   schedule 01.07.2020