我在列表元素中有一个按钮,我想在按钮的开头显示一个图标,然后按钮文本和按钮的最右端,另一个图标和箭头。
.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
是否可被其他内容替换?我想要的只是 - 按钮开头的图标,接下来的文字,按钮末尾的箭头。
答案 0 :(得分:2)
你应该删除:在/之后的浮点数,用绝对位置替换浮点数,并在.btn-product上添加相对位置。
您可以根据需要自由放置图标(顶部;右侧;底部;左侧),但浏览器略有不同。
答案 1 :(得分:1)
答案 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;
}
答案 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;
}