Você pode importar arquivos .css para arquivos .less ...?
Estou familiarizado com menos e o uso para todo o meu desenvolvimento. Eu uso regularmente uma estrutura da seguinte maneira:
@import "normalize";
//styles here
@import "mixins";
@import "media-queries";
@import "print";
Todas as importações são outros arquivos .less e funcionam como deveriam.
Meu problema atual é o seguinte: desejo importar um arquivo .css para .less que faça referência aos estilos usados no arquivo .css da seguinte maneira:
@import "../style.css";
.small {
font-size:60%;
.type;
}
// other styles here
O arquivo .css contém uma classe chamada .type
mas quando tento compilar o arquivo .less, recebo o erroNameError: .type is undefined
O arquivo .less não importará arquivos .css, apenas outros .less ...? Ou estou referenciando errado ...?!
.less
extensão. Em seguida, referencie-o como um.less
arquivo. Sendo um link simbólico, elimina a carga para sincronizá-los, pois as alterações .css afetam imediatamente o arquivo .less sendo importado. A desvantagem é que você deve recompilar o css final após as alterações subseqüentes. Para informações sobre como criar links simbólicos no Windows, digiteMKLINK /?
em uma janela de comando.css
arquivo usando a linha(less)
directiva e tirar proveito do fato de que.css
a sintaxe é um válido.less
sintaxeRespostas:
Você pode forçar um arquivo a ser interpretado como um tipo específico especificando uma opção, por exemplo:
irá produzir
e
importará o
lib.css
arquivo e o tratará como menos. Se você especificar um arquivo como menor e não incluir uma extensão, nenhum será adicionado.fonte
(inline)
directiva (ver stackoverflow.com/a/22594082/160968 ) agora é preferível(inline)
não funcionará porque não transforma referências externas a fontes ou outros@import
arquivos CSS editados. Você simplesmente acabar com um arquivo css maior que causa lotes de 404 solicitações HTTP ....Se você deseja que seu CSS seja copiado na saída sem ser processado, use a
(inline)
diretiva . por exemplo,fonte
@import (css) "styles.css";
não funcionou para mim.(css)
, a@import
diretiva permanecerá como está e, como resultado, o arquivo CSS será carregado pelo navegador em tempo de execução; com(inline)
, o conteúdo do arquivo CSS é realmente importado para a folha de estilo compilada, que é o que você deseja se esse arquivo estiver fora da raiz da web, por exemplo. Note-se que o comportamento padrão quando@import
ing um.css
arquivo é o mesmo que com o(css)
flag - leia os documentos para obter mais informações :)@import
diretivas, pois isso exigiria "processamento".Eu tive que usar o seguinte na versão 1.7.4
Eu sei que a resposta aceita é,
@import (css) "foo.css"
mas não funcionou. Se você deseja reutilizar sua classe css no seu novo arquivo menor, é necessário usar(less)
e não(css)
.Verifique a documentação .
fonte
(less)
é a única opção se você deseja reutilizar alguns estilos de um arquivo css), mas por alguma razão o @Fractalf removeu a parte correta com sua edição mais recente.@import (less, reference) "foo.css"
Mude a extensão do arquivo css para.less
. Você não precisa escrever MENOS nele; todo o CSS é MENOS válido (exceto os itens de MS dos quais você precisa escapar, mas isso é outro problema.)Pela resposta da Fractalf, isso está corrigido na v1.4.0
fonte
No site da LESS :
Como o jitbit aponta nos comentários abaixo, isso é realmente útil apenas para fins de desenvolvimento, pois você não gostaria de ter um
@import
consumo desnecessário de largura de banda preciosa.fonte
@import
durante o desenvolvimento e, em seguida, combine e reduza os arquivos importados em uma única folha de estilo ao passar para a produção.Tente o seguinte:
Da documentação oficial:
Fonte: http://lesscss.org/
fonte
Se você apenas deseja importar um arquivo CSS como referência (por exemplo, para usar as classes no Mixins), mas não incluir o arquivo CSS inteiro no resultado, você pode usar
@import (less,reference) "reference.css";
:my.less
reference.css
* Resultado (my.css) com
lessc my.less out/my.css
*estou a usar
lessc 2.5.3
fonte
&:extend(.reference-class all);
. Fazer referência direta à classe resultou em um erro de compilação.Se você deseja importar um arquivo css que deve ser pisado com menos frequência, use esta linha:
fonte
desde a versão 1.5.0, você pode usar a palavra-chave 'inline'.
Exemplo: @import (inline) "not-less-compatible.css";
Você o usará quando um arquivo CSS não for menos compatível; Isso ocorre porque, embora o Less suporte a maioria dos padrões conhecidos de CSS, ele não suporta comentários em alguns lugares e não suporta todos os hacks de CSS conhecidos sem modificar o CSS. Portanto, você pode usar isso para incluir o arquivo na saída, para que todo o CSS esteja em um arquivo.
(fonte: http://lesscss.org/features/#import-directives-feature )
fonte