如何使用 CSS 创建响应式内联表单?


响应式内联表单是指所有元素都为内联元素,且与特定标签左对齐的表单。为了显示响应性,即当网页浏览器大小调整时,我们将内联表单设置为将所有输入字段堆叠在彼此之上。此概念适用于较小的屏幕。让我们看看如何使用 CSS 创建响应式内联表单。

创建表单

要创建表单,请使用<form>元素。我们在表单中设置了两个输入字段和一个按钮 -

<form>
   <label for="email">Email:</label>
   <input type="email" id="email" placeholder="Enter email" name="email" />
   <label for="pass">Password:</label>
   <input type="password" id="pass" placeholder="Enter password" name="pass"/>
   <button type="submit">Submit</button>
</form>

设置表单样式

我们使用 display 属性将表单定位为 flex。flex-row 简写设置为 row wrap,即flex-direction 为 row,flex-wrap 为 wrap。所有项目的对齐方式使用align-items 属性居中 -

form {
   display: flex;
   flex-flow: row wrap;
   align-items: center;
}

提交按钮

表单的提交按钮样式如下。将光标属性设置为 pointer 以使其看起来可点击 -

form button {
   padding: 10px 20px;
   font-size: 20px;
   background-color: rgb(39, 22, 141);
   border: 1px solid #ddd;
   color: white;
   cursor: pointer;
   font-weight: bolder;
   border-radius: 4px;
}

设置响应性

媒体查询用于设置响应性。当屏幕尺寸小于 800px 时,输入字段将堆叠在彼此之上。我们使用flex-direction 属性和值column实现了这一点 -

@media (max-width: 800px) {
   form input {
      margin: 10px 0;
   }
   form {
      flex-direction: column;
      align-items: stretch;
   }
}

示例

以下是使用 CSS 创建响应式内联表单的代码 -

<!DOCTYPE html>
<html>
<head>
   <style>
      body {
         font-family: Arial, Helvetica, sans-serif;
      }
      * {
         box-sizing: border-box;
      }
      form {
         display: flex;
         flex-flow: row wrap;
         align-items: center;
      }
      form label {
         margin: 5px 10px 5px 0;
      }
      form input {
         margin: 5px 10px 5px 0;
         padding: 10px;
      }
      form button {
         padding: 10px 20px;
         font-size: 20px;
         background-color: rgb(39, 22, 141);
         border: 1px solid #ddd;
         color: white;
         cursor: pointer;
         font-weight: bolder;
         border-radius: 4px;
      }
      form button:hover {
         background-color: rgb(113, 65, 225);
      }
      @media (max-width: 800px) {
         form input {
            margin: 10px 0;
         }
         form {
            flex-direction: column;
            align-items: stretch;
         }
      }
   </style>
</head>
<body>
   <h1>Responsive Inline Form Example</h1>
   <form>
      <label for="email">Email:</label>
      <input type="email" id="email" placeholder="Enter email" name="email" />
      <label for="pass">Password:</label>
      <input type="password" id="pass" placeholder="Enter password" name="pass"/>
      <button type="submit">Submit</button>
   </form>
</body>
</html>

更新于: 2023-12-08

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告