Cascading Style Sheet
É de comer?
<p style="color: red; background-color: blue;">
NO! NO! NO!
</p>
<style>
a {
font-size: 20px;
color: yellow;
}
</style>
<!-- HTML file -->
<link rel="stylesheet" href="css/style.css">
/* CSS file */
h1 {
font-size: 24px;
border: 1px red solid;
}
p {
padding: 20px 0;
line-height: 20px;
color: #fff;
background-color: blue;
}
p {
background-color: blue;
}
propriedade
valor
seletor
#contact {
padding: 50px 10px;
background-color: #ff0000;
}
.contact {
padding: 50px 10px;
color: blue;
}
Nomeie os seletores pela semântica do conteúdo e não pelo visual.
.box-green {
padding: 10px;
background-color: green;
color: #ffffff;
.box-success {
padding: 10px;
background-color: green;
color: #ffffff;
.declaration-order {
/* Positioning */
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 100;
/* Box-model */
display: block;
float: right;
width: 100px;
height: 100px;
/* Typography */
font: normal 13px "Helvetica Neue", sans-serif;
line-height: 1.5;
color: #333;
text-align: center;
/* Visual */
background-color: #f5f5f5;
border: 1px solid #e5e5e5;
border-radius: 3px;
/* Misc */
opacity: 1;
}
http://i.imgur.com/yjMv7cg.png
http://dontpad.com/pablo/treinamento/css
font: italic 18px small-caps "Open Sans", sans-serif;
font-family: "Open Sans", sans-serif;
font-size: 62.5%;
font-style: italic;
font-weight: 800;
@font-face {
font-family: "NomedaFonte"; src: url("http://site/Fonte.ttf"); }
text-align: center;
text-transform: uppercase;
text-decoration: none;
vertical-align: super;
word-spacing: 20px;
line-height: 20px;
Referenciada a outra medida
Não está referenciada a outra medida
Content
Padding
Border
Margin
O que será exibido
Distância entre conteúdo e a borda
O que envolve o box
Separa um box de outro
Content
Padding
Border
Margin
Espaçamento interno
Espaçamento externo
Distância entre conteúdo de um elemento e sua borda
Distância de um elemento para outro
Ex.: recuar texto dentro de um conteúdo
Ex.: Afastar um post de uma imagem
/* four values -> top, right, bottom, left*/
padding: 25px 50px 75px 100px;
/* three values -> top, right AND left, bottom */
padding: 25px 50px 75px;
/* two values -> top AND bottom, right AND left */
padding: 25px 50px;
/* one value -> all paddings */
padding: 25px;
/* individual */
margin-top: 50px;
Renderizado em bloco e ocupam toda a largura do documento
Renderizado em linha e ocupam o necessário para a exibição
display: block;
display: inline;
Valor padrão
display: none;
visibility: hidden;
Não é a mesma coisa? Esconder o elemento?
Oculta o elemento na página, mas o espaço usado por ele continua sendo usado
Oculta o elemento na página e além disso o espaço usado por ele
/* Valor padrão */
overflow: visible;
/* O conteúdo será cortado e não será exibido scroll */
overflow: hidden;
/* Scrolls são exibidos mesmo quando não necessário */
/* Pode ser útil com conteúdos dinâmicos */
overflow: scroll;
/* É exibido o scroll apenas quando necessário */
overflow: auto;
border-color: blue;
border-style: dotted;
border-width: 3px;
/* ou tudo junto */
border: 3px dotted blue;
border-radius: 50%;
Por padrão, os elementos HTML possuem um estilo incorporado, e isso varia em cada browser
Padronizar a visualização das páginas
*,
*::after,
*::before {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.static, .relative1, .relative2, .absolute {
margin: 20px;
padding: 20px;
}
.static {
position: static;
border: 2px solid red;
}
.relative1 {
position: relative;
border: 2px solid blue;
}
.relative2 {
position: relative;
top: -30px;
border: 2px solid green;
}
.absolute {
position: absolute;
border: 2px solid yellow;
top:0;
left: 300px;
}
.relative1
.relative2
.floatLeft {
width: 50%;
float:left;
}
/* O elemento não será movido para limpar o float */
clear: none;
/* O elemento será movido para limpar float left */
clear: left;
/* O elemento será movido para limpar float right */
clear: right;
/* O elemento será movido para limpar float left e right */
clear: both;
.class {
clear: left;
}
.clearfix::before, .clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
/*Valores maiores sobrepõem elementos com valores menores */
z-index: 2;
background-color: red;
background-color: #ff0ff;
background-color: rgb(255, 255, 255);
background-color: rgba(255, 100, 20, .5);
background-image: url(img/bg.png);
background-image: none;
background-position: top, bottom, left, right, center;
background-position: 25% 50%;
background-position: 0px 0px center;
filter: blur(5px);
filter: brightness(2);
filter: contrast(4);
filter: grayscale(1);
filter: sepia(1);
filter: invert(.3);
filter: opacity(.5);
Text Shadow
p {
/* text-shadow: h-shadow v-shadow blur color */
/* Sombra sólida */
text-shadow: 5px 2px blue;
/* Sombra com blur */
text-shadow: 5px 2px 5px blue;
}
Box Shadow
p {
/* Sombra sólida */
text-shadow: 5px 2px blue;
/* Sombra com blur */
text-shadow: 5px 2px 5px blue;
}
Caso queira sombra interna, usar inset antes dos valores
* {
color: red;
font-size: 16px;
}
a:hover {
color: pink;
}
Doge Lindão
Doge Lindão
input[type=text]:focus {
color: pink;
}
Text
input:checked {
height: 50px;
width: 50px;
}
ul li:first-child {
font-weight: bold;
font-style: italic;
}
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
li:last-child {
font-weight: bold;
font-style: italic;
}
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
li:nth-child(2n+1) {
font-weight: bold;
font-style: italic;
}
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
Doge Lindão
p::first-letter {
font-size: 200%;
}
aaaablo!
li::before {
content: "> "
}
> Samurai Jack
> Samurai Jack 2
> Samurai Jack 3
a::after {
content: " (" attr(href) ") ";
}
Googgle (www.google.com)
EJCM (www.ejcm.com.br)
...
/* CSS */
h1 ~ p {
font-style: italic;
color: fuchsia;
}
<!-- HTML -->
<article>
<p>Antes</p>
<h1>Título</h1>
<p>Início</p>
<div>
<p>Dentro de outra div</p>
</div>
<p>Texto</p>
</article>
<p>Lado de fora</p>
/* CSS */
h1 + p {
font-style: italic;
color: fuchsia;
}
<!-- HTML -->
<article>
<h1>Título</h1>
<p>Início</p>
<div>
<p>Dentro de outra div</p>
</div>
<p>Texto</p>
</article>
<p>Lado de fora</p>
/* CSS */
article > h1 {
font-style: italic;
color: fuchsia;
}
<!-- HTML -->
<article>
<h1>Título</h1>
<p>Início</p>
<div>
<h1>Título 2 fora</h1>
<p>Dentro de outra div</p>
</div>
<h1>Título 3 dentro</h1>
<p>Texto</p>
</article>
<p>Lado de fora</p>
a {
color: blue;
background-color: red;
}
a:hover {
color: red;
background-color: blue;
}
a {
color: blue;
background-color: red;
transition: 1.5s;
}
a:hover {
color: red;
background-color: blue;
transition: 1.5s;
}
transition: color 1.5s, background-color .5s;
transition: property duration timing-function delay;
a {
color: blue;
background-color: red;
transition: color 1s ease, background-color .8s ease-out;
}
a:hover {
color: red;
background-color: blue;
transition: .5s ease;
}
transform: translateX(50px);
transform: translateY(20px);
transform: translate(100px, 20px);
/* Pode ser rotacionado em graus,
voltas ou grado
*/
transform: rotate(45deg);
transform: scaleX(1.2);
transform: scaleY(1.5);
transform: scale(0.3, 1.4);
transform: skewX(50deg);
transform: skewY(70deg);
transform: skew(50deg, 20deg);
transform: rotate(-30deg) scale(0.4);
http://howtocenterincss.com/
http://browserdiet.com/pt/
https://github.com/styleguide
http://ami.responsivedesign.is/
https://developer.mozilla.org/pt-PT/
http://diegoeis.github.io/code-guide/
https://css-tricks.com/examples/ShapesOfCSS/
http://corpuscss.com/
http://willianjusten.com.br/
https://developers.google.com/speed/pagespeed/insights/
https://www.google.com/webmasters/tools/mobile-friendly/
100 Recursos para UI Designers
http://www.fontreach.com/#top
Desenvolvimento Web com HTML, CSS e Javascript
HTML5 e CSS3 com Farinha e Pimenta