【发布时间】:2015-05-05 23:43:20
【问题描述】:
我尝试使用仅vh 大小创建登录表单。
这样做是为了希望表单总体上会根据视口进行缩放。
没有!出于某种原因,放大时会在输入字段和下面的文本之间创建一个随着放大而不断变大的空白区域。
小提琴制作得不是很好,只是从我的项目中复制的。 但你可以看到哪里出了问题——这才是最重要的。
有人知道我该如何解决这个问题吗?
<span id="loginform">
<input type="text" name="login" class="LFORM" placeholder="USERNAME" />
<input type="password" name="password" class="LFORM" placeholder="PASSWORD" />
<button id="LB" type="button" style="font-size: 1.4vh;">OK!</button><br />
<a href="" id="CALINK" style="font-size:1.4vh;">Create account</a>
<a href="" id="FLLINK" style="font-size:1.4vh;">Forgot login?</a>
</span>
::-webkit-input-placeholder {
font-size: 1.4vh;
}
#loginform {
float: right;
position: relative;
top: 50%;
transform: translateY(-50%);
right: 1.5vh;
}
#CALINK {
float:left;
font-family:my_fat_font;
}
#FLLINK {
float:right;
font-family:my_fat_font;
}
#LB {
border-radius: 0.4vh;
font-family: my_fat_font;
color: #ffffff;
background: #ff9f2d;
padding: 0.2vh 0.8vh 0.2vh 0.8vh;
text-decoration: none;
border: none;
height: 2vh;
margin-left: .5vh;
margin-right: 0px;
border: 0;
}
#LB:hover {
background: #3e4188;
text-decoration: none;
}
.LFORM {
width: 10vh;
height: 1.8vh;
border-radius: .3vh;
border: none;
padding-left: .6vh;
}
[placeholder]:focus::-webkit-input-placeholder {
color: transparent;
}
#loginform a:hover {
color: #ff9f2d;
text-decoration:underline;
}
#loginform a {
color: #ff9f2d;
text-decoration: none;
}
【问题讨论】:
-
我真的看不出有什么问题。视口高度没有改变,只是在其中呈现事物的方式。 Viewport (computing)
-
那么我可能对“vh”如何工作有一个错误的想法。在我看来,它将被渲染到完全相同的位置。
-
视口应该代表显示器的物理空间。缩放不会改变显示器的物理空间,而是改变显示器的内容。把它想象成通过放大镜看东西。它实际上并没有改变物理对象的大小,只是改变它的显示大小。
-
那么还有其他合理的方法可以实现吗?
-
这样的? jsfiddle.net/TnY3L/5
标签: css scale viewport viewport-units