css 搜索框制作
基础搜索框样式
使用CSS创建一个简单的搜索框,包含输入框和搜索按钮。以下代码设置输入框的边框、圆角和按钮的悬停效果。
.search-container {
display: flex;
width: 300px;
margin: 20px auto;
}
.search-input {
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px 0 0 4px;
width: 70%;
outline: none;
}
.search-button {
padding: 10px 15px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 0 4px 4px 0;
cursor: pointer;
}
.search-button:hover {
background-color: #45a049;
}
带图标的高级搜索框
在搜索框中添加放大镜图标,使用伪元素或背景图实现。以下代码通过Font Awesome图标库嵌入图标。
.search-container {
position: relative;
width: 300px;
}
.search-input {
padding: 10px 40px 10px 15px;
border: 2px solid #ddd;
border-radius: 25px;
width: 100%;
box-sizing: border-box;
}
.search-button {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: #666;
cursor: pointer;
}
/* 使用Font Awesome时的图标样式 */
.search-button::before {
font-family: "Font Awesome 5 Free";
content: "\f002";
font-weight: 900;
}
动画搜索框效果
为搜索框添加聚焦时的展开动画效果,通过CSS transition实现平滑的宽度变化。
.search-container {
display: inline-block;
position: relative;
}
.search-input {
width: 50px;
padding: 10px;
border: 2px solid #ddd;
border-radius: 25px;
transition: width 0.4s ease-in-out;
}
.search-input:focus {
width: 200px;
outline: none;
}
.search-button {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
pointer-events: none;
}
响应式搜索框设计
创建适应不同屏幕尺寸的搜索框,使用媒体查询调整布局和大小。
.search-container {
width: 100%;
max-width: 600px;
margin: 0 auto;
}
.search-input {
width: 80%;
padding: 12px 20px;
font-size: 16px;
}
@media (max-width: 768px) {
.search-container {
width: 90%;
}
.search-input {
width: 70%;
padding: 10px 15px;
}
}
暗黑模式搜索框
为搜索框添加暗黑主题样式,通过CSS变量实现主题切换。

:root {
--search-bg: #fff;
--search-border: #ddd;
--search-text: #333;
}
.dark-mode {
--search-bg: #333;
--search-border: #555;
--search-text: #fff;
}
.search-input {
background-color: var(--search-bg);
border-color: var(--search-border);
color: var(--search-text);
}
.search-button {
color: var(--search-text);
}






