2016-02-23 19 views
9

CSS ile aşağıdaki etkiye ulaşmak istiyoruz:Yazı müthiş yüzde genişlik yığılmış simgesi

enter image description here

Bu yıldız simgesi bir yazı tipidir. Turuncu arkaplanın genişliğini yüzdelerle tanımlamak istiyorum, bu yüzden% 50'si yıldızın mükemmel yarısı olmalı.

<div class="container"> 
    <span class="star star-under fa fa-star"></span> 
    <span class="star star-over fa fa-star"></span> 
</div> 

ve:

.container 
{ 
    font-size: 200px; 
    height: 300px; 
    position: relative; 
    width: 100%; 
} 

.star 
{ 
    display: inline-block; 
    left: 0; 
    position: absolute; 
    top: 0; 
} 

.star-under 
{ 
    color: #ddd; 
} 

.star-over 
{ 
    color: #f80; 
    overflow: hidden; 
    width: 30%; 
} 

Sorun genişliğinin% kullanmak için genişlik ve yükseklik sağlamak için ihtiyaç vardır Şimdilik

, aşağıdaki yaptı. Ve ben de, içeriğin genişliğini ve yüksekliğini atlarsam, hiçbir şey göstermez, çünkü kesinlikle konumlandırılmış çocuklar içerir.

Bu,% değeri sunucu tarafında hesaplanır, bu yüzden ziyade böyle satır içi tutardik:

<span class="star star-over fa fa-star" style="width: 62%;"></span> 

Bunu yapmanın en esnek yolu nedir? En esnek olarak, herhangi bir genişlik veya yükseklik sağlamak için gerekli olanı kastediyorum.

+0

https://jsfiddle.net/vco9r2rt/3/ müthiş, ama bu genişlik inline yapmak gerekir –

+0

@Moogs - bu benim sunucu komut hesaplanır. Tabii CSS'yi HTML dosyama koyabilirdim, ama bundan kaçınmak isterim. –

+0

https://jsfiddle.net/vco9r2rt/4/ –

cevap

3

Konteyneri display:inline-block olarak ayarlayabilir ve sadece üst simgeyi position:absolute olarak ayarlayabilirsiniz.

.container { 
 
    font-size: 200px; 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 
.star-under { 
 
    color: #ddd; 
 
    vertical-align: top; 
 
} 
 
.star-over { 
 
    color: #f80; 
 
    position: absolute; 
 
    left: 0; 
 
    top: 0; 
 
    width: 70%; 
 
    overflow: hidden; 
 
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> 
 
<div class="container"> 
 
    <span class="star star-under fa fa-star"></span> 
 
    <span class="star star-over fa fa-star"></span> 
 
</div>

+0

Aslında benzer bir şekilde denedim, ancak sonuçlarım eşitsizleştirdim. Metin pozisyonları, biri konumsuz ve mutlak olarak yerleştirildiyse eşleşmedi ve ikincisiydi. Tüm miraslı stilleri incelemem gerek. –

+1

Çok fazla fark ettim, bu yüzden dikey hizalamayı ekledim ve iyi çalışıyor gibi görünüyor. – Stickers

+0

Ha, bu bir fikir! Çalışırsam bunu deneyeceğim ve cevabınızı seçeceğim! Teşekkürler dostum. –