我有几个要素,我试图将它们组合在一起,然后将它们放在页面上,如下所示:
|
|
Username: |
________________ | IMG 1
Password: |
________________ | IMG 2
login |
|
|
我不希望用户名和密码居中,我仍然希望那些位于输入框的最左侧。
现在它看起来像这样:
|
Username IM|G 2
|
_______________ | IMG 1
_______________ Pass|word:
|
login |
|
|
我已经获得了IMG 1,登录按钮和垂直线在一个好位置,但表格到处都是。我尝试过玩很多不同的东西来获得其他登录表单和IMG 2在正确的位置,但我被卡住了。这是我的html文件的基本布局:
<div id="center-wrapper">
<div id="img1">
<img src="img1.png" />
</div>
<br>
<div id="img2">
<img src="img2.png" />
</div>
<div id="line"></div>
<form id="form-wrapper" action="/login/" method="post" style="width:40%;">
{% csrf_token %}
{% for field in form %}
<br>
{% if field.errors %}
<div class="form-group has-error">
<label class="col-sm-2 control-label" for="id_{{ field.name }}">
{{ field.label }}</label>
<div class="col-sm-10">
{{ field|attr:"class:form-control" }}
<span class="help-block">
{% for error in field.errors %}{{ error }}{% endfor %}
</span>
</div>
</div>
{% else %}
<div class="form-group">
<label class="col-sm-2 control-label" for="id_{{ field.name }}">{{ field.label }}</label>
<div class="col-sm-10">
{{ field|attr:"class:form-control" }}
{% if field.help_text %}
<p class="help-block"><small>{{ field.help_text }}</small></p>
{% endif %}
</div>
</div>
{% endif %}
<br>
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<br>
<button type="submit" class="btn btn-primary" value="Log In">{% trans "Log In" %}</button><br>
<br>Don't have an account? <a href="/signup/">Sign Up</a>
</div>
</div>
</form>
</div>
我的按钮位于我的表单中,所以我不确定为什么一个正确居中,而其余表单则没有。此外,<br>
并未将IMG 2置于IMG 1之下。我的CSS就是这样:
#center-wrapper {
text-align: center;
margin: auto;
width: 60%;
height: 100%;
}
#form-wrapper {
width: 50%;
}
#img1 {
height: 220px;
width: 274px;
background: none;
z-index: 30;
float: right;
position: absolute;
margin-top: 0;
}
#img2 {
height: 85px;
width: 274px;
background: none;
z-index: 30;
float: right;
position: absolute;
margin-bottom: 0;
}
#line {
height: 305px;
width: 2px;
background-color: #8a8a8a;
top: 200px;
left: 50%;
z-index: 30;
position: absolute;
}
我不认为我的问题很难,但我一直在努力让这种格式保持这么久,我只想提出一些建议!我正在使用Django表单,格式化很复杂(用小部件调整格式化它们),但我不认为这对于移动它的位置很重要。
答案 0 :(得分:6)
请避免在这种布局中使用absolute
位置,这会在某些时候破坏您的观点。
我建议使用其他CSS方法。如果您可以提出更多问题,请查看此代码段示例:
显示 - 表格
* {
margin: 0;
padding: 0;
box-sizing: border-box
}
html,
body {
height: 100%;
}
#center-wrapper {
height: 100%;
width: 100%;
display: table;
}
#center-wrapper > div {
width: 50%;
display: table-cell;
vertical-align: middle;
text-align: center;
}
#center-wrapper > div:first-child {
border-right: 2px solid red;
}
#form-wrapper {
width: 70%;
display: inline-block;
}
label,
input {
width: 100%;
text-align: left;
display: block;
}
<div id="center-wrapper">
<div>
<form id="form-wrapper">
<label>User</label>
<input type="text">
<label>Pass</label>
<input type="text">
<button type="submit" value="Log In">Log In</button>
</form>
</div>
<div>
<img src="http://placehold.it/200" />
<img src="http://placehold.it/200" />
</div>
</div>
<强>内联块强>
* {
margin: 0;
padding: 0;
box-sizing: border-box
}
html,
body {
height: 100%;
}
#center-wrapper {
height: 100%;
width: 100%;
}
#center-wrapper > div {
width: 48%;
display: inline-block;
vertical-align: middle;
text-align: center;
}
#center-wrapper > div.line {
width:2%;
height:100%;
background:purple;
}
#form-wrapper {
width: 70%;
display: inline-block;
}
label,
input {
width: 100%;
text-align: left;
display: block;
}
<div id="center-wrapper">
<div>
<form id="form-wrapper">
<label>User</label>
<input type="text">
<label>Pass</label>
<input type="text">
<button type="submit" value="Log In">Log In</button>
</form>
</div>
<div class="line"></div>
<div>
<img src="http://placehold.it/200" />
<img src="http://placehold.it/200" />
</div>
</div>
注意:像flex这样的其他方法也可以,但是这里会给你一个想法
答案 1 :(得分:2)
不需要像这样使用位置, HTML
next
我只是更改了你的一些代码。 CSS
<form id="form-wrapper">
<label for="username">
Username:
<input type="text" name="username">
</label>
<br>
<label for="password">
Password:
<input type="text" name="password">
</label>
<br>
<button type="submit" value="Log In">Login</button>
</form>
<div id="imgs">
<img src="img1.png" alt="Img 1" />
<br>
<img src="img2.png" alt="Img 2" />
</div>