CSS 输入框样式
填充输入框
使用 padding
属性在文本字段内添加空间。
提示:若有很多输入,那么您可能还需要添加 margin
,以便在它们之外添加更多空间:
实例
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
}
</style>
</head>
<body>
<p>已填充的文本字段:</p>
<form>
<label for="fname">姓氏</label>
<input type="text" id="fname" name="fname">
<label for="lname">名字</label>
<input type="text" id="lname" name="lname">
</form>
</body>
</html>
请注意,我们已将 box-sizing
属性设置为 border-box
。这样可以确保元素的总宽度和高度中包括内边距(填充)和最终的边框。
可以访问我们的 CSS Box Sizing 这一章中学习有关 box-sizing
属性的更多知识。
带边框的输入框
请使用 border
属性更改边框的粗细和颜色,并使用 border-radius
属性添加圆角:
实例
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 2px solid red;
border-radius: 4px;
}
</style>
</head>
<body>
<p>带边框的文本字段:</p>
<form>
<label for="fname">姓氏</label>
<input type="text" id="fname" name="fname">
<label for="lname">名字</label>
<input type="text" id="lname" name="lname">
</form>
</body>
</html>
如果仅需要下边框,请使用 border-bottom
属性:
实例
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: none;
border-bottom: 2px solid red;
}
</style>
</head>
<body>
<p>只有下边框的文本字段:</p>
<form>
<label for="fname">姓氏</label>
<input type="text" id="fname" name="fname">
<label for="lname">名字</label>
<input type="text" id="lname" name="lname">
</form>
</body>
</html>
彩色的输入框
请使用 background-color
属性为输入添加背景色,并使用 color
属性更改文本颜色:
实例
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: none;
background-color: #3CBC8D;
color: white;
}
</style>
</head>
<body>
<p>有颜色的文本字段:</p>
<form>
<label for="fname">姓氏</label>
<input type="text" id="fname" name="fname" value="埃隆">
<label for="lname">名字</label>
<input type="text" id="lname" name="lname" value="马斯克">
</form>
</body>
</html>
获得焦点的输入框
默认情况下,某些浏览器在获得焦点(单击)时会在输入框周围添加蓝色轮廓。您可以通过向输入添加 outline: none;
来消除此行为。
使用 :focus
选择器可以在输入字段获得焦点时为其设置样式:
请在文本框中点击:
请在文本框中点击:
实例 1
<!DOCTYPE html>
<html>
<head>
<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>在本例中,我们使用:焦点选择器在文本字段聚焦(单击)时向其添加背景色:</p>
<form>
<label for="fname">姓氏</label>
<input type="text" id="fname" name="fname" value="埃隆">
<label for="lname">名称</label>
<input type="text" id="lname" name="lname" value="马斯克">
</form>
</body>
</html>
实例2
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 3px solid #ccc;
-webkit-transition: 0.5s;
transition: 0.5s;
outline: none;
}
input[type=text]:focus {
border: 3px solid #555;
}
</style>
</head>
<body>
<p>在本例中,我们使用:focus选择器在文本字段聚焦(单击)时向其添加黑色边框颜色:</p>
<p>请注意,我们添加了CSS transition属性来设置边框颜色的动画(更改焦点上的颜色需要0.5秒)。</p>
<form>
<label for="fname">姓氏</label>
<input type="text" id="fname" name="fname" value="埃隆">
<label for="lname">名字</label>
<input type="text" id="lname" name="lname" value="马斯克">
</form>
</body>
</html>
带有图标/图像的输入框
如果希望在输入框中包含图标,请使用 background-image
属性,并将其与 background-position
属性一起设置。还要注意,我们添加了一个较大的左内边距(padding-left)来留出图标的空间:
实例
<!DOCTYPE html>
<html>
<head>
<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('/images/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="Search..">
</form>
</body>
</html>
带动画效果的搜索输入框
在本例中,我们使用 CSS transition
属性为搜索输入框获得焦点时的宽度变化设置动画。
稍后,您可以访问本站的 CSS 过渡 一章中学到更多有关 transition
属性的知识。
实例
<!DOCTYPE html>
<html>
<head>
<style>
input[type=text] {
width: 130px;
box-sizing: border-box;
border: 2px solid #ccc;
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;
transition: width 0.4s ease-in-out;
}
input[type=text]:focus {
width: 100%;
}
</style>
</head>
<body>
<p>带动画效果的输入框:</p>
<form>
<input type="text" name="search" placeholder="Search..">
</form>
</body>
</html>