Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

135
Vistas
Limitación de contenedores a tres tamaños fijos

Estoy mirando el diseño de la cuadrícula de reacción que se basa en la cuadrícula de 12 columnas de Material Design. ¿Hay alguna manera de proporcionar tamaños predefinidos para que los contenedores se adhieran a los siguientes 3 tamaños: 1 de ancho completo (12 columnas), media cuadrícula (6 columnas) o 1/3 de cuadrícula (4 columnas)?

Salvadera

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Supongo que cuando dice contenedor, se refiere a los elementos de diseño. Si ese es el caso, use un método onResize personalizado. Usando el código de sandbox que tiene de su pregunta:

 export default class ShowcaseLayout extends React.Component { constructor(props) { ... // add the line below this.onResize = this.onResize.bind(this); } ... // add the method onResize(layout, oldLayoutItem, layoutItem, placeholder) { // `oldLayoutItem` contains the state of the item before the resize. // You can modify `layoutItem` to enforce constraints. const allowableW = this.props.cols[this.state.currentBreakpoint] - oldLayoutItem.x if (layoutItem.w <= 4) { layoutItem.w = 4; placeholder.w = 4; } else if (layoutItem.w <= 6) { layoutItem.w = allowableW < 6 ? 4 : 6; placeholder.w = allowableW < 6 ? 4 : 6; } else { layoutItem.w = allowableW < 12 ? 6 : 12; placeholder.w = allowableW < 12 ? 6 : 12; } } render() { return ( <div> ... <ResponsiveReactGridLayout ... {/* bind method to component */} onResize={this.onResize} > {this.generateDOM()} </ResponsiveReactGridLayout> </div> ); } } ShowcaseLayout.propTypes = { onLayoutChange: PropTypes.func.isRequired }; ShowcaseLayout.defaultProps = { ... // ensure your breakpoints have a minimum of 4 columns cols: { lg: 12, md: 10, sm: 6, xs: 4, xxs: 4 }, }; function generateLayout() { return _.map(_.range(0, 25), function (item, i) { var y = Math.ceil(Math.random() * 4) + 1; return { x: (_.random(0, 5) * 2) % 12, y: Math.floor(i / 6) * y, // set item's default width to 4 w: 4, h: y, i: i.toString(), static: Math.random() < 0.05 }; }); }

MANIFESTACIÓN

about 4 years ago · Juan Pablo Isaza Denunciar

0

No sé mucho sobre react-grid-layout .

Pero puede hacerlo con un simple cambio en la propiedad cols de ShowcaseLayout.defaultProps como sigue.

 ShowcaseLayout.defaultProps = { className: "layout", rowHeight: 30, onLayoutChange: function() {}, cols: { lg: 12, md: 12, sm: 6, xs: 4, xxs: 4 }, initialLayout: generateLayout() };

Caja de arena ACTUALIZADA

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sí, ciertamente puedes hacer eso con react-grid-layout . En la sección de su documentación etiquetada como "Uso sin Browserify/Webpack" , tienen este fragmento de código:

 import { Responsive as ResponsiveGridLayout } from 'react-grid-layout'; class MyResponsiveGrid extends React.Component { render() { // {lg: layout1, md: layout2, ...} const layouts = getLayoutsFromSomewhere(); return ( <ResponsiveGridLayout className="layout" layouts={layouts} breakpoints={{lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0}} cols={{lg: 12, md: 10, sm: 6, xs: 4, xxs: 2}}> <div key="1">1</div> <div key="2">2</div> <div key="3">3</div> </ResponsiveGridLayout> ) } }

Puede modificar los puntos de interrupción como desee, que indican en qué ancho de pantalla/ventana la pantalla considerará un nuevo tamaño (p. ej., lg frente a md frente a sm , etc.).

Una vez que haya definido sus puntos de breakpoints , defina cuántas columnas desea que esté cada contenedor en diferentes puntos de interrupción utilizando el atributo cols . Si solo desea los tres tamaños que mencionó: 1 ancho completo (12 columnas), ½ cuadrícula (6 columnas) y ⅓ cuadrícula (4 columnas), ajuste el atributo de cols a algo como esto:

 cols={{lg: 12, md: 6, sm: 6, xs: 4, xxs: 4}}

Con estos valores redefinidos, los elementos de esta cuadrícula tendrán el ancho completo en las ventanas gráficas lg , la mitad de la cuadrícula en las ventanas gráficas md y sm , y la mitad de la cuadrícula en las ventanas gráficas xs y xxs .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda