Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

227
Visualizações
Vue: pasar el estilo css en línea al componente secundario

Estoy usando vue.js + vuetify, y tengo que colocar un botón sobre un componente de lienzo (aquí manejado por la biblioteca Konva)

Lo logré usando la posición absoluta del botón. Para limpiar las cosas, quiero colocar este botón en un componente dedicado.

Me gustaría pasar el CSS de posicionamiento en línea a este nuevo componente secundario, pero no sé cómo hacerlo funcionar.

He intentado las siguientes dos formas

  • Pásalo con un enlace :style="xxx", como hice cuando usé v-btn directamente
  • Pasar el posicionamiento a un div principal: funciona con un div de ancho! = 0 pero parece una tontería. Y en este caso, el índice z no se aplica al botón.
  • Podría pasar los atributos con un accesorio dedicado, pero vuetify no parece necesitarlo

Aquí está básicamente mi código:

 <template> <v-container fluid fill-height ref="parentLayout" class="pa-0" :style="{position: 'relative'}"> <!-- Konva area overwhich the button will be placed drawn over /--> <div ref="konvaLayout" :style="{backgroundColor:'rgb( 40, 40, 40 )'}"> <!-- THIS WORKS /--> <v-btn absolute :style="{top:'10%', left:'10%', width: '100px'}"> THIS WORKS </v-btn> <!-- THIS DOES NOT /--> <my-button :style="{position: absolute, top:'2%', left:'2%'}" /> </v-container> </template>

En resumen tengo las dos siguientes dudas:

  1. ¿Cómo puedo vincular correctamente: estilo al elemento secundario, como lo hace vuetify?
  2. ¿Cuál es la forma estándar de pasar los atributos de posición css a los componentes secundarios? Con encuadernación de estilo como 1) ?

Gracias por toda tu ayuda

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema en este caso es básicamente lo que se supone que v-deep debe resolver en el mundo css (aunque no va a resolver su problema aquí)

No tiene un elemento native dentro del div konvaLayout , por lo que el estilo no llega al componente destinado.

En el componente MyButton.vue , tendría dos opciones para resolver esto:

- Sobrescribir accesorios de style -

 //MyButton.vue <template> <v-btn :style="style">{{ label }}</v-btn> </template> <script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ props: { label: String, style: [String, Object] } }); </script>

- Accesorio personalizado -

Utiliza un nombre de prop personalizado que se usa específicamente para diseñar el botón en my-button (lol)

 //MyButton.vue <template> <v-btn :style="btnStyle">{{ label }}</v-btn> </template> <script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ props: { label: String, btnStyle: [String, Object] } }); </script>

(No hay garantía ya que no se nos proporcionó un código y una caja o similar para verificar si funciona )

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda