我在按钮内放置了一个图标。要将图标与按钮右侧对齐,我在图标上使用float: right
。但正如您所看到的,这会导致Firefox上的图标溢出,因此我需要另一种解决方案。
float: left
不是一个选项这是图标和按钮的Sass
:
.icon-icomoon
font-family: 'icomoon' !important
speak: none
font-style: normal
font-weight: normal
font-variant: normal
text-transform: none
line-height: 1
-webkit-font-smoothing: antialiased
-moz-osx-font-smoothing: grayscale
.icon-arrow-right:before
content: "\e910"
.btn
border-radius: 0
padding: 20px 40px
font-weight: 600
font-family: $fontSansSerif
font-size: 1.9em
span.icon-arrow-right
float: right
font-size: 40px
.mobile-and-tablet-only
display: none
@media screen and (max-width: $mediaBreakpointTablet)
display: block
.desktop-only
display: none
@media screen and (min-width: $mediaBreakpointTablet+1)
display: block
以下是按钮的HTML
:
<a href="#" class="btn btn-success">
<span class="desktop-only">
Let's make something awesome together
<span class="icon-icomoon icon-arrow-right"></span>
</span>
<span class="mobile-and-tablet-only">
Let's work together
<span class="icon-icomoon icon-arrow-right"></span>
</span>
</a>
以下是Chrome浏览器中的内容:
这就是Firefox上的样子。如您所见,文本的宽度为100%,导致图标溢出:
答案 0 :(得分:2)
尝试提供a.btn
position:relative
,然后绝对定位span.icon-arrow-right
(position: absolute
)。然后,您可以通过向其添加right: 3%; top: 33%
来为箭头图标指定任何所需位置。
答案 1 :(得分:0)
您可以尝试在按钮内嵌块内部进行跨距(以防止跨越100%的按钮宽度)。另外,请不要忘记将clearfix用于浮动范围的父容器(.btn
)。
.btn {
text-align: center;
@include clearfix();
> span {
display: inline-block;
&.icon-icomoon {
float: right;
}
}
}
@mixin clearfix() {
&::after {
display: block;
content: "";
clear: both;
}
}
答案 2 :(得分:0)
你可以在你的范围内使用:after
btn {
position:relative;
}
span{
text-align:center;
}
span:after {
content: url(myicon.png);
}
通过这种方式,你不需要这个
<span class="icon-icomoon icon-arrow-right"></span>
或者您可以使用display:inline-block,以%为单位给出宽度。您也可以使用display:flex。
答案 3 :(得分:0)
喜欢这个。
span{
font-size:16px
}
img{
vertical-align:-15%;
}
<button>
<span>My Text</span>
<img src="https://rack.pub/media/bitcoin.png" height="16px" >
</button>