Operadores de CSS com @ – html html5 css3

Pergunta:


Como havia perguntado sobre o operador @media, fiquei curioso, pois vi outros operadores que iniciavam com @ e gostaria de entender para que serve operadores assim, e quais existem.

Autor da pergunta PGuardini

Marcos de Andrade

Os operadores @ são utilizados para estabelecer algumas regras no CSS. Os mais comumente utilizados, além do @media que já foi descrito em sua última pergunta, são:

@import: utilizado para importar uma folha de estilo na folha atual. Isso colabora para modularizar o código, mas é importante citar que cada import gera uma requisição HTTP nova, o que pode diminuir a performance da aplicação caso hajam muitos imports. Alguns frameworks como o Angular 4 resolvem esse problema, entretanto, utilizando suas proprias diretrizes de import.

<style type="text/css">
   @import "mystyle.css";
   @import url("mystyle.css");
</style>

@Keyframes: Basicamente, possibilita estabelecer intervalos de animação, com as modificações de estilo ou posicionamento que irão ocorrer em cada intervalo. Um exemplo da animação (e seu código) pode ser encontrado aqui.

@keyframes identifier {
  0% { top: 0; }
  50% { top: 30px; left: 20px; }
  50% { top: 10px; }
  100% { top: 0; }
}

@charset: identifica qual será a codificação de caracteres utilizada, sendo as mais comuns UTF-8 e ISO-8859-1. Entretanto, a codificação de caracteres é normalmente declarada em uma meta-tag no próprio HTML.

<style type="text/css">
   @charset "UTF-8"
</style>

OU, no HTML5:

<meta charset="UTF-8">

@font-face: Utilizado para descrever de forma mais detalhada uma fonte utilizada no documento.´

@font-face {
  font-family: MyHelvetica;
  src: local("Helvetica Neue Bold"),
       local("HelveticaNeue-Bold"),
       url(MgOpenModernaBold.ttf);
  font-weight: bold;
}

Conforme a documentação isso se chama at-rule (provavelmente regra-arroba em português)

Existem vários at-rules, designados por seus identificadores, cada um com uma sintaxe diferente:

  • @charset — Define o charset usado pelo css
  • @import — Adiciona um CSS externo
  • @namespace — O estilo é aplicado a elementos que tem prefixos de namespace XML, conforme a regra.

At-rules aninhadas

É um subconjunto de declarações aninhadas, que podem ser usadas como uma declaração de uma folha de estilo, bem como dentro de regras de grupo condicional:

  • @media — Uma regra de grupo condicional que aplicará seu conteúdo se o dispositivo atender aos critérios da condição definida usando uma consulta de mídia.

  • @supports — Uma regra de grupo condicional que aplicará seu conteúdo se o navegador atender aos critérios da condição dada.

  • @document (Experimental) — Uma regra de grupo condicional que irá aplicar o seu conteúdo se o documento no qual a folha de estilos é aplicada atende aos critérios da condição dada.
    (Level 4 da especificação CSS)

  • @page — Descreve o aspecto das alterações de layout que serão aplicadas na impressão do documento.

  • @font-face — Descreve o aspecto de uma fonte externa a ser baixada.

  • @keyframes — Descreve o aspecto de etapas intermediárias em uma seqüência de animação CSS.

  • @viewport (Experimental) — Descreve os aspectos da viewport para dispositivos de tela pequena.

  • @counter-style — Define estilos de contador específicos que não fazem parte do conjunto de estilos predefinido.

  • @font-feature-values (adiciona @swash, @ornaments, @annotation, @stylistic, @styleset e @character-variant) — Defina nomes comuns em variantes de fonte-variante para recurso ativado de forma diferente em OpenType (somente implementado no Gecko – Firefox)


Condições de regras de grupos

Assim como os valores das propriedades, cada regra tem uma sintaxe diferente. No entanto, vários deles podem ser agrupados em uma categoria especial denominada regras de grupo condicional.

Essas declarações compartilham uma sintaxe comum e cada uma delas pode incluir declarações aninhadas (ou conjuntos de regras ou regras aninhadas, além disso, todos transmitem um significado semântico comum) todos eles ligam algum tipo de condição que, a qualquer momento, é avaliada seja verdadeira ou falso.

Se a condição for avaliada como verdadeira, todas as declarações dentro do grupo serão aplicadas.

As condições de regras de grupos são definidas em CSS Conditionals Level 3, são elas:

A @import: importar outra folha de estilo na folha de estilo atual

A @charset: indica qual a codificação a folha de estilo irá usar

A @font-face: Usada para descrever o tipo de fonte que será utilizado

A !important: Indica que uma regra definida pelo usuário deve ter precedência sobre as folhas de estilo do autor.

Exemplos:

@import:

