在twitter bootstrap 2中添加提交按钮的图标

AyK*_*rsi 223 twitter-bootstrap twitter-bootstrap-2

我想在表单输入提交按钮上使用twitter bootstrap图标.

http://twitter.github.com/bootstrap/base-css.html#icons上的示例主要显示样式化的超链接.

我最接近的是获得按钮旁边的图标,但不是内部.

<div class="input-prepend">
   <span class="add-on"><i class="icon-user icon-white"></i></span>
   <input type="submit" class="btn-primary" value="Login" >
</div>
Run Code Online (Sandbox Code Playgroud)

Sim*_*ham 388

您可以使用按钮标记而不是输入

<button type="submit" class="btn btn-primary">
  <i class="icon-user icon-white"></i> Sign in
</button>
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但请参阅http://www.w3schools.com/tags/tag_button.asp,了解有关按钮标记的含义及其跨浏览器效果的更多信息.请谨慎使用,尤其是表格. (12认同)
  • 我已经在Chrome,Firefox,Safari(在win7上)和IE8内的<form>标签中成功地将其作为提交按钮进行了测试 (10认同)
  • 我使用这种方法的唯一问题是如果表单中有其他按钮,那么当按下键盘上的回车键时,您的表单将不会提交,因为其他按钮之一将优先.任何已知的解决方法? (4认同)
  • 这正是我在做的事情.但是,在我添加到`<i>`标签后,图标没有出现.它非常令人发狂,直到我发现我需要清除缓存.如果你遇到同样的问题,伙计们,点击"Ctrl + F5"清除缓存并刷新,看到光荣的图标! (2认同)
  • 我需要添加`onClick ="submit();"` (2认同)

Chr*_*ael 66

我认为您可以为此目的使用标签标签.以下是twitter bootstrap HTML导航栏的示例:

<form class="navbar-search">
    <input type="text" class="search-query" placeholder="Search here" />        
    <label for="mySubmit" class="btn"><i class="icon-search icon-white"></i> Search me</label>
    <input id="mySubmit" type="submit" value="Go" class="hidden" />
</form>
Run Code Online (Sandbox Code Playgroud)

基本上你得到输入的标签元素(type = submit),然后隐藏实际的输入提交.用户可以单击标签元素,仍然可以使用表单提交.

  • 这对我来说是两全其美的.你得到你想要的风格,并没有使用链接或JavaScript. (9认同)

pen*_*izt 14

我想你应该试试这个FontAwesome设计用于Twitter Bootstrap.

<button class="btn btn-primary icon-save">Button With Icon</button>
Run Code Online (Sandbox Code Playgroud)


小智 11

您可以在某处添加带有图标的<a/>,并将JavaScrit操作绑定到它,提交表单.如有必要,原始提交按钮的名称+值的名称和值可以在隐藏属性中.使用jQuery很容易,请允许我避免使用纯JavaScript版本.

假设这是原始形式:

<form method="post" id="myFavoriteForm>
   ...other fields...
   <input class="btn btn-primary" type="submit" name="login" value="Let me in" />
</form>
Run Code Online (Sandbox Code Playgroud)

像这样改变它:

<form method="post" id="myFavoriteForm">
   ...other fields...
   <a href="#" class="btn btn-primary" id="myFavoriteFormSubmitButton">
      <i class="icon-user icon-white"></i>&nbsp;Let me in
   </a>
</form>
Run Code Online (Sandbox Code Playgroud)

...然后是神奇的jQuery:

$("#myFavoriteFormSubmitButton").bind('click', function(event) {
   $("#myFavoriteForm").submit();
});
Run Code Online (Sandbox Code Playgroud)

或者,如果您想确保用户可以随时提交表单 - 这就是我将要做的 - 您可以在表单中保留正常的提交按钮,并使用jQuery .hide()隐藏它.它确保登录仍然可以在没有JavaScript和jQuery的情况下根据正常的提交按钮(有人使用链接,w3m和类似的浏览器),但如果可能的话,提供带有图标的花哨按钮.


Jus*_*tin 8

