<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS 表单</title>
<style>
/*适用CSS渲染HTML的表单元素*/
input[type=text], select{
width: 100%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #cccccc;
border-radius: 4px;
box-sizing: border-box;
}
input[type=submit]{
width: 100%;
background-color: #2196F3;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
input[type=submit]:hover{
background-color: #45a049;
}
div{
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
/*全宽输入框*/
input{
width: 100%;
}
/*设置文本框的内边距*/
input[type=text]{
width: 100%;
padding: 15px 30px;
margin: 16px 16px;
box-sizing: border-box;
}
/*输入框(input) 边框 1*/
input[type=text]{
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 2px solid red;
border-radius: 10px;
}
/*输入框 边框2*/
input[type=text]{
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: none;
background-color: #3CBC8D;
color: white;
}
/*输入框(input) 聚焦1*/
input[type=text]{
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 1px solid #555555;
outline: none;
}
input[type=text]:focus{
background-color: lightsteelblue;
}
/*输入框(input) 聚焦2*/
input[type=text]{
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 3px solid #cccccc;
-webkit-transition: 0.5s;
outline: none;
}
input[type=text]:focus{
border: 3px solid yellow;
}
/*输入框(input) 图标*/
input[type=text]{
width: 100%;
box-sizing: border-box;
border-radius: 4px;
font-size: 16px;
background-color: white;
background-image: url("images/searchicon.png");
background-position: 10px 10px;
background-repeat: no-repeat;
padding: 12px 20px 12px 40px;
}
/*带动画的输入框*/
input[type=text]{
width: 200px;
box-sizing: border-box;
border: 2px solid #cccccc;
border-radius: 4px;
font-size: 16px;
background-color: white;
background-image: url("images/searchicon.png");
background-position: 10px 10px;
background-repeat: no-repeat;
padding: 12px 20px 12px 40px;
-webkit-transition: width 0.4s ease-in-out;
transition: width 0.4s ease-in-out;
}
input[type=text]:focus{
width: 100%;
}
/*文本框(textarea)样式*/
textarea{
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border-radius: 12px;
background: #f8f8f8;
font-size: 16px;
border: 2px dashed #cccccc;
}
/*下拉框样式*/
select{
width: 100%;
padding: 12px 20px;
border: none;
border-radius: 12px;
background-color: #f1f1f1;
}
/*按钮样式*/
input[type=button],input[type=submit],input[type=reset]{
background-color: #4CAF50;
border: none;
color: white;
padding: 16px 32px;
text-decoration: none;
margin: 4px 2px;
cursor: pointer;
}
/*响应式表单*/
*{
box-sizing: border-box;
}
input[type=text], select, textarea {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
resize: vertical;
}
label {
padding: 12px 12px 12px 0;
display: inline-block;
}
input[type=submit] {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
float: right;
}
input[type=submit]:hover{
background-color: red;
}
.container {
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
.col-25{
float: left;
width: 25%;
margin-top: 6px;
}
.col-75{
float: left;
width: 75%;
margin-top: 6px;
}
/*清除浮动*/
.row:after{
content: "";
display: table;
clear: both;
}
/* 响应式布局 layout - 在屏幕宽度小于 600px 时, 设置为上下堆叠元素 */
@media screen and (max-width: 600px){
.col-25,.col-75,input[type=submit]{
width: 100%;
margin-top: 0;
}
}
</style>
</head>
<body>
<h2>适用CSS渲染HTML的表单元素</h2>
<div>
<form action="CSS%20伪类.html">
<label for="fname">First Name</label>
<input type="text" id="fname" name="firstname" placeholder="Your name...">
<label for="lname">LastName</label>
<input type="text" id="lname" name="lastname" placeholder="Your last name">
<label for="country">Country</label>
<select id="country" name="country">
<option value="australia">Australia</option>
<option value="china">China</option>
<option value="usa">USA</option>
</select>
<input type="submit" value="Submit">
</form>
</div>
<h2>全宽输入框</h2>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
</form>
<h2>设置文本框的内边距</h2>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lname">
</form>
<h2>输入框 边框1</h2>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lname">
</form>
<h2>输入框 边框2</h2>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname" value="first name ...">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lname" value="last name ...">
</form>
<h2>输入框(input) 聚焦1</h2>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lname">
</form>
<h2>输入框(input) 聚焦2</h2>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lname">
</form>
<h2>输入框 图片</h2>
<form>
<input type="text" name="search" placeholder="搜索..">
</form>
<h2>带动画的搜索框</h2>
<form>
<input type="text" name="search" placeholder="搜索..">
</form>
<h2>文本框样式</h2>
<form>
<textarea>
一些文本
</textarea>
</form>
<h2>下拉框 样式</h2>
<form>
<select id="country" name="country">
<option value="ch">China</option>
<option value="usa">USA</option>
<option value="ca">Canada</option>
</select>
</form>
<h2>按钮样式</h2>
<input type="submit" value="提交">
<input type="button" value="按钮">
<input type="reset" value="重置">
<h2>响应式表单</h2>
<p>响应式表带可以根据浏览器窗口的大小重新布局各个元素,我们可以通过重置浏览器窗口大小来查看效果:</p>
<div class="container">
<form action="/action_page.php">
<div class="row">
<div class="col-25">
<label for="fname">First Name</label>
</div>
<div class="col-75">
<input type="text" id="fname" name="firstname" placeholder="Your name..">
</div>
</div>
<div class="row">
<div class="col-25">
<label for="lname">Last Name</label>
</div>
<div class="col-75">
<input type="text" id="lname" name="lastname" placeholder="Your last name..">
</div>
</div>
<div class="row">
<div class="col-25">
<label for="country">Country</label>
</div>
<div class="col-75">
<select id="country" name="country">
<option value="australia">Australia</option>
<option value="canada">Canada</option>
<option value="usa">USA</option>
</select>
</div>
</div>
<div class="row">
<div class="col-25">
<label for="subject">Subject</label>
</div>
<div class="col-75">
<textarea id="subject" name="subject" placeholder="Write something.." style="height:200px"></textarea>
</div>
</div>
<div class="row">
<input type="submit" value="Submit">
</div>
</form>
</div>
</body>
</html>
<!--
CSS 表单
一个表单案例,我们使用 CSS 来渲染 HTML 的表单元素:
CSS 实例
input[type=text], select {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
input[type=submit] {
width: 100%;
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
input[type=submit]:hover {
background-color: #45a049;
}
div {
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
-->
<!--
输入框(input) 样式
使用 width 属性来设置输入框的宽度:
CSS 实例
input {
width: 100%;
}
尝试一下 »
以上实例中设置了所有 <input> 元素的宽度为 100%,如过你只想设置指定类型的输入框可以使用以下属性选择器:
input[type=text] - 选取文本输入框
input[type=password] - 选择密码的输入框
input[type=number] - 选择数字的输入框
...
-->
<!--
输入框填充
使用 padding 属性可以在输入框中添加内边距。
CSS 实例
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
}
尝试一下 »
注意我们设置了 box-sizing 属性为 border-box。
这样可以确保浏览器呈现出带有指定宽度和高度的输入框是把边框和内边距一起计算进去的。
-->
<!--
输入框(input) 边框
使用 border 属性可以修改 input 边框的大小或颜色,使用 border-radius 属性可以给 input 添加圆角:
CSS 实例
input[type=text] {
border: 2px solid red;
border-radius: 4px;
}
尝试一下 »
如果你只想添加底部边框可以使用 border-bottom 属性:
CSS 实例
input[type=text] {
border: none;
border-bottom: 2px solid red;
}
-->
<!--
输入框(input) 聚焦
默认情况下,一些浏览器在输入框获取焦点时(点击输入框)会有一个蓝色轮廓。我们可以设置 input 样式为 outline: none; 来忽略该效果。
使用 :focus 选择器可以设置输入框在获取焦点时的样式:
CSS 实例
input[type=text]:focus {
background-color: lightblue;
}
尝试一下 »
CSS 实例
input[type=text]:focus {
border: 3px solid #555;
}
-->
<!--
输入框(input) 图标
如果你想在输入框中添加图标,可以使用 background-image 属性和用于定位的background-position 属性。
注意设置图标的左边距,让图标有一定的空间:
CSS 实例
input[type=text] {
background-color: white;
background-image: url('searchicon.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
}
-->
<!--
带动画的搜索框
以下实例使用了 CSS transition 属性,该属性设置了输入框在获取焦点时会向右延展。
你可以在 CSS 动画 章节查看更多内容。
CSS 实例
input[type=text] {
-webkit-transition: width 0.4s ease-in-out;
transition: width 0.4s ease-in-out;
}
input[type=text]:focus {
width: 100%;
}
-->
<!--
文本框(textarea)样式
注意: 使用 resize 属性来禁用文本框可以重置大小的功能(一般拖动右下脚可以重置大小)。
CSS 实例
textarea {
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
resize: none;
}
-->
<!--
下拉菜单(select)样式
CSS 实例
select {
width: 100%;
padding: 16px 20px;
border: none;
border-radius: 4px;
background-color: #f1f1f1;
}
-->
<!--
按钮样式
CSS 实例
input[type=button], input[type=submit], input[type=reset] {
background-color: #4CAF50;
border: none;
color: white;
padding: 16px 32px;
text-decoration: none;
margin: 4px 2px;
cursor: pointer;
}
/* 提示: 使用 width: 100% 设置全宽按钮 */
尝试一下 »
更多内容可以参考我们的 CSS 按钮 教程
-->
<!--
响应式表单
响应式表带可以根据浏览器窗口的大小重新布局各个元素,我们可以通过重置浏览器窗口大小来查看效果:
高级: 以下实力使用了CSS3 多媒体查询 来创建一个响应式表单。
CSS 实例
* {
box-sizing: border-box;
}
input[type=text], select, textarea {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
resize: vertical;
}
label {
padding: 12px 12px 12px 0;
display: inline-block;
}
input[type=submit] {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
float: right;
}
input[type=submit]:hover {
background-color: #45a049;
}
.container {
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
.col-25 {
float: left;
width: 25%;
margin-top: 6px;
}
.col-75 {
float: left;
width: 75%;
margin-top: 6px;
}
/* 清除浮动 */
.row:after {
content: "";
display: table;
clear: both;
}
/* 响应式布局 layout - 在屏幕宽度小于 600px 时, 设置为上下堆叠元素 */
@media screen and (max-width: 600px) {
.col-25, .col-75, input[type=submit] {
width: 100%;
margin-top: 0;
}
}
-->
网友评论