【发布时间】:2017-07-14 15:53:03
【问题描述】:
我正在尝试使用 css 来适应我的表单/背景图像以占据整个屏幕,现在背景图像在底部被切断并且表单没有完全占据屏幕上的所有空间相反,屏幕底部和顶部有空白。
这是完整的代码 sn-p。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SpaceMX</title>
<!-- CORE CSS-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/css/materialize.min.css">
<style type="text/css">
html,
body {
height: 100%;
}
html {
display: table;
margin: auto;
height: 100%;
}
body {
display: table-cell;
height: 100%;
vertical-align: middle;
}
.margin {
margin: 0 !important;
}
form{
background: url('http://i.imgur.com/qhn5HDG.png');
width: 100%;
background-repeat:no-repeat;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
</style>
</head>
<body class="">
<form class="login-form">
<div class="row">
<div class="input-field col s12 center">
<p class="center login-form-text" class="responsive-img valign profile-image-login">SpaceMX</p>
</div>
</div>
<div class="row margin">
<div class="input-field col s12">
<i class="mdi-social-person-outline prefix"></i>
<input id="username" type="text" class="validate">
<label for="username" class="center-align">Username</label>
</div>
</div>
<div class="row margin">
<div class="input-field col s12">
<i class="mdi-communication-email prefix"></i>
<input id="email" type="email" class="validate">
<label for="email" class="center-align">Email</label>
</div>
</div>
<div class="row margin">
<div class="input-field col s12">
<i class="mdi-action-lock-outline prefix"></i>
<input id="password" type="password" class="validate">
<label for="password">Password</label>
</div>
</div>
<div class="row margin">
<div class="input-field col s12">
<i class="mdi-action-lock-outline prefix"></i>
<input id="password-again" type="password">
<label for="password-again">Re-type password</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<a href="register.html" class="btn waves-effect waves-light col s12">Register Now</a>
</div>
<div class="input-field col s12">
<p class="margin center medium-small sign-up" color="white">Already have an account? <a href="login.html">Login</a></p>
</div>
</div>
</form>
<!-- ================================================
Scripts
================================================ -->
<!-- jQuery Library -->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!--materialize js-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/js/materialize.min.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-27820211-3', 'auto');
ga('send', 'pageview');
</body>
</html>
【问题讨论】:
-
使用 vh, vw 代替 precents 来确定尺寸!
-
这并没有做任何事情,只是背景图像变得更小更奇怪,页面顶部和底部仍然有空白。我将所有 % 更改为 vh 高度和 vw 宽度,
-
绝对表单位置top,left 0px,可能你的浏览器不支持vh,vw