You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap登录表单无法全屏显示,页面仅占半屏问题求助

登录页面仅显示半屏问题排查与解决

我正在做毕业设计的登录页面,用Bootstrap的列样式构建表单,原本想让页面占满整个屏幕,但实际只显示约半屏,另一半是空白。

相关代码

CSS代码

body {
    font-family: "Lato", sans-serif;
}

.main-head{
    height: 150px;
    background: #FFF;
   
}

.sidenav {
    height: 100%;
    background-color: #000;
    overflow-x: hidden;
    padding-top: 20px;
}

.main {
    padding: 0px 10px;
}

@media screen and (max-height: 450px) {
    .sidenav {padding-top: 15px;}
}

@media screen and (max-width: 450px) {
    .login-form{
        margin-top: 10%;
    }
    .register-form{
        margin-top: 10%;
    }
}

@media screen and (min-width: 768px){
    .main{
        margin-left: 40%; 
    }
    .sidenav{
        width: 40%;
        position: fixed;
        z-index: 1;
        top: 0;
        left: 0;
    }
    .login-form{
        margin-top: 80%;
    }
    .register-form{
        margin-top: 20%;
    }
}

.login-main-text{
    margin-top: 20%;
    padding: 60px;
    color: #fff;
}

.login-main-text h2{
    font-weight: 300;
}

.btn-black{
    background-color: #000 !important;
    color: #fff;
}

HTML代码

<!DOCTYPE HTML>
<html lang="en">
<head>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="sitestyle.css" rel="stylesheet" type="text/css">
    <title>Excell Visualizer</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="sidenav">
    <div class="login-main-text">
        <h2>Chartcel <br> Login Page </h2>
        <p>Login or register from here to upload your desired spreadsheet.</p>
    </div>
    <div class="main">
        <div class="col-md-6 col-sm-12">
            <div class="login-form">
                <form>
                    <div class="form-group">
                        <label>Username </label>
                        <input type="text" class="form-control" placeholder="Username">
                    </div>
                    <div class="form-group">
                        <label>Password</label>
                        <input type="password" class="form-control" placeholder="Password">
                    </div>
                    <button type="submit" class="btn btn-black">Login</button>
                    <button type="submit" class="btn btn-secondary"> Register</button>
                </form>
            </div>
        </div>
    </div>

问题表现

页面仅左侧40%宽度显示黑色侧边栏和表单,右侧60%区域为空白,未利用屏幕空间。


解决方案

问题根源

  1. HTML结构嵌套错误:表单所在的.main容器被放在了.sidenav内部,导致表单被限制在侧边栏的40%宽度范围内。
  2. Bootstrap栅格未正确使用:col-md-6没有嵌套在row容器中,无法正常发挥栅格布局作用。
  3. 响应式样式逻辑冲突:大屏下.main设置的margin-left:40%因嵌套结构无法生效,主内容区无法占据右侧空间。

修改步骤

1. 调整HTML结构,分离侧边栏与主内容区

将.main容器从.sidenav中移出,改为同级元素,同时补充缺失的闭合标签,添加Bootstrap的row容器:

<!DOCTYPE HTML>
<html lang="en">
<head>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="sitestyle.css" rel="stylesheet" type="text/css">
    <title>Excell Visualizer</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="sidenav">
    <div class="login-main-text">
        <h2>Chartcel <br> Login Page </h2>
        <p>Login or register from here to upload your desired spreadsheet.</p>
    </div>
</div>
<div class="main">
    <div class="row">
        <div class="col-md-6 col-sm-12 mx-auto">
            <div class="login-form">
                <form>
                    <div class="form-group">
                        <label>Username </label>
                        <input type="text" class="form-control" placeholder="Username">
                    </div>
                    <div class="form-group">
                        <label>Password</label>
                        <input type="password" class="form-control" placeholder="Password">
                    </div>
                    <button type="submit" class="btn btn-black">Login</button>
                    <button type="submit" class="btn btn-secondary"> Register</button>
                </form>
            </div>
        </div>
    </div>
</div>
</body>
</html>

2. 优化CSS响应式布局

调整大屏下.main的样式,让它占据右侧60%宽度,同时对齐侧边栏:

@media screen and (min-width: 768px){
    .main{
        width: 60%;
        margin-left: 40%;
        float: left;
        padding-top: 80%;
    }
    .sidenav{
        width: 40%;
        position: fixed;
        z-index: 1;
        top: 0;
        left: 0;
        height: 100vh;
    }
    .login-form{
        margin-top: 0;
    }
}

修改后效果

侧边栏占据左侧40%宽度,主内容区占据右侧60%宽度,表单居中显示,整个页面完全铺满屏幕,符合预期布局。

内容的提问来源于stack exchange,提问作者Slats_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 20:35:08