2017-01-04 4 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', попробуйте что-то вроде 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/

Смежные вопросы