如何在 Bootstrap 3 中使 <i> 标记成为 HREF?

Posted

技术标签:

【中文标题】如何在 Bootstrap 3 中使 <i> 标记成为 HREF?【英文标题】:How to make an <i> tag an HREF on Bootstrap3? 【发布时间】:2015-07-10 09:24:16 【问题描述】:

我正在使用 Bootstrap 3.3.4 版,我正在尝试制作一个搜索表单,但是,为了让我的搜索字形图标进入我的搜索栏,我需要使用标签,这是我的代码目前正在使用:

<form id="searchform" method="get" action="/search/" class="navbar-form navbar-right">
        <div>
          <div class="right-inner-addon>
             <a href="#" onclick="document.getElementById('searchform').submit();" ><i class=" glyphicon glyphicon-search"></i></a>
              <input id="query" name="query" type="search" class="form-control searchbox" placeholder="Search" />
        </div>
      </div>
    </form>

至于 Css,除了所有的引导程序,我只使用这个服装:

.searchbox 
    border-radius: 20px;
    height: 25px;
    margin-top: 5px;

尽管当点击进入搜索栏时,由于某种原因,字形搜索不会作为按钮工作,因此用户也可以选择点击它来完成他们的搜索。 有任何想法吗 ? :S

【问题讨论】:

假设你不能在这里使用&lt;image type="image" src="yourglyph.png" alt="submit" /&gt; 请提供有关此问题的 JSFiddle。 在按钮内使用span&lt;button class="btn btn-default" type="button"&gt;&lt;span class="glyphicon glyphicon-search" aria-hidden="true"&gt;&lt;/span&gt;&lt;/button&gt; 这个.searchbox 元素在哪里?不能作为按钮工作是什么意思?你看到字形了吗?点击它不起作用吗? 【参考方案1】:

您在&lt;div class="right-inner-addon&gt; 之后缺少关闭",这导致您的其余代码无法正确呈现。像这样修复你的代码:

<form id="searchform" method="get" action="/search/" class="navbar-form navbar-right">
  <div>
    <div class="right-inner-addon">
      <a href="#" onclick="document.getElementById('searchform').submit();" ><i class=" glyphicon glyphicon-search"></i></a>
      <input id="query" name="query" type="search" class="form-control searchbox" placeholder="Search" />
    </div>
  </div>
</form>

而且效果很好。

检查这个Bootply。

始终尝试使用带有语法高亮的 IDE(Netbeans、Visual Studio 等);这个问题会立即被发现。

编辑

由于在搜索栏中使用图标会否定点击它的能力,我建议使用分段按钮(因为我无法找到一种方法来捕获图标上的点击事件而不是输入) .下面是代码:

<form id="searchform" method="get" action="/search/" class="navbar-form navbar-right">
  <div>
    <div class="input-group">
      <input class="form-control" placeholder="Search" type="text">
      <span class="input-group-btn">
        <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
      </span>
    </div>
  </div>
</form>

还有一个Bootply。

【讨论】:

赢家鸡肉晚餐。 据我所知,它不应该用作提交按钮。您必须按 Enter 才能提交表单。 这就是我想要做的 - 字形图标已经在里面,我也想让它提交,即使使用 标签也不会显示 href 手,但如果我删除 标记 glyphicon-search 不会留在里面 是的,我看到了。我不认为它会,因为这样使用时它不会被视为&lt;a&gt; 标签。当您单击它时,焦点转到输入,我没有看到捕获单击事件的方法。 可能是分段输入?你反对改变搜索栏的外观/风格吗?【参考方案2】:

我的标准猜测是基于一个假设,因为我没有你的代码的工作版本。

锚标记通常不会自行设置特定的高度或宽度。您的锚标签很可能没有宽度或高度,而您的图标有。

通过右键单击图标并选择检查元素来打开浏览器的开发工具。您应该可以从那里解决问题。

【讨论】:

【参考方案3】:

我的猜测。如果这不起作用将是 z 索引。我的手机上没有萤火虫,但无论如何,如果你将鼠标悬停在它上面,它只会突出显示搜索栏吗?或者你能突出显示图标吗?如果您不能...在您的 CSS 中将表单的 Z-index 更改为

#YourFormID
    Z-index: 1;

然后为图标做

#yourIconID
    Z-index: 100;

这会将图标放在表单顶部,就像 Photoshop 文档中的图层一样。如果还是不行,我今晚会在我的电脑上再试一次。但如果其他人说的都不起作用……这可能是你的问题。

【讨论】:

是的,我最初想到了 Z-index,但似乎没有这样做。 好吧,是的,如果今晚没有人弄清楚,我会在我的电脑上查看它并尝试为你弄清楚。 嗨,是的,我已经尝试过了,但没有成功,我选择了 Tim 的答案,但在移动设备上它看起来是有线的:/

以上是关于如何在 Bootstrap 3 中使 <i> 标记成为 HREF?的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 3:如何在导航栏中使下拉链接的头部可点击

如何在 bootstrap 3 导航栏中使 select2 v4 搜索框响应?

在引导程序中使列固定位置

如何在 IE7 中使空的锚标记可点击?

如何在 python 3.5 中使对象可等待?

如何在 bootstrap 3.0 中使用字形图标