Pregunta

Estoy tratando de averiguar la cuadrícula sin marco sin marco de Joni Korpi (http://framelessgrid.com/) Y me cuesta leer el archivo .less que tiene. Tengo una comprensión básica de que menos usa variables, por lo que conozco columna = 48 y canal = 24 y eso es todo.

¿1Cols = 1 * (48 + 24) - 24)/ 12?

Lo que no entiendo es @1col: @1cols; y .width (@cols:1) { width: (@cols * (@column + @gutter) - @gutter) / @em; }

¿Alguien puede ayudar?

https://github.com/jonikorpi/frameless/blob/master/frameless.less

@font-size: 16;         // Your base font-size in pixels
@em: @font-size*1em;    // Shorthand for outputting ems, e.g. "12/@em"

@column: 48;    // The column-width of your grid in pixels
@gutter: 24;    // The gutter-width of your grid in pixels


//
// Column-widths in variables, in ems
//

 @1cols: ( 1 * (@column + @gutter) - @gutter) / @em; @1col: @1cols;
 @2cols: ( 2 * (@column + @gutter) - @gutter) / @em;
 @3cols: ( 3 * (@column + @gutter) - @gutter) / @em;
 @4cols: ( 4 * (@column + @gutter) - @gutter) / @em;
 @5cols: ( 5 * (@column + @gutter) - @gutter) / @em;
 @6cols: ( 6 * (@column + @gutter) - @gutter) / @em;
 @7cols: ( 7 * (@column + @gutter) - @gutter) / @em;
 @8cols: ( 8 * (@column + @gutter) - @gutter) / @em;
 @9cols: ( 9 * (@column + @gutter) - @gutter) / @em;
@10cols: (10 * (@column + @gutter) - @gutter) / @em;
@11cols: (11 * (@column + @gutter) - @gutter) / @em;
@12cols: (12 * (@column + @gutter) - @gutter) / @em;
@13cols: (13 * (@column + @gutter) - @gutter) / @em;
@14cols: (14 * (@column + @gutter) - @gutter) / @em;
@15cols: (15 * (@column + @gutter) - @gutter) / @em;
@16cols: (16 * (@column + @gutter) - @gutter) / @em;


//
// Column-widths in a function, in ems
//

.width (@cols:1) {
width: (@cols * (@column + @gutter) - @gutter) / @em;
}
¿Fue útil?

Solución

@1cols etc son solo nombres variables. Nombres variables en less se les permite comenzar con números.

@1col: @1cols;

Eso es solo hacer el dicho de esa variable @1col es igual a la variable @1cols establecido anteriormente. Presumiblemente, "1col" porque 1 es singular, pero los otros son plurales, por lo que solo le da la opción de usar cualquiera @1col o @1cols ambos son el mismo valor.

@1cols: ( 1 * (@column + @gutter) - @gutter) / @em;

Eso es solo matemáticas. Si desea una sección que tenga 3 columnas de ancho, eso es 3 veces el (ancho de la columna + ancho de canalones) menos una canaleta.

.width (@cols:1) {
width: (@cols * (@column + @gutter) - @gutter) / @em;
}

Esa es una función de mezcla que toma un número variable de columnas con un parámetro predeterminado de 1. Puede usarlo así:

.my-class{
   .width(3);
}
/* these two are identical */
.my-class{
   width: @3cols;
}

El beneficio del primer método es que puede reemplazar 3 con una variable para que pueda usarla en otro lugar.

Otros consejos

@ es un identificador variable ... similar a $ en Php.

Entonces, lo que está haciendo es definir una mezcla que es en algunos aspectos como una función, que toma el argumento @cols con un valor predeterminado de 1 Si no se proporciona ninguno. Esta mezcla luego establece el width propiedad CSS al valor de la expresión:

(@cols * (@column + @gutter) - @gutter) / @em;

Su @em El valor será el valor de 1EM en píxeles, creo. Entonces, si su tamaño de fuente base es 12, entonces @em = 12.

Tan lejos como el @1col: @1cols; eso es solo una conveniencia para que puedas usar @1col (singular) o @1cols (plural) y significan lo mismo.

Las otras respuestas explican bien qué hacen menos archivos, así que hablaré sobre su uso de @em.

Si lo haces

.some_class { 
    just_an_em: @em 
}

En su archivo .less, saldrá a

.come_class {
    just_an_em: 16em
}

en .css después de compilar. Esto parece deberse a que menos conserva unidades en la división, de modo que '16/@em 'da' 1em ', como se esperaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top