es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer que el ancla del menú desplegable de selección antd esté a la derecha de la selección.

Utilizo Ant-Design y en un componente tengo un Select que está ubicado en el lado derecho de la pantalla. Algunas etiquetas son muy largas y, por lo tanto, cuando aparece el menú desplegable, se produce un desbordamiento y aparece una barra de desplazamiento.
Me gustaría que el menú desplegable anclara en el lado derecho del botón Select en lugar del lado izquierdo, de esta manera se mantendría la longitud de la etiqueta pero se evitaría el desbordamiento sin ocultar nada, pero Antd no expone una API para hacer esto y no puedo descubrir con qué propiedad CSS manipular…
Un ejemplo del Sandbox se encuentra aquí.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para ubicar el menú desplegable en el lado derecho del botón “Select” en Ant-Design, se puede usar CSS para ajustar la posición del elemento “rc-select-dropdown”. Aquí hay un ejemplo de cómo se puede lograr:

    1. Agregue una clase personalizada al componente “Select”, por ejemplo, “mi-select”.
    2. Use la propiedad “getPopupContainer” para especificar el elemento padre del menú desplegable. Esto asegura que el menú desplegable esté posicionado correctamente incluso cuando el componente “Select” está anidado en otros elementos.
    3. Agregue algo de CSS para ubicar el menú desplegable a la derecha del botón “Select”.

    Aquí está el código actualizado para el componente “Select”:

    <select classname="mi-select" getpopupcontainer="{(triggerNode)" ==""> triggerNode.parentNode}
      defaultValue="lucy"
    >
      <option value="jack">Jack</option>
      <option value="lucy">
        Una etiqueta muy larga que no debería truncarse porque contiene información importante
      </option>
      <option value="disabled" disabled="">
        Desactivado
      </option>
      <option value="Yiminghe">yiminghe</option>
    </select>
    

    Y aquí está el CSS:

    .mi-select .ant-select-selection {
      display: flex;
      align-items: center;
    }
    
    .mi-select .ant-select-arrow {
      right: 0;
    }
    
    .mi-select .rc-select-dropdown {
      right: 0;
      left: auto;
    }
    

    Este CSS ubica el menú desplegable a la derecha del botón “Select” estableciendo “right: 0” y “left: auto” en el elemento “rc-select-dropdown”. El “display: flex” y “align-items: center” en el elemento “ant-select-selection” asegura que la flecha esté centrada verticalmente con la etiqueta. El “right: 0” en el elemento “ant-select-arrow” ubica la flecha a la derecha de la etiqueta.

Comments are closed.