Я работаю с vueJS, и в моем проекте у меня много изображений (например, маленьких значков), которые могут содержать текст.
Вот ужасный пример
Итак, я создал представление vueJS для работы с этими изображениями.
К сожалению, мне не удается получить что-то правильное при изменении размера изображения ... Я пытаюсь использовать проценты, но это невообще не работает, текст просто выходит за пределы иконки.Лучше всего, если размер текста изменится одновременно с изменением размера изображения.
Есть идеи, как мне поступить?
Большое спасибо за ваши предложения.
Вот пример
<icon iconname="cloud" :amount="cloudamount"></icon>
А вот представление Vue
<template>
<div>
<div class="container-icon">
<img :src="img_path" :style="styles">
<span v-if="iconname=='cloud'" class="icon-cloud">{{amount}} km</span>
<span v-if="iconname=='heart'" class="icon-heart">+{{amount}}</span>
</div>
</div>
</template>
<script>
export default {
name:'icon',
props:
{
iconname: {
type: String,
required: true,
default: "default"
},
amount: {
required: false,
default: ""
},
height: {
type: String, required:false, default: ''
},
width: {
type: String, required:false, default: ''
}
},
computed:{
styles: function(){
var mystyle='';
if(this.width!=''){
mystyle = mystyle + 'min-width: '+this.width+'; max-width: '+this.width+';';
}
if(this.height !=''){
mystyle = mystyle + 'min-height: '+this.height+'; max-height: '+this.height;
}
return mystyle;
},
img_path: function () {
return '/images/icons/'+this.iconname+'.png';
}
}
}
</script>
<style>
.icon-cloud{
color:green;
position: absolute;
left: 8%;
top: 0.2em;
}
.icon-heart{
color:black;
position: absolute;
left: 13%;
top: 0.2em;
max-width: 1em;
}
</style>
Я использую bootsrtap 4, но не уверен, что он дает какую-либо информацию:)