html怎么制作漂亮的搜索框

在网页设计中,搜索框是一个非常重要的元素,它可以帮助用户快速找到他们需要的信息,一个漂亮的搜索框不仅可以提高用户体验,还可以提升网站的整体美观度,如何用HTML制作一个漂亮的搜索框呢?本文将为您详细介绍。

html怎么制作漂亮的搜索框

1、使用HTML和CSS创建基本搜索框

我们需要使用HTML创建一个基本的搜索框,这里我们使用<input>标签来创建一个文本输入框,并为其添加type="search"属性以表示这是一个搜索框,我们还需要为搜索框添加一个placeholder属性,以便在用户未输入任何内容时显示提示信息。

<form action="/search" method="get">
  <input type="search" name="q" placeholder="请输入关键词">
  <input type="submit" value="搜索">
</form>

接下来,我们可以使用CSS对搜索框进行美化,我们可以设置搜索框的宽度、高度和边框样式,我们可以为搜索框添加一些阴影效果,使其看起来更加立体,我们可以为搜索按钮设置背景颜色、边框样式和文字样式。

/* 搜索框样式 */
input[type="search"] {
  width: 300px;
  height: 32px;
  padding: 4px;
  border: 1px solid ccc;
  border-radius: 24px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
/* 搜索按钮样式 */
input[type="submit"] {
  background-color: 4CAF50;
  color: white;
  border: none;
  border-radius: 24px;
  padding: 6px 12px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
  margin-left: 10px;
}

2、使用JavaScript实现搜索框自动完成功能

为了提高用户体验,我们可以为搜索框添加自动完成功能,这里我们使用JavaScript来实现这个功能,我们需要获取所有可能的搜索建议,并将它们存储在一个数组中,我们需要监听搜索框的输入事件,当用户输入内容时,我们将根据输入的内容筛选出相关的搜索建议,并将它们显示在搜索框下方。

// 获取所有可能的搜索建议
const suggestions = ["苹果", "香蕉", "橙子", "葡萄", "柠檬"];
// 获取搜索框元素
const searchInput = document.querySelector("input[type='search']");
const suggestionList = document.querySelector(".suggestion-list");
// 监听搜索框的输入事件
searchInput.addEventListener("input", () => {
  // 根据输入的内容筛选出相关的搜索建议
  const inputValue = searchInput.value.trim().toLowerCase();
  const filteredSuggestions = suggestions.filter((suggestion) =>
    suggestion.toLowerCase().startsWith(inputValue)
  );
  // 清空搜索建议列表并显示新的搜索建议
  suggestionList.innerHTML = "";
  filteredSuggestions.forEach((suggestion) => {
    const listItem = document.createElement("li");
    listItem.textContent = suggestion;
    listItem.addEventListener("click", () => {
      searchInput.value = suggestion;
      suggestionList.style.display = "none";
    });
    suggestionList.appendChild(listItem);
    suggestionList.style.display = "block";
  });
});

3、使用CSS实现搜索框动画效果

为了使搜索框看起来更加生动有趣,我们可以为其添加一些动画效果,这里我们使用CSS的@keyframes规则来定义一个名为slideIn的动画,该动画将在用户将鼠标悬停在搜索框上时触发,我们还需要为搜索建议列表添加一个名为fadeIn的动画,该动画将在用户点击某个搜索建议时触发。

/* slideIn动画 */
@keyframes slideIn {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}
/* fadeIn动画 */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

接下来,我们需要将这些动画应用到相应的元素上,我们需要为搜索框添加一个hover伪类选择器,以便在用户将鼠标悬停在其上时触发slideIn动画,我们需要为搜索建议列表添加一个animation属性,以便在用户点击某个搜索建议时触发fadeIn动画。

/* 应用slideIn动画 */
input[type="search"]:hover + .suggestion-list {
  animation: slideIn ease-in-out forwards; /* forwards表示动画结束后保持最后一帧的状态 */
}

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/337619.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-02-28 18:16
Next 2024-02-28 18:20

相关推荐

  • btn按钮怎么写html

    在HTML中,按钮元素通常使用&lt;button&gt;标签来创建。&lt;button&gt;标签是一个交互式控件,它为用户提供了一种通过点击或触摸来执行操作的方式,按钮可以用于提交表单,触发JavaScript函数等。以下是一个简单的HTML按钮示例:&lt;!DOCTYPE html&a……

    2024-03-17
    0240
  • 如何实现A链接调用JavaScript方法?

    ### 标题:HTML中的a链接调用JavaScript方法在现代网页开发中,通过超链接(``标签)调用JavaScript函数是一种常见的交互方式,它能够增强用户体验并实现复杂的功能,本文将深入探讨如何在HTML中使用``标签来调用JavaScript方法,包括基本用法、参数传递以及结合CSS进行样式美化等方……

    2024-11-18
    02
  • js html怎么加入图片

    在HTML中加入图片是一项基本而重要的任务,这不仅可以美化网页,也有助于传达更丰富的信息,下面是如何在HTML中使用JavaScript来插入和操作图片的详细指南。基础的HTML图片标签要在HTML页面中添加图片,我们使用&lt;img&gt;标签,这个标签有一个必需的属性叫做src,它指定图片文件的位置,还有一些其他……

    2024-04-10
    0103
  • html data-v

    HTML数据是用于在网页中嵌入和显示数据的标记,它提供了一种将数据与网页内容相结合的方式,使得网页可以更加动态和交互式,HTML数据可以通过多种方式使用,包括嵌入图像、视频、音频等多媒体内容,以及嵌入表格、列表等结构化数据。嵌入图像HTML数据可以用于嵌入图像,通过&lt;img&gt;标签来实现。&lt;im……

    2024-03-22
    0156
  • html文字行高怎么设置

    在HTML中,我们可以通过CSS来设置文字行高,文字行高是指文本中每行文字的高度,通常以像素(px)为单位,设置文字行高的方法有很多,下面我们将详细介绍几种常用的方法。1、使用line-height属性line-height属性是最常用的设置文字行高的方法,它可以直接设置元素内文本的行高,包括其嵌套元素。line-height属性的值……

    2024-03-12
    0116
  • 如何实现点击a标签时弹出JavaScript弹框?

    使用a标签实现JS弹框功能在网页开发中,我们经常需要通过点击链接(<a> 标签)来弹出提示框,以提醒用户某些信息,这可以通过JavaScript来实现,以下是如何使用a 标签和 JavaScript 实现弹框功能的详细步骤及代码示例,1. 基本HTML结构我们需要创建一个基本的HTML页面结构,包括……

    2024-11-19
    05

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入