2017-06-22 57 views
2

我想將fa-youtube-play圖標的透明中間部分更改爲紅色。我試試這個代碼:如何將顏色添加到透明區域的字體棒圖標

.fa { 
 
    background-color: red; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<div> 
 
    <i class="fa fa-youtube-play fa-3x" aria-hidden="true"></i> 
 
</div>

但唱這代碼將重疊的圖標。我如何讓內部的透明顏色只有?

+2

也許只是給一個行高? [jsfiddle](https://jsfiddle.net/8quddpp1/1/) – Huelfe

+1

@Huelfe優雅 – Anthony

+0

你可以把包含圖標,而不是圖標本身的div的背景顏色? – Ortund

回答

6

universal means no。我擔心你必須單獨處理每個圖標。

.fa { 
 
    background-image: radial-gradient(at center, red 40%, transparent 40%); 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<div> 
 
    <i class="fa fa-youtube-play fa-3x" aria-hidden="true"></i> 
 
</div>

1

在CSS中使用clip屬性像這樣.fa { clip: rect(0px,0px,0px,0px); }。設置爲適合的值。但我相信這個屬性只適用於圖像。

1

正如你可以看到有很多方法可以做到這一點。解決這個問題的最簡單方法是添加line-height

div .fa { 
 
    background-color:red; 
 
    line-height: 22px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<div> 
 
    <i class="fa fa-youtube-play fa-3x" aria-hidden="true"></i> 
 
</div>

1

試試這個,

.fa{ 
     background-color:red; 
     line-height:25px; 
     width:40px; 
    } 
1

你甚至可以做,使用如下僞選擇:before,有點冗長的造型,但增加了背景是透明區域。

div { 
 
    display: inline-block; 
 
    position: relative; 
 
} 
 

 
div:before { 
 
    content: ""; 
 
    position: absolute; 
 
    background: red; 
 
    width: 30px; 
 
    height: 30px; 
 
    z-index: -1; 
 
    top: 10px; 
 
    left: 10px; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet" /> 
 
<div> 
 
    <i class="fa fa-youtube-play fa-3x" aria-hidden="true"></i> 
 
</div>

相關問題