2017-01-04 5 views
0

私は、特定のプレースホルダ画像の代わりにユーザプロファイル画像が表示されるサイトで、ユーザの頭文字が表示されるサイトを見てきました。レスポンスを維持した複数の画像上の文字

example

は、私が試してみて、私のサイトの一つにこれを実装することに決めましたが、私は応答それを維持するのに苦労しています。

バックエンドに格納されている頭文字のすべての組み合わせを実際の画像に置き換えるのには、すぐれたソリューションが必要です。

このプロフィール画像は画面上の複数の場所に表示されるので、多くのガイドのような絶対的な位置付けはオプションではありません。私が思いついた

「ソリューション」は、以下のCSSクラスを利用する。これに加えて

.profile-image img.with-initials { 
    position: relative; 
    left: -10px; 
    width: 30px; 
} 

.profile-image .initials { 
    position: relative; 
    bottom: 2px; 
    left: 50%; 
    margin: 0 auto; 
    float: left; 
    z-index: 100; 
} 

.profile-image span.initials { 
    color: #efefef; 
    font-weight: 600; 
    font-size: 150%; 
    line-height: 35px; 
    letter-spacing: 1px; 
} 

私は、これらのクラスを追加し、ユーザーがプロフィール画像を持っているかどうかを最初に確認するためにテストし、もしいませんよ計算されたイニシャルを含む空白のプレースホルダー画像に変換する。

これはすべて特定の画面サイズに適していますが、残念ながらウィンドウのサイズ変更を開始した後は別のものになります。

jsfiddle

+0

ビューポート単位でフォントや画像を拡大しようとしましたか? HTMLやデモを投稿することもできます。 – sol

+0

http://stackoverflow.com/questions/16056591/font-scaling-based-on-width-of-containerビューポートが 'js'ソリューションでなければならないコンテナの幅に基づいて応答するfont-size、 fittext.jsのようなものを試してみてください。 – haxxxton

答えて

1

このような何かが動作するはずです、あなたはしかし、画像を使用してオフにおそらくより良いです:

HTML:

<div class="profile"> 
    <div class="profile__circle"> 
    <span class="profile__letters">AN</span> 
    </div> 
</div> 

CSS:

.profile { 
    width: 10vw; 
    height: 10vw; 
    font-size: 5vw; 

    &__circle { 
    background-color: red; 
    border-radius: 100%; 
    width: 100%; 
    height: 100%; 
    position:relative; 
    } 

    &__letters { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    color: #fff; 
    } 
} 

デモ: https://jsfiddle.net/zy9bgyuz/5/

関連する問題