【问题标题】:How to hide the advanced search form using CSS and HTML?如何使用 CSS 和 HTML 隐藏高级搜索表单?
【发布时间】:2020-06-20 20:44:53
【问题描述】:

所以我遇到了这个很棒的Search Form。演示可以找到here。 我试图弄清楚如何隐藏高级搜索框,如下所示:

它不一定是错误,而是一些按钮,因此如果用户单击它,它将展开高级搜索。我似乎不知道该怎么做。

简化代码:

<div class="s009">
    <form>
        <div class="inner-form">
            <div class="basic-search">
                <div class="input-field">
                    <b-form-input v-model="search_text" id="search" placeholder="Type Keywords"></b-form-input>
                    <div class="icon-wrap">
                        <svg class="svg-inline--fa fa-search fa-w-16" fill="#ccc" aria-hidden="true" data-prefix="fas" data-icon="search" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
                        <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path>
                        </svg>
                    </div>
                </div>
            </div>
            <div class="advance-search">
                <span class="desc">ADVANCED SEARCH</span>
            </div>
        </div>
    </form>
</div>

是否可以为此建议一些 CSS/HTML 解决方案?

【问题讨论】:

  • .advance-search { display: none; } 将为您完成。 prnt.sc/rdhjal

标签: html css


【解决方案1】:

给我们更多信息。 如果您只想隐藏高级搜索框,请使用以下代码

.advance-search
{
       display: none;
}

使用 jQuery

您可以使用 jquery。如果您在 html 文件中使用添加 jQuery,则此代码有效

$('document').ready(() => {
        $('button').on('click', function () {
            $('.advance-search').css('display', 'none')
        })
})

【讨论】:

  • 对不起!我的意思是,我想添加一个按钮,如果单击该按钮会弹出高级搜索
  • 带jQuery还是不带jQuery?
  • 没有。如果有帮助,我会使用 Vue。
  • 好的,请稍等
  • 我认为在 Vue 中是不同的。这意味着 Vue 有特殊的语法。但是让我用纯 JavaScript 纯代码来实现这个
【解决方案2】:

这个answer 应该足够了。他们使用adjacent sibling selector 在焦点范围之外创建“按钮”。对于您的代码,它看起来像这样。

<div class="s009">
    <form>
        <div class="inner-form">
            <div class="basic-search">
                <div class="input-field">
                    <b-form-input v-model="search_text" id="search" placeholder="Type Keywords"></b-form-input>
                    <div class="icon-wrap">
                        <svg class="svg-inline--fa fa-search fa-w-16" fill="#ccc" aria-hidden="true" data-prefix="fas" data-icon="search" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
                        <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path>
                        </svg>
                    </div>
                </div>
            </div>
****        <span class="show">Show</span>
****        <span class="hide">hide</span>
            <div class="advance-search">
                <span class="desc">ADVANCED SEARCH</span>
            </div>
        </div>
    </form>
</div>

和css

span.show:focus ~ .advance-search{ display: none;}
span.hide:focus ~ .advance-search{ display: block;}

加两

根据您的问题,最初我试图仅使用 html/css 来执行此操作,但是您评论了使用 Vue。所以vue需要注意三点:

  1. 您可以将组件状态存储在data
  2. 您可以使用v-if 显示和隐藏元素
  3. 您可以使用v-on 更改事件的组件状态

所以你想存储数据show-advanced: false,然后在advance-search 上设置v-if='show-advanced'。除非将show-advance 设置为true,否则不会显示advance-search

<div class="advance-search" v-if='show'>...</div>
<script>
new Vue({
  ...
  data: {
    'show': false
  }
  ...
})
</script>

要创建一个切换按钮,您需要一个属性为 v-on:click="show=!show" 的按钮。

<button v-on:click="show=!show">Toggle</button>

把那个按钮放在你想要的任何地方,然后就可以了!

编辑
我有一个fiddle 工作,将show-advanced 更改为show,并修复了将v-bind 更改为v-on 的错误

【讨论】:

  • 你太棒了!谢谢你的详细解释。我试图在我的最后使用那个 css,但它并没有隐藏 css。您可以将搜索表单添加到您的小提琴中吗?
  • 我还不能完全解释这一点,但我会回复你的。 jsfiddle.net/0sg1jcfz
  • 如果我的回答是可以接受的,如果你点击那个大灰色,很快就会变成绿色,检查一下。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2014-10-17
  • 2019-02-03
  • 2018-11-02
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
相关资源
最近更新 更多