<style tyle="text/css">
   <!--
   @import "mystyle.css";
   or
   @import url("mystyle.css");
   .......other CSS rules .....
   -->
</style>

@charset:

<style tyle="text/css">
   <!--
   @charset "iso-8859-1"
   .......other CSS rules .....
   -->
</style>

@font-face

<style tyle="text/css">
   <!--
   @font-face {
      font-family: "Scarborough Light";
      src: url("http://www.font.site/s/scarbo-lt");
   }
   @font-face {
      font-family: Santiago;
      src: local ("Santiago"),
      url("http://www.font.site/s/santiago.tt")
      format("truetype");
      unicode-range: U+??,U+100-220;
      font-size: all;
      font-family: sans-serif;
   }
   -->
</style>

!important:

<html>
   <head>

      <style tyle="text/css">
         p { color: #ff0000 !important; }
         p { color: #000000; }
      </style>

   </head>
   <body>
      <p>Tutorialspoint.com</>
   </body>
</html> 

Para exemplos e mais informações:

https://www.tutorialspoint.com/css/css_at_rules.htm

Fonte

Related Posts:

Qual a diferença entre AppCompatActivity e Activity? – android android-activity
Pergunta: Qual a diferença da AppCompatActivity para Activity ? A partir de qual versão a AppCompatActivity foi adicionada ao Android? Autor da pergunta Luhhh A diferença reside ...
Como abreviar palavras em PHP? – php string
Pergunta: Possuo informações comuns como nome de pessoas e endereços, e preciso que elas contenham no máximo 30 caracteres sem cortar palavras. Exemplo: 'Avenida Natalino João Brescansin' ...
Qual é a finalidade de um parêntese vazio numa declaração Lambda? – c# expressões-lambda característica-linguagem
Pergunta: Criei um exemplo de uma declaração Lambda sem argumentos, entretanto, estou com duvidas referente a omissão do parêntese vazio () na declaração. Veja o exemplo: class ...
Boas práticas para URI em API RESTful – api rest restful
Pergunta: Estou com dúvida em relação às URIs de alguns recursos da api que estou desenvolvendo. Tenho os recursos projetos e atividades com relação 1-N, ...
Dúvidas sobre a integração do MySQL com Java – java mysql netbeans
Pergunta: Estou criando um sistema no NetBeans, utilizando a linguagem Java e o banco de dados MySQL. Escrevi o seguinte código para realizar a conexão ...
Qual é a finalidade da pasta Model do framework Inphinit? – php inphinit
Pergunta: No Inphinit micro-framework existe a pasta Model que fica dentro da pasta application, e nela é onde ficam as classes, mas eu estou muito ...
Uso do ‘@’ em variáveis – javascript typescript coffeescript
Pergunta: Vejo em algumas linguagens que compilam para javascript, como TypeScript e CoffeeScript, o uso do @ em variáveis, como também, casos em que o ...
Qual tamanho máximo um arquivo JSON pode ter? – json arquivo
Pergunta: Vou dar um exemplo para conseguir explicar minha duvida: Preciso recuperar informação de imagens vindas de uma API, esse banco de imagens me retorna JSON's ...
O que é Teste de Regressão? – terminologia engenharia-de-software testes
Pergunta: Na matéria de Teste de Software o professor abordou um termo chamado Teste de Regressão, isto dentro da disciplina de teste de software. Sendo ...
O que é um construtor da linguagem? – php característica-linguagem
Pergunta: Em PHP, já li e ouvi várias vezes a respeito dos Construtores da Linguagem. Os casos que sempre ouvi falar deles foi em casos ...
Função intrínseca para converter numérico para string – cobol
Pergunta: Estou a tentar saber se existe alguma função intrínseca do COBOL para converter um data numérico para string sem precisar usar a cláusula REDEFINES: ( ...
Porque usar implements? – java android
Pergunta: Qual a diferença entre usar btn.setOnClickListener(new OnClickListener() { e public class MainActivity extends Activity implements OnClickListener{ Estive fazendo um curso de Android e meu professor falou que ...
O que é XHTML e quando deve ser usado? – html xml xhtml
Pergunta: O que eu sei é que o XHTML precisa ser XML válido. Isso implica, por exemplo, que todas as tags precisam ser fechadas. Por ...
Uma placa aceleradora de vídeo pode melhorar o desempenho não-gráfico? [fechada] – desempenho
Pergunta: Para desenvolver em Ruby on Rails, eu utilizo aqui uma máquina virtual do VirtualBox com Ubuntu Server 14.04 sem interface gráfica instalada. Recentemente descobri uma ...
Concat() VS Union() – c# .net
Pergunta: Qual a diferença entre Concat() e Union() ? Quando usar Concat() e quando usar Union() ? Somente pode ser usado em list ? ...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *