我知道这是一个有很多线程的问题,但是在尝试了一些建议的答案之后,我却没有这么幸运。
我对编程并不陌生,但是对CSS和HTML还是陌生的。
当前,我正在尝试为我的个人Web应用程序创建一个基本的“登录页面”。
GitHub:https://github.com/n-winspear/cashflow-webapp
通过阅读这里的其他主题,我尝试了:
-为列,行和容器增加高度。
-更改容器类型
-使用许多不同的类(中心文本,对齐内容中心,对齐自我中心,对齐项中心)
-更改表单类型
-直接从URL而不是本地文件加载CSS
<div class="container-fluid">
<div class="form-row align-items-center">
<div class="col-sm-4 offset-sm-4">
<form class="form-signin">
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
我希望获得的表单位于网页的中间,但始终停留在顶部。
答案 0 :(得分:0)
您可以使用绝对位置技巧使div垂直居中,也可以在主体容器和VH单元上使用Flex。在这种情况下,我会选择绝对位置。
绝对:
.container-fluid {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
弹性体:
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
答案 1 :(得分:0)
我克隆了您的项目并对其进行了一些修改,并且效果很好,所以您必须做的是:
在html中添加到新样式表的链接,并在容器中添加一个ID,以便您可以识别它(以防以后要添加其他容器,则需要添加ID),因此您最终的html代码将如下所示:
<!-- Bootstrap CSS -->
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css">
<link rel="stylesheet" type"text/css" href="bootstrap/css/styles.css">
<title>Cashflow Web App</title>
</head>
<body>
<div class="container-fluid" id="main-block">
<div class="form-row align-items-center">
<div class="col-sm-4 offset-sm-4">
<form class="form-signin">
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
<!-- JavaScript -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
在style.css文件中,使用display:table和display:table-cell,只需编写以下代码:
body{
height: 100%;
}
#main-block{
height: 100%;
display: table;
}
.align-items-center{
display: table-cell;
vertical-align: middle;
}
这是我添加这些修改后的样子,希望对您有帮助。enter image description here
如果您认为不合适,请随时问其他任何问题。