Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

133
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!