/* Comentários aparecem dentro de blocos com / e *, tal como esta linha!
   Não há "comentários de uma linha"; este é o único estilo de comentário. * /

/* ####################
   ## SELETORES
   #################### */

/* O seletor é usado para selecionar um elemento em uma página. */
seletor { propriedade: valor; /* Mais propriedades... */ }

/*
Abaixo um elemento de exemplo:

<div class='class1 class2' id='anID' attr='value' otherAttr='pt-br foo bar' />
*/

/* Você pode seleciona-lo usando uma das suas classes CSS */
.class1 { }

/* Ou ambas as classes! */
.class1.class2 { }

/* Ou o seu nome */
div { }

/* Ou o seu id */
#anID { }

/* Ou através de um dos seus atributos! */
[attr] { font-size: smaller; }

/* Ou utilizando um atributo com um valor específico */
[attr='value'] { font-size: smaller; }

/* Um atributo que começa com um valor (CSS 3) */
[attr^='val'] { font-size:smaller; }

/* Ou termina com um valor (CSS 3) */
[attr$='ue'] { font-size: smaller; }

/* Ou contém um valor em uma lista separada por espaços */
[otherAttr~='foo'] {}
[otherAttr~='bar'] {}

/* Ou contém um valor em uma lista separada por hífen, ou seja, "-" (U + 002D) */
[otherAttr|='pt'] {font-size: smaller; }


/* Você pode combinar diferentes seletores para criar um seletor mais específica. Lembre-se
   de não colocar espaço entre eles */
div.some-class[attr$='ue'] {}

/* Você pode selecionar um elemento que está diretamento dentro de outro elemento */
div.some-parent > .class-name {}

/* Ou um descendente desse elemento. Os filhos são os descendentes diretos de
  um elemento pai, apenas um nível abaixo. Da seguinte forma, você pode seleciona qualquer
  elemento que esteja dentro do elemento principal. */
div.some-parent .class-name {}

/* Atenção: o mesmo seletor sem espaço tem um outro significado.
   Dessa forma você estará selecionando um elemento que contenha as duas classes. */
div.some-parent.class-name {}

/* Você também pode selecionar um elemento com base em seu irmão mais próximo */
.i-am-just-before + .this-element {}

/* Ou qualquer irmão que o precede */
.i-am-any-element-before ~ .this-element { }

/* Existem alguns seletores, chamados pseudo classes, que podem ser usados para selecionar um
   elemento quando ele está em um determinado estado */

/* Por exemplo, quando o cursor passa sobre um elemento */
seletor:hover {}

/* Ou um link foi visitado */
seletor:visited {}

/* Ou não tenha sido visitado */
seletor:link {}

/* Ou um elemento em foco */
seletor:focus {}

/* Qualquer elemento que é o primeiro filho */
seletor:first-child {}

/* Qualquer elemento que é o último filho */
seletor:last-child {}

/* Assim como pseudo classes, pseudo elementos permitem que você estilize certas partes de um documento */

/* Corresponde a um primeiro filho virtual do elemento selecionado */
seletor::before {}

/* Corresponde a um último filho virtual do elemento selecionado */
seletor::after {}

/* Nos locais apropriados, um asterisco pode ser utilizado como um curinga para selecionar
   todos os elementos */

* {} /* Todos os elementos */
.parent * {} /* todos os descendentes */
.parent > * {} /* todos os filhos */

/* ####################
   ## PROPRIEDADES
   #################### */

seletor {
    /* Unidades de comprimento pode ser absoluta ou relativa. */

    /* Unidades relativas */
    width: 50%; /* Percentagem de largura do elemento pai */
    font-size: 2em; /* Múltiplos de font-size original de elemento */
    font-size: 2rem; /* Ou do elemento raiz font-size */
    font-size: 2vw; /* Múltiplos de 1% da largura da janela de exibição (CSS 3) */
    font-size: 2vh; /* Ou a sua altura */
    font-size: 2vmin; /* Qualquer um de VH ou um VW é menor */
    font-size: 2vmax; /* Ou superior */

    /* Unidades absolutas */
    width: 200px; /* Píxeis */
    font-size: 20pt; /* Pontos */
    width: 5cm; /* Centímetros */
    min-width: 50mm; /* Milímetros */
    max-width: 5 polegadas; /* Polegadas */

    /* Cores */
    color: #F6E; /* Formato hexadecimal curto */
    color: #FF66EE; /* Formato hexadecimal longo */
    color: tomato; /* Uma cor nomeada */
    color: rgb(255, 255, 255); /* Como valores rgb */
    color: RGB(10%, 20%, 50%); /* Como porcentagens rgb */
    color: rgba(255, 0, 0, 0,3); /* Como valores RGBA (CSS 3) NOTA: 0 <a <1 */
    color: transparent; /* Equivale a definir o alfa a 0 */
    color: HSL(0, 100%, 50%); /* Como porcentagens HSL (CSS 3) */
    color: HSLA(0, 100%, 50%, 0,3); /* Como porcentagens HSLA com alfa */

    /* Imagens como fundos de elementos */
    background-image: url(/img-path/img.jpg); /* O uso das aspas dentro de url() é opcional */

    /* Fontes */
    font-family: Arial;
    /* Se o nome da família de fonte tem um espaço, deve estar entre aspas */
    font-family: "Courier New";
    /* Se o primeiro não for encontrada, o navegador usa a próxima, e assim por diante */
    font-family: "Courier New", Trebuchet, Arial, sans-serif;
}
<!-- Você precisa incluir o arquivo css dentro da tag <head>. Esse é o
     método recomendado. Consulte http://stackoverflow.com/questions/8284365 -->
<link rel="stylesheet" type="text/css" href="path/to/style.css" />

<!-- Você também pode incluir alguns CSS inline no seu HTML. -->
<style>
    a { color: purple; }
</style>

<!-- Ou definir propriedades CSS diretamente no elemento. -->
<div style="border: 1px solid red;">
</div>
/* A */
p.class1[attr="value"]

/* B */
p.class1 {}

/* C */
p.class2 {}

/* D */
p { }

/* E */
p { property: value !important; }
<p style='/*F*/ property:value;' class='class1 class2' attr='value' />
/* Uma regra que será aplicada a todos os dispositivos */
h1 {
  font-size: 2em;
  color: white;
  background-color: black;
}

/* Altera a cor do h1 para utilizar menos tinta durante a impressão */
@media print {
  h1 {
    color: black;
    background-color: white;
  }
}

/* Altera o tamanho da fonte quando exibida numa tela com pelo menos 480px de largura */
@media screen and (min-width: 480px) {
  h1 {
    font-size: 3em;
    font-weight: normal;
  }
}
<head>
  <meta name="viewport" content="width=device-width; initial-scale=1.0">
</head>
