Float:右边在Firefox中添加了一个新行

时间:2017-03-24 08:11:57

标签: html css twitter-bootstrap firefox

我在列表元素中有一个按钮,我想在按钮的开头显示一个图标,然后按钮文本和按钮的最右端,另一个图标和箭头。

.btn-product {
  text-align: left;
  width: 100%;
  background-color: #FEC006;
  border-bottom: 4px solid #FE9700;
  border-top: 1px solid rgba(82, 174, 110, 0.6);
  border-left: 2px solid rgba(254, 163, 0, 0.77);
  border-right: 0;
  border-radius: 8px;
  color: #333;
  font-size: 18px;
  padding-right: 5px;
  margin-top: 11px;
}

.btn-product:hover,
.btn-product:focus {
  background-color: #fff;
  color: #555;
}

a.product-ic::before {
  font-family: fontAwesome;
  content: "\f19c\00a0";
  float: left;
}

.btn-product::after {
  font-family: fontAwesome;
  content: "\f054\00a0";
  float: right;
}
<li>
  <a class="btn btn-default btn-product product-ic" href="#service" role="button">Advisors</a>
</li>

Chrome就像我预期的那样显示了这一点,但Firefox将箭头向下移动到下一行。

在Chrome上

在Firefox上

我读到这个问题是因为white-space: nowrap

我没有信心从Bootstrap CSS中移除该行,担心它会如何影响其余元素(此时没有明显的负面影响或关闭该行)。

有没有什么方法可以让我的按钮看起来就像现在在chrome上看起来一样,在其他任何地方呢? float: right是否可被其他内容替换?我想要的只是 - 按钮开头的图标,接下来的文字,按钮末尾的箭头。

6 个答案:

答案 0 :(得分:2)

你应该删除:在/之后的浮点数,用绝对位置替换浮点数,并在.btn-product上添加相对位置。

您可以根据需要自由放置图标(顶部;右侧;底部;左侧),但浏览器略有不同。

答案 1 :(得分:1)

为箭头添加position: absolute

看看是否有效

https://jsfiddle.net/7w2jyur4/4/这是我用你的代码制作的小提琴。

答案 2 :(得分:0)

尝试不浮动。也许与position

一个小例子:

* {
  box-sizing:border-box;
}
ul, li {
  list-style: none;
}
.btn-product{
  text-align: left;
    width: 100%;
    background-color: #FEC006;
    border-bottom: 4px solid #FE9700;
    border-top: 1px solid rgba(82, 174, 110, 0.6);
    border-left: 2px solid rgba(254, 163, 0, 0.77);
    border-right: 0;
    border-radius: 8px;
    color: #333;
    font-size: 18px;
    padding-right: 5px;
    margin-top: 11px;
    position: relative;
    display: block;
    padding: 5px 5px 5px 30px;
    text-decoration: none;
}
.btn-product:hover,
.btn-product:focus {
    background-color: #fff;
    color: #555;
}
 a.product-ic::before{
  font-family: fontAwesome;
  content: "\f19c\00a0";
  position: absolute;
  left: 5px;
  top: 6px;
}
.btn-product::after{
  font-family: fontAwesome;
  content: "\f054\00a0";
  position: absolute;
  right: 5px;
  top: 6px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<ul>
  <li>
    <a class="btn btn-default btn-product product-ic" href="#service" role="button">Advisors</a> 
  </li>
</ul>

或者您可以尝试使用Flexbox

* {
  box-sizing:border-box;
}
ul, li {
  list-style: none;
}
.btn-product{
  text-align: left;
    width: 100%;
    background-color: #FEC006;
    border-bottom: 4px solid #FE9700;
    border-top: 1px solid rgba(82, 174, 110, 0.6);
    border-left: 2px solid rgba(254, 163, 0, 0.77);
    border-right: 0;
    border-radius: 8px;
    color: #333;
    font-size: 18px;
    padding-right: 5px;
    margin-top: 11px;
    padding: 5px;
    text-decoration: none;
    
    
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.btn-product:hover,
.btn-product:focus {
    background-color: #fff;
    color: #555;
}
 a.product-ic::before{
  font-family: fontAwesome;
  content: "\f19c\00a0";
}
.btn-product::after{
  font-family: fontAwesome;
  content: "\f054\00a0";
  
  
  margin-left: auto;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<ul>
  <li>
    <a class="btn btn-default btn-product product-ic" href="#service" role="button">Advisors</a> 
  </li>
</ul>

答案 3 :(得分:0)

你可以在你的按钮html中添加一个额外的元素吗?

<li >
    <a class="btn btn-default btn-product product-ic" href="#service" role="button">
        <span class="product-ic-label">Advisors</span>
    </a>
</li>

CSS:

.btn-product{
    text-align: left;
    width: 100%;
    background-color: #FEC006;
    border-bottom: 4px solid #FE9700;
    border-top: 1px solid rgba(82, 174, 110, 0.6);
    border-left: 2px solid rgba(254, 163, 0, 0.77);
    border-right: 0;
    border-radius: 8px;
    color: #333;
    font-size: 18px;
    padding-right: 5px;
    margin-top: 11px;
}
.btn-product:hover,
.btn-product:focus {
    background-color: #fff;
    color: #555;
}
 a.product-ic::before{
  font-family: fontAwesome;
  content: "\f19c\00a0";
  float:left;
}
 a.product-ic>.product-ic-label:before{
  font-family: fontAwesome;
  content: "\f054\00a0";
  float:right;
}

这是小提琴:https://jsfiddle.net/7w2jyur4/6/

答案 4 :(得分:0)

.btn-product{
    display: flex;
}
.btn-product::after{
   margin-left: auto;
}

答案 5 :(得分:0)

也可以使用此备用:

ul{
  margin: 0;
  padding: 0;
  list-style: none;
}
.btn-product {
  text-align: left;
  width: 100%;
  background-color: #FEC006;
  border-bottom: 4px solid #FE9700;
  border-top: 1px solid rgba(82, 174, 110, 0.6);
  border-left: 2px solid rgba(254, 163, 0, 0.77);
  border-right: 0;
  border-radius: 8px;
  color: #333;
  font-size: 18px;
  padding-right: 5px;
  margin-top: 11px;
  position: relative;
  padding-right: 50px;
}

.btn-product:hover,
.btn-product:focus {
  background-color: #fff;
  color: #555;
}

a.product-ic::before {
  font-family: fontAwesome;
  content: "\f19c\00a0";
  float: left;
}

.btn-product::after {
  font-family: fontAwesome;
  content: "\f054\00a0";
  position: absolute;
  top: 8px;
  right: 15px;

}