如何使用 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>
广告