📜  引导模态搜索框 - Html (1)

📅  最后修改于: 2023-12-03 15:39:31.675000             🧑  作者: Mango

引导模态搜索框 - Html

在Web开发中,搜索框是必不可少的一部分。引导模态搜索框是一种常见的搜索框类型,它可以通过点击按钮或链接打开模态框,然后用户可以在模态框中输入搜索关键词进行搜索。

本文将介绍如何使用HTML和CSS实现引导模态搜索框。

HTML结构

首先,我们需要创建一个HTML结构来包含搜索框和模态框。

<div class="search-container">
  <form action="/search" method="get">
    <input type="text" placeholder="搜索...">
    <button type="submit"><i class="fa fa-search"></i></button>
  </form>
  <button id="search-modal-btn">高级搜索</button>
</div>

<div id="search-modal" class="modal">
  <div class="modal-content">
    <span class="modal-close">&times;</span>
    <h2>高级搜索</h2>
    <form action="/search" method="get">
      <input type="text" placeholder="关键字...">
      <input type="text" placeholder="作者...">
      <button type="submit">搜索</button>
    </form>
  </div>
</div>

如上代码所示,我们在一个div容器中包含了一个form表单,form表单包含了一个文本输入框和一个提交按钮,这就是我们的引导搜索框。后面,我们在容器中添加了一个按钮"高级搜索",它用于触发模态框。

模态框也被包含在一个div容器中,在模态框中,我们定义了一个模态框内容div和一个关闭按钮。

CSS样式

接下来,我们需要为我们的搜索框和模态框添加样式,让它们看起来更漂亮。

/* Search container */
.search-container {
  display: flex;
  justify-content: center;
}

.search-container form {
  position: relative;
  display: inline-block;
}

.search-container input[type=text] {
  padding: 10px;
  border: none;
  border-radius: 2px 0 0 2px;
  width: 70%;
  font-size: 17px;
}

.search-container button[type=submit] {
  padding: 10px;
  background-color: #4CAF50;
  color: white;
  border: none;
  border-radius: 0 2px 2px 0;
  cursor: pointer;
}

/* Modal */
.modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgb(0,0,0);
  background-color: rgba(0,0,0,0.4);
}

.modal-content {
  background-color: #fefefe;
  margin: 15% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

.modal-close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.modal-close:hover, .modal-close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

以上样式给我们的搜索框和模态框添加了一些漂亮的样式,主要做了以下工作:

  • Search container的样式: 使搜索框和高级搜索按钮变为一行;
  • input[type=text]的样式:改变文本框边框和样式;
  • button[type=submit]的样式: 改变提交按钮的样式;
  • Modal的样式: 定义了导航栏的基本样式;
  • Modal-close的样式:定义关闭按钮的样式;
JS交互

最后,我们需要添加一些JavaScript来激活我们的模态框。

var modalBtn = document.getElementById("search-modal-btn");
var modal = document.getElementById("search-modal");
var modalClose = document.getElementsByClassName("modal-close")[0];

modalBtn.onclick = function() {
  modal.style.display = "block";
}

modalClose.onclick = function() {
  modal.style.display = "none";
}

window.onclick = function(event) {
  if (event.target == modal) {
    modal.style.display = "none";
  }
}

以上代码会为我们的高级搜索按钮和关闭按钮添加点击事件,并且可以通过点击模态框外的任何地方来关闭模态框。

通过以上代码片段, 你可以在HTML中创建引导模态的搜索框。当用户点击高级搜索按钮时,模态框会打开,用户可以在其中输入不同的搜索参数。