Esses arquivos são gerados através de MENOS.
Em teoria, o style-m.css deve ter menos código e ter estilos apenas para dispositivos móveis do que o style-l.css para carregar em dispositivos móveis mais rapidamente.
Isto não está completamente correto. Ele styles-m.css
contém regras CSS para dispositivos móveis e computadores e, portanto, geralmente é maior do que o styles-l.css
que contém regras para computadores. No entanto, o objetivo ainda é o mesmo, assim, os dispositivos móveis não precisam baixar regras de CSS para dispositivos de desktop.
Com relação à questão de como os estilos podem ser "colocados" em um desses arquivos, isso é feito através das consultas de mídia da biblioteca da interface do Magento, que ajudam o Magento a criar esses dois arquivos a partir das suas regras MENOS.
Para dar um exemplo, um bloco de mídia como o seguinte seria colocado, styles-m
pois os computadores e os dispositivos móveis têm regras dentro desse bloco "em comum":
& when (@media-common = true) {
h1 {
font-size: 12px;
}
}
Um bloco de consulta de mídia como este seria para dispositivos com uma resolução mínima de "screen_xs", que são dispositivos móveis com uma resolução de tela de 480px e maior, o que significa que ainda seria colocado, styles-m
mas não afetaria necessariamente todos os dispositivos móveis:
.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__xs) {
h1 {
font-size: 18px;
}
}
Mudar (@extremum = 'min')
para (@extremum = 'max')
mudaria a regra para o oposto e, portanto, afetaria apenas dispositivos com largura menor que 480 px.
E um bloco como esse só diz respeito a dispositivos de mesa e, portanto, é inserido styles-l
, pois tudo 'acima' screen__m
é considerado um dispositivo de mesa (por padrão):
.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
h1 {
font-size: 24px;
}
}
Você pode ler mais sobre esses pontos de interrupção no guia do desenvolvedor do Magento .
styles-l.css
estyles-m.css
em nosso tema?De acordo com o
default_head_blocks.xml
layout do tema em branco:Pelo que entendi,
styles-l.css
é aplicado apenas para telas grandes (acima de 768px) estyles-m.css
é aplicado o tempo todo.Portanto, esse é o motivo pelo qual
styles-m.css
temos mais código, pois ele contém o código móvel e o código que se aplica independentemente da largura da tela.styles-l.css
contém apenas o código para telas maiores.fonte
Você define isso com suas funções de consulta de mídia e menos funções de guarda. Por exemplo,
& when (@media-common = true) { ... }
vá para styles-m.css porque esses estilos devem estar disponíveis em qualquer lugar.Falando sobre consultas de mídia, isso vai para o arquivo da área de trabalho:
.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {}
Você pode conferir meus slides sobre como lidar com estilos aqui:
https://slidr.io/toh82/how-to-deal-with-styles-in-magento-2#1
fonte