使用bootstrap 3有一种新的方法:

<button type="button" class="btn btn-default btn-lg">
  <span class="glyphicon glyphicon-star"></span> Star
</button>
Run Code Online (Sandbox Code Playgroud)

它位于"如何使用"下的bootstrap glyphicons页面上:


Bre*_*ers 7

我想将Twitter Bootstrap图标转换为基本的Rails表单,并且发现了这篇文章.经过一番搜索后,我想出了一个简单的方法.不确定你是否使用Rails,但这是代码.关键是将一个块传递给link_to查看帮助器:

<tbody>
    <% @products.each do |product| %>
      <tr>
        <td><%= product.id %></td>
        <td><%= link_to product.name, product_path(product) %></td>
        <td><%= product.created_at %></td>
        <td>
          <%= link_to(edit_product_path(product), :class => 'btn btn-mini') do %>
          Edit <i class="icon-pencil"></i>
          <% end %>

          <%= link_to(product_path(product), :method => :delete, :confirm => 'Are you sure?', :class => 'btn btn-mini btn-danger') do %>
          Delete <i class="icon-trash icon-white"></i>
          <% end %>
        </td>
      </tr>
    <% end %>
  </tbody>
</table>

<%= link_to(new_product_path, :class => 'btn btn-primary') do %>
    New <i class="icon-plus icon-white"></i>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果你不使用Rails,这里是带有图标的链接的输出HTML(用于编辑,删除和新的提交按钮)

# Edit
<a href="/products/1/edit" class="btn btn-mini">Edit <i class="icon-pencil"></i></a>

# Delete
<a href="/products/1" class="btn btn-mini btn-danger" data-confirm="Are you sure?" data-method="delete" rel="nofollow"> Delete <i class="icon-trash icon-white"></i></a>

# New
<a href="/products/new" class="btn btn-primary">New <i class="icon-plus icon-white"></i></a>
Run Code Online (Sandbox Code Playgroud)

这里是完成结果截图的链接:http: //grab.by/cVXm

  • 那么当搜索引擎抓取您的网站时会发生什么,看到一个名为"删除"的链接,决定"哦,我想我会关注该链接"并开始弄乱您的数据库?我总是被告知,由于这个原因,应该始终使用非GET操作执行更改. (2认同)
  • 关于主题,因为OP没有询问有关rails但是......当通过不显眼的javascript集成这种超链接时,Rails确实使用了删除方法.如果有人要直接请求该链接,则默认为显示该记录,而不是删除它.有关更多详细信息,请参阅此答案:http://stackoverflow.com/a/2809412/252290 (2认同)

iii*_*iic 6

有一种方法,如何获得(bootstrap的)glyphicons input type="submit".使用css3多个背景.

HTML:

<form class="form-search">
   …
   <input type="submit" value="Search">
</form>
Run Code Online (Sandbox Code Playgroud)

和CSS:

.form-search input[type="submit"] {
    padding-left:16px; /* space for only one glyphicon */
    background:-moz-linear-gradient(top,#fff 0%,#eee 100%) no-repeat 16px top,
        url(../images/glyphicons-halflings.png) no-repeat -48px 0,
        -moz-linear-gradient(top,#fff 0%,#eee 100%); /* FF hack */
    /* another hacks here  */
    background:linear-gradient(to bottom,#fff 0%,#eee 100%) no-repeat 16px top,
        url(../images/glyphicons-halflings.png) no-repeat -48px 0,
        linear-gradient(to bottom,#fff 0%,#eee 100%); /* Standard way */
}
Run Code Online (Sandbox Code Playgroud)

如果多个背景重叠,则顶部将是background:符号的第一个背景.所以在顶部是16px从左侧缩进的背景(16px是单个glyphicon的宽度),在底层是整体glyphicons-halflings.png,在底层(覆盖整个元素)是与顶层相同的背景渐变.

-48px 0px是搜索图标(icon-search)的剪切,但很容易显示任何其他图标.

如果有人需要:hover效果,则必须再次以相同的形式输入背景.