search

Home  >  Q&A  >  body text

Under certain conditions, move the position of the v-text-field text

<p>I'm using Vue.js and Vuetify. Encountered an interesting scene. So I have three options (radio buttons)</p> <ul> <li>left</li> <li>中</li> <li>right</li> </ul> <p>I have a v-text-field with a specific text value and a read-only attribute. Now, when the option changes/selects, I want to change the position of that text within the v-text-field. </p> <p>For example, when option 1 (left), the text should be moved to the left within the v-text-field. When option 2 (middle) is used, the text should move to the middle. So on and so forth. </p> <p>Any suggestions on this. If there is a better way, please guide me. </p>
P粉041856955P粉041856955442 days ago537

reply all(2)I'll reply

  • P粉306523969

    P粉3065239692023-08-29 14:57:47

    You can use class or style binding in Vue

    data() {
      return {
        activeAlignment: 'center'
      }
    }
    <div :style="{text-align : activeAlignment} ></div>

    Then bind activeAlignment to your radio button model

    reply
    0
  • P粉466290133

    P粉4662901332023-08-29 12:21:57

    You can create classes and bind them:

    new Vue({
      el: '#app',
      vuetify: new Vuetify(),
      data: () => ({
        text: 'some text',
        align: ''
      })
    })
    .left .v-text-field__slot textarea, .left .v-text-field__slot input {
      text-align: left;
    }
    .center .v-text-field__slot textarea, .center .v-text-field__slot input {
      text-align: center;
    }
    .right .v-text-field__slot textarea, .right .v-text-field__slot input {
      text-align: right;
    }
    <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/@mdi/font@6.x/css/materialdesignicons.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
    </head>
    <body>
    <div id="app">
      <v-app>
        <v-main>
          <v-container>
            <v-btn-toggle
              v-model="align"
              tile
              color="deep-purple accent-3"
              group
            >
              <v-btn value="left">左对齐</v-btn>
              <v-btn value="center">居中对齐</v-btn>
              <v-btn value="right">右对齐</v-btn>
            </v-btn-toggle>
            <v-textarea
              :class="align"
              v-model="text"
              label="文本"
            ></v-textarea>
            <v-text-field
              v-model="text"
              label="文本"
              :class="align"
            ></v-text-field>
          </v-container>
        </v-main>
      </v-app>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>

    reply
    0
  • Cancelreply