草庐IT

HTML+CSS实现搜索框

南樂 2023-08-25 原文

HTML+CSS实现搜索框:

需求分析:

1、输入框焦点事件

onfocus:成为焦点, 点击输入框的时候,出现闪烁光标,此时可以输入内容。

onblur :失去焦点, 点击页面空白区域,光标消失。此时不可以输入内容。

2、获取元素

3、注册事件

onfocus:成为焦点, 点击输入框的时候,出现闪烁光标,此时可以输入内容

1)、显示ul

2)、自身边框改变 (通过新增search类名)

onblur :失去焦点, 点击页面空白区域,光标消失。此时不可以输入内容

1)、隐藏ul

2)、自身边框改变 (通过移除search类名)

代码内容:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    button,
    input {
        border: 0;
        outline: none;
    }

    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    ul {
        list-style: none;
    }

    .mi {
        position: absolute;
        left: 346px;
        top: 25px;
        width: 538px;
        height: 36px;
        border: 2px solid #b1191a;
    }

    .mi button {
        float: left;
        width: 80px;
        height: 33px;
        background-color: #b1191a;
        font-size: 16px;
        color: #fff;
    }

    .mi input {
        float: left;
        width: 454px;
        height: 33px;
        padding-left: 10px;
        padding: 0 10px;
        font-size: 14px;
        line-height: 48px;
        border: 1px solid #e0e0e0;
        outline: none;
        transition: all 0.3s;
    }

    .mi .search {
        border: 1px solid #b1191a;
    }

    .result-list {
        display: none;
        left: 0;
        top: 48px;
        width: 454px;
        border: 1px solid #b1191a;
        border-top: 0;
        background: #fff;
    }

    .result-list a {
        display: block;
        padding: 6px 15px;
        font-size: 12px;
        color: #424242;
        text-decoration: none;
    }

    .result-list a:hover {
        background-color: #eee;
    }
</style>
<body>
    <div class="mi">
        <input type="search" name="" id="" placeholder="请输入要的搜索商品">
        <button type="button">搜索</button>
        <ul class="result-list">
            <li><a href="#">全部商品</a></li>
            <li><a href="#">红米手机</a></li>
            <li><a href="#">小米14S</a></li>
            <li><a href="#">小米笔记本</a></li>
            <li><a href="#">小米家电</a></li>
            <li><a href="#">小米手机</a></li>
            <li><a href="#">云米空调</a></li>
            <li><a href="#">云米智能机器人</a></li>
        </ul>
    </div>
</body>
<script>
//1.获取元素
  let input = document.querySelector('input')
  let ul = document.querySelector('.result-list')
 
  //2.注册事件
  //onfocus:成为焦点, 点击输入框的时候,出现闪烁光标,此时可以输入内容
  input.onfocus = function(){
    console.log('点击了,出现光标了,此时可以输入文字')
  //(1)显示ul
    ul.style.display = 'block'
  //(2)自身边框改变 (通过新增search类名)
    this.classList.add('search')
  }
 
  //onblur :失去焦点, 点击页面空白区域,光标消失。此时不可以输入内容
  input.onblur = function(){
    console.log('点其他地方了,光标消失了,此时不可以输入文字')
  //隐藏ul
    ul.style.display = 'none'
  //自身边框改变 (通过移除search类名)
    this.classList.remove('search')
  }
</script>
</html>

效果如下:

有关HTML+CSS实现搜索框的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby - capybara field.has_css?匹配器 - 2

    我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No

  3. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  4. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  5. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  6. ruby-on-rails - Nokogiri:使用 XPath 搜索 <div> - 2

    我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll

  7. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  8. ruby-on-rails - capybara ::ElementNotFound:无法找到 xpath "/html" - 2

    我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'

  9. css - 用 watir 检查标签类? - 2

    我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes

  10. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

随机推荐