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

求助:如何实现Forgot Password与Cancel按钮的行内对齐

问题:忘记密码链接与Cancel按钮无法行内对齐

我想让「忘记密码」链接和Cancel按钮在同一行对齐,调整padding属性后问题仍未解决。以下是相关的HTML、CSS代码,以及当前效果截图:

HTML代码

<!DOCTYPE html>
<html>
<head>
   
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Login</title>
<link rel="stylesheet" href="stylesheet_login.css">
</head>
<body>

   <h2>Login with your email</h2>
   
   <button  onclick="document.getElementById('id01').style.display='block'" style="width: 30%; ">Login</button>
   <button  onclick="document.getElementById('id02').style.display='block'" style="width:30%;">Signup</button>
   <button onclick="topFunction()" id="topbtn" title="to top">Top</button>
   
   <div id="id01" class="modal">
     
     <form class="modal-content animate" action="/action_page.php" method="post">
       <div class="imgcontainer">
         <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">&times;</span>
         <img src="file:///F:/Yohani/python/Avatar_login_page.jpg" alt="Avatar" class="avatar">
       </div>
   
       <div class="container">
         <label for="uname"><b>Username</b></label>
         <input type="text" placeholder="Enter Username" name="uname" required>

         <label for="emal"><b>E-mail</b></label>
         <input type="email" placeholder="Enter E-mail" name="emal" required>
   
         <label for="psw"><b>Password</b></label>
         <input type="password" placeholder="Enter Password" name="psw" required>

         <label for="num"><b>Phone Number</b><label>
         <input type="number" placeholder="Enter Phone number" name="num">
           
         <button type="submit">Login</button>
         <label>
           <input type="checkbox" checked="checked" name="remember"> Remember me
         </label>
       </div>
   
       <div class="container" style="background-color:#f1f1f1">
         <button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancelbtn">Cancel</button>
         <span class="psw2">Forgot <a href="#">password?</a></span>
       </div>
     </form>
   </div>

   <div id="id02" class="modal">
      </div>

   
    </body>
   </html>

CSS代码

input[type=text],  [type=email] ,input[type=password] ,[type=number]{
   width: 100%;
   padding: 12px 20px;
   margin: 8px 0;
   display: inline-block;
   border: 1px solid #ccc;
   box-sizing: border-box;
   
 }
 
 
 button {
   background-color: #0985aa;
   color: white;
   padding: 12px 20px;
   margin: 8px 0;
   border: none;
   cursor: pointer;
   width: 100%;
   display:block;
   border-radius: 12px;
 }
 
 button:hover {
   opacity: 0.8;
 }
 
 
 .cancelbtn {
   width: auto;
   padding: 10px 18px;
   background-color: #f44336;
 }
 
 #topbtn {
   display: none; 
   position: fixed; 
   bottom: 20px; 
   right: 30px; 
   z-index: 99; 
   border: none;
   outline: none; 
   background-color: red; 
   color: white; 
   cursor: pointer; 
   padding: 15px; 
   border-radius: 10px; 
   font-size: 18px; 
 }
 
 #topbtn:hover {
   background-color: #555; 
 }
 
 .imgcontainer {
   text-align: center;
   margin: 24px 0 12px 0;
   position: relative;
 }
 
 img.avatar {
   width: 40%;
   border-radius: 50%;
 }
 
 .container {
   padding: 16px;
 }
 
 span.emal {
   float: right;
   padding-top: 16px;
 }
 span.psw {
   float: right;
   padding-top: 16px;
 }
 span.num {
   float: right;
   padding-top: 16px;
 }
 span.psw2 {
   float: right;
   padding-top:-100px;
 }
 
 
 .modal {
   display: none; 
   position: fixed;
   z-index: 1; 
   left: 0;
   top: 0;
   width: 100%; 
   height: 100%; 
   overflow: auto; 
   background-color: rgb(0,0,0); 
   background-color: rgba(0,0,0,0.4); 
   padding-top: 60px;
   font-family:Arial, Helvetica, sans-serif;
 }
 
 
 .modal-content {
   background-color: #fefefe;
   margin: 5% auto 15% auto; 
   border: 1px solid #888;
   width: 80%; 
 }
 
 
 .close {
   position: absolute;
   right: 25px;
   left: 25px;
   top: 0;
   color: #000;
   font-size: 35px;
   font-weight: bold;
 }
 
 .close:hover,
 .close:focus {
   color: red;
   cursor: pointer;
 }
 
 
 .animate {
   -webkit-animation: animatezoom 0.6s;
   animation: animatezoom 0.6s
 }
 
 @-webkit-keyframes animatezoom {
   from {-webkit-transform: scale(0)} 
   to {-webkit-transform: scale(1)}
 }
   
 @keyframes animatezoom {
   from {transform: scale(0)} 
   to {transform: scale(1)}
 }
 
 
 @media screen and (max-width: 300px) {
   span.emal {
      display: block;
      float: none;
   }
   span.psw {
      display: block;
      float: none;
   }
   span.num {
      display: block;
      float: none;
   }
   span.psw2 {
      display:inline;
      float: right;
   }
   
   .cancelbtn {
      width: 50%;
   }
 }

当前效果

忘记密码与Cancel按钮未对齐截图


解决方案

问题根源:

  1. 全局button样式设置了display: block,导致Cancel按钮默认占满整行,无法和右侧链接同行显示。
  2. span.psw2的padding-top: -100px无效(CSS不支持负padding),且未设置正确的垂直对齐规则。

提供两种可行方案:

方案1:Flex布局(推荐,适配性更强)

给包含按钮和链接的底部容器添加Flex属性,自动实现对齐:

/* 给底部的灰色container设置Flex布局 */
.container:last-of-type {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* 覆盖全局button的block显示 */
.cancelbtn {
  width: auto;
  padding: 10px 18px;
  background-color: #f44336;
  display: inline-block;
}

/* 移除无效的float和负padding */
span.psw2 {
  float: none;
  padding-top: 0;
}

方案2:行内块元素调整

如果不想用Flex,直接修改元素显示规则:

/* 让Cancel按钮变成行内块,允许和文本同行 */
.cancelbtn {
  width: auto;
  padding: 10px 18px;
  background-color: #f44336;
  display: inline-block;
  vertical-align: middle; /* 和文本垂直居中对齐 */
}

/* 修正链接的padding,匹配按钮高度 */
span.psw2 {
  float: right;
  padding-top: 10px;
}

两种方案都能实现Cancel按钮与「忘记密码」链接的同行垂直对齐,优先推荐Flex布局,对移动端响应式适配更友好。


内容的提问来源于stack exchange,提问作者Sanju De Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:06:19