一、一个表单案例,我们使用 CSS 来渲染 HTML 的表单元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-表单</title>
</head>
<style>
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;
}
</style>
<body>
<h3>使用 CSS 来渲染 HTML 的表单元素</h3>
<div>
<form action="/action_page.php">
<label for="fname">First Name</label>
<input type="text" id="fname" name="firstname" placeholder="Your name..">
<label for="lname">Last Name</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="canada">Canada</option>
<option value="usa">USA</option>
</select>
<input type="submit" value="Submit">
</form>
</div>
</body>
</html>
二、输入框(input) 样式
使用 width 属性来设置输入框的宽度
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-输入框样式</title>
<style>
input {
width: 100%;
}
</style>
</head>
<body>
<p>全宽输入框:</p>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
</form>
</body>
</html>
以上实例中设置了所有 <input> 元素的宽度为 100%,如果你只想设置指定类型的输入框可以使用以下属性选择器:
input[type=text]
- 选取文本输入框input[type=password]
- 选择密码的输入框input[type=number]
- 选择数字的输入框
三、输入框填充
3.1、使用 padding 属性可以在输入框中添加内边距
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
}
注意:我们设置了 box-sizing
属性为 border-box
。这样可以确保浏览器呈现出带有指定宽度和高度的输入框是把边框和内边距一起计算进去的。
3.2、使用 border
属性可以修改 input 边框的大小或颜色,使用 border-radius
属性可以给 input 添加圆角
input[type=text] {
border: 2px solid red;
border-radius: 4px;
}
3.3、 如果你只想添加底部边框可以使用 border-bottom
属性
input[type=text] {
border: none;
border-bottom: 2px solid red;
}
3.4、可以使用 background-color
属性来设置输入框的背景颜色,color
属性用于修改文本颜色
input[type=text] {
background-color: #3CBC8D;
color: white;
}
四、输入框(input) 聚焦
默认情况下,一些浏览器在输入框获取焦点时(点击输入框)会有一个蓝色轮廓。我们可以设置 input 样式为 outline: none;
来忽略该效果。
使用 :focus
选择器可以设置输入框在获取焦点时的样式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-输入框聚焦</title>
<style>
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 1px solid #555;
outline: none;
}
input[type=text]:focus {
background-color: lightblue;
}
</style>
</head>
<body>
<p>在这个实例中,我们使用了 :focus 选择器(点击输入框时)来给文本输入框添加背景颜色:</p>
<form>
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname" value="John">
<label for="lname">Last Name</label>
<input type="text" id="lname" name="lname" value="Doe">
</form>
</body>
</html>
在文本框获取焦点时,设置边框当颜色:
input[type=text]:focus {
border: 3px solid #f0f;
}
五、输入框(input) 图标
如果你想在输入框中添加图标,可以使用 background-image
属性和用于定位的background-position
属性。注意设置图标的左边距,让图标有一定的空间
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-输入框添加搜索图标</title>
<style>
input[type=text] {
width: 100%;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
font-size: 16px;
background-color: white;
background-image: url('https://static.runoob.com/images/mix/searchicon.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding: 12px 20px 12px 40px;
}
</style>
</head>
<body>
<p>输入框按钮:</p>
<form>
<input type="text" name="search" placeholder="搜索..">
</form>
</body>
</html>
带动画的搜索框:
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)样式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-多行输入框</title>
<style>
textarea {
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
font-size: 16px;
resize: none;
}
</style>
</head>
<body>
<p><strong>提示:</strong> 使用 resize 属性来禁用文本框可以重置大小的功能(一般拖动右下脚可以重置大小)。</p>
<form>
<textarea>一些文本...</textarea>
</form>
</body>
</html>
注意: 使用 resize
属性来禁用文本框可以重置大小的功能(一般拖动右下角可以重置大小)。
七、下拉菜单(select)样式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-下拉菜单</title>
<style>
select {
width: 100%;
padding: 16px 20px;
border: none;
border-radius: 4px;
background-color: #f1f1f1;
}
</style>
</head>
<body>
<p>下拉菜单</p>
<form>
<select id="country" name="country">
<option value="au">Australia</option>
<option value="ca">Canada</option>
<option value="usa">USA</option>
</select>
</form>
</body>
</html>
八、按钮样式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS基础学习-按钮样式</title>
<style>
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;
}
</style>
</head>
<body>
<p>按钮样式</p>
<input type="button" value="按钮">
<input type="reset" value="重置">
<input type="submit" value="提交">
</body>
</html>
提示: 使用 width: 100% 设置全宽按钮