【问题标题】:Bootstrap's Help Block with icon messes up the form带有图标的引导程序帮助块弄乱了表格
【发布时间】:2016-02-25 03:47:14
【问题描述】:

我正在使用来自 Bootsnip 的 css,它运行良好,但是,当我尝试添加带有图标的帮助块时,它无法按预期工作。

没有图标的帮助块(输入后添加以下代码):

<label class="help-block">* Required Field</label>

带图标的帮助块(输入后添加以下代码):

<label class="help-block glyphicon glyphicon-info-sign">* Required Field</label>

在 css 内部,它确实清除了浮动,所以不知道为什么它仍然搞砸了。

.icon-addon:after { clear: both; }

【问题讨论】:

  • 我不明白。我分叉了 bootsnip,它工作正常
  • @DaMaxContent 我的代码(上面提供的)不在 Bootsnipp 链接中,因为我在那里没有帐户,所以上面的代码必须手动添加到 html 部分。
  • 看看我的回答。我发现了问题

标签: html css twitter-bootstrap icons


【解决方案1】:

我想通了。您将标签放置在输入字段之后。这是错误的。您需要将标签放在&lt;div class="icon-addon ... " ... &gt; ... &lt;/div&gt; 元素之后。

给你看:(JSFiddle)

.center-block {
    float: none;
    margin-left: auto;
    margin-right: auto;
}

.input-group .icon-addon .form-control {
    border-radius: 0;
}

.icon-addon {
    position: relative;
    color: #555;
    display: block;
}

.icon-addon:after,
.icon-addon:before {
    display: table;
    content: " ";
}

.icon-addon:after {
    clear: both;
}

.icon-addon.addon-md .glyphicon,
.icon-addon .glyphicon, 
.icon-addon.addon-md .fa,
.icon-addon .fa {
    position: absolute;
    z-index: 2;
    left: 10px;
    font-size: 14px;
    width: 20px;
    margin-left: -2.5px;
    text-align: center;
    padding: 10px 0;
    top: 1px
}

.icon-addon.addon-lg .form-control {
    line-height: 1.33;
    height: 46px;
    font-size: 18px;
    padding: 10px 16px 10px 40px;
}

.icon-addon.addon-sm .form-control {
    height: 30px;
    padding: 5px 10px 5px 28px;
    font-size: 12px;
    line-height: 1.5;
}

.icon-addon.addon-lg .fa,
.icon-addon.addon-lg .glyphicon {
    font-size: 18px;
    margin-left: 0;
    left: 11px;
    top: 4px;
}

.icon-addon.addon-md .form-control,
.icon-addon .form-control {
    padding-left: 30px;
    float: left;
    font-weight: normal;
}

.icon-addon.addon-sm .fa,
.icon-addon.addon-sm .glyphicon {
    margin-left: 0;
    font-size: 12px;
    left: 5px;
    top: -1px
}

.icon-addon .form-control:focus + .glyphicon,
.icon-addon:hover .glyphicon,
.icon-addon .form-control:focus + .fa,
.icon-addon:hover .fa {
    color: #2580db;
}
<!--LIBRARIES USED BY BOOTSNIP:-->
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<!--REQUIRED LIBRARY USED BY BOOTSNIP:-->
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="form-group">
  <div class="icon-addon addon-lg">
    <input type="text" placeholder="Email" class="form-control" id="email"><label for="email" class="glyphicon glyphicon-search" rel="tooltip" title="email"></label>
  </div>
  
  <!--HERE:-->
  <!--HERE:-->

  <div align="left">
    <label class="help-block glyphicon glyphicon-info-sign">*<span style="font-family:Arial"> This is a Required Field (align="left")</span></label>
  </div>
  
  <!--HERE:-->
  <!--HERE:-->
  
  <div class="icon-addon addon-lg">
    <input type="text" placeholder="Email" class="form-control" id="email"><label for="email" class="glyphicon glyphicon-search" rel="tooltip" title="email"></label>
  </div>
  
  <!--HERE:-->
  <!--HERE:-->

  <div align="center">
    <label class="help-block glyphicon glyphicon-info-sign">*<span style="font-family:Arial"> This is a Required Field (align="center")</span></label>
  </div>
  
  <!--HERE:-->
  <!--HERE:-->
  
  <div class="icon-addon addon-lg">
    <input type="text" placeholder="Email" class="form-control" id="email">

    <!--NOT HERE:-->
    <!--NOT HERE:-->
    <!--NOT HERE:-->
    
    <label for="email" class="glyphicon glyphicon-search" rel="tooltip" title="email"></label>
  </div>
  
  <!--HERE:-->
  <!--HERE:-->

  <div align="right">
    <label class="help-block glyphicon glyphicon-info-sign">*<span style="font-family:Arial"> This is a Required Field (align="right")</span></label>
  </div>
  
  <!--HERE:-->
  <!--HERE:-->
  
</div>

【讨论】:

  • 当我尝试这样做时,它对我来说不能正常工作,但它现在似乎可以工作了。但是,标签文本似乎被设置为表单控制,因为它被拉伸了。 jsfiddle.net/ishq786/t2stkygL/4另外,如果下面的输入框比较多,当帮助块设置为向右拉时,又会变得乱七八糟:jsfiddle.net/ishq786/t2stkygL/5
  • @Ali 修复了代码。对于这种情况,您需要将标签嵌套在 div 中以调整对齐属性(例如align="right")。您还需要添加一个带有自己字体的跨度(我使用了Arial,因为间距是由于 bootsnip 使用的字体。
  • 右对齐成功了!知道为什么 * 会这样出现吗?只是 help-block 处理它的方式还是其他原因?很快就会接受您的回答。
  • 是的。它是字体样式:'Glyphicons Halflings'。该字体也是尴尬的字间距的原因。这就是使图标成为可能的原因。显然,它不应该用于普通文本。我把 * 留给了字体,因为我觉得它看起来不错
  • 明白。谢谢您的帮助!投反对票的原因是什么?
【解决方案2】:

这会有所帮助

<label class="help-block"><span class="glyphicon glyphicon-info-sign"></span>* Required Field</label>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2021-04-22
    • 2021-04-28
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多