Maison > Questions et réponses > le corps du texte
P粉4733635272023-09-03 19:48:23
Utilisez CSS pour afficher le débordement du texte, comme .... (points de suspension), et utilisez l'attribut title pour afficher l'intégralité du contenu au survol, comme une popup
<script setup> import { ref } from 'vue' const msg = ref('Hello World! too much content in this text field component to display') </script> <template> <h1 :title=msg>{{ msg }}</h1> <input v-model="msg"> </template> <style> h1{ max-width: 15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } </style>
P粉3421016522023-09-03 09:39:26
En modifiant votre code, j'ai réussi à comparer celui de la zone de texte clientWidth
和scrollWidth
.
1- Citations field
éliminées.
2- Ajout d'un identifiant à v-text-field
.
3- Ajout d'une fonction de rappel check
函数,并在watch
pour l'appeler.
4- Dans la fonction check
, j'ai coché le check
函数内部,我检查了输入框的clientWidth
和scrollWidth
de la zone de saisie.
5- Afin de l'exécuter au chargement initial, j'ai attribué msg
à une chaîne vide et je l'ai changé en chaîne brute au bas du script.
Découvrez-le ici : Ici
<script setup> import { ref, watch } from 'vue' const msg = ref("") const isCuttingOff = ref(false) function check() { const elm = document.querySelector('#txt') isCuttingOff.value = elm.clientWidth < elm.scrollWidth; // todo : custom tooltip or any other solution for long texts } watch( msg, (currentMsg, oldMessage, callback) => { callback(check) }, { immediate: true } ) msg.value = 'Hello World! too much content in this text cfield component to display.' </script> <script></script> <template> <v-app> <div class="text-h3">Is cutting off: {{ isCuttingOff }}</div> <v-container class="w-25"> <v-text-field id="txt" v-model="msg" /> </v-container> </v-app> </template>