28
TIAGO SANTOS CASCADING STYLE SHEETS [email protected] @tiagomssantos www.scoop.it/t/ccsbucket ESCOLA DE TECNOLOGIAS E ARQUITETURA

Introdução a CSS

Embed Size (px)

DESCRIPTION

Aula de introdução a CSS

Citation preview

Page 1: Introdução a CSS

cssTiago SanToS

CaSCading STyle SheeTS

[email protected]@tiagomssantos

www.scoop.it/t/ccsbucket

eSCola de TeCnologiaS e arquiTeTura

Page 2: Introdução a CSS

HTML

CSS

eSTruTura & ConTeúdo

eSTilo & aparênCia

Page 3: Introdução a CSS

Boas Práticas

Ficheiro cSS externo & declaração de claSSeS

eVitar* cSS embebido no html

eVitar* inline cSS

* (excepto em newsletters e-mail)

<!DOCTYPE html><html><head><title>CSS demo</title><link rel=”stylesheet” href=”cssfile.css”></head><body>

<h1 class=”header”>This is a header</h1>

</body></html>

<!DOCTYPE html><html><head><title>CSS demo</title></head><body>

<h1 style=”color: red;”>This is a header</h1>

</body></html>

<!DOCTYPE html><html><head><title>CSS demo</title><style type=”text/css”> .header { color: red; }</style></head><body>

<h1 class=”header”>This is a header</h1>

</body></html>

Page 4: Introdução a CSS

Síntaxe

selector propriedade

declaration block

valor

iníciodeclaração

fimdeclaração

separadorpropriedade / valor

a { background-color: yellow; }

}

Page 5: Introdução a CSS

Selectores

selector exemploID #header

Class .promo

Type div

Adjacent sibling h2 + p, ul + p

Child li > ul, div#container > ul

Descendant ul a, li a

Universal *, #container *

Attribute [type="text"]

Pseudo-classes/-elements a:hover, :first-child, :nth-child; :nth-of-type

http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize

Page 6: Introdução a CSS

Prioridade entre Selectores

selector style id class attribute priority* 0 0 0 0 0

p 0 0 0 1 1

div a 0 0 0 2 2

div a.color 0 0 1 2 12

div .color .text 0 0 2 1 21

div .color p #news 0 1 1 2 112

style=”” 1 0 0 0 1000

!important#amesmacoisa {

color: red !important; }

#amesmacoisa {

color: #000; }

Page 7: Introdução a CSS

Valores e Unidades

em →

px →

pt →

% →

font-size: 2em valor calculado do tipo de letra

font-size: 2px tamanho em pixeis

font-size: 2pt tamanho em pontos

font-size: 80% acho que perceberam a ideia...

border: 0 não precisa de unidade

Page 8: Introdução a CSS

Cor

red = rgb(255,0,0) = rgb(100%,0%,0%) = #ff0000 = #f00

div {

color: blue;background-color: green;border: 1px solid red;}

Page 9: Introdução a CSS

Texto

font-family: arial, helvetica, “Times new roman”...font-size: px | emfont-weight: bold | normal | bolder | lighter | 100, ..., 900font-style: normal | italictext-decoration: none | underline | line-through | overlinetext-transform: none | lowercase | uppercase | capitalizeletter-spacing: px | emword-spacing: px | emline-height: 1.5text-align: left | right | center | justify.

Page 10: Introdução a CSS

@font-face

@font-face { font-family: ‘MyWebFont’; src: url(‘webfont.eot’); /* IE9 Compat Modes */ src: url(‘webfont.eot?#iefix’) format(‘embedded-opentype’), /* IE6-IE8 */ url(‘webfont.woff’) format(‘woff’), /* Modern Browsers */ url(‘webfont.ttf’) format(‘truetype’), /* Safari, Android, iOS */ url(‘webfont.svg#svgFontName’) format(‘svg’); /* Legacy iOS */}

http://sixrevisions.com/css/font-face-guide/

body { font-family: ‘MyWebFont’ , Verdana, sans-serif;}

Page 11: Introdução a CSS

Border

border: 1px solid red;

div {

border-radius: 10px;}

dotted solid dashed double

border-style

http://net.tutsplus.com/tutorials/html-css-techniques/css-refreshers-borders/

Page 12: Introdução a CSS

Background

background-color: blue | #0000ff | rgb(0, 0, 255)background-image: url(images/image.jpg);

background-position: left | center | right top|center|bottom;

background-repeat: repeat | no-repeat | repeat-x | repeat-y | inheritbackground-attachment: fixed | scroll | inherit

http://coding.smashingmagazine.com/2009/09/02/backgrounds-in-css-everything-you-need-to-know/

background: red url(image.jpg) 50% 0 repeat-y;

eixo x eixo y

Page 13: Introdução a CSS

Box Model

Margin

Border

Padding

Width

div {

border: 4px solid red;height: 300px;margin: 20px 20px 20px 20px;padding: 20px 20px 20px 20px;}

} top, right, bottom, left

Page 14: Introdução a CSS

Position: Fixed Positioning

.parent

.child

.child {

position: fixed;top: 0;right: 0;left: 0;}

.parent {

position: relative;}

Page 15: Introdução a CSS

Position: Absolute Positioning

.parent

.child

.child {

position: absolute;top: 10px;left: 10px;}

.parent {

position: relative;}

http://css-tricks.com/video-screencasts/110-quick-overview-of-css-position-values/

Page 16: Introdução a CSS

Floats

.content .nav

.content {background: green;float: left;width: 660px;}

.container {width: 960px;margin: 0 auto;}

.nav {background: blue;float: right;width: 300px;}

.footer {background: red;clear: both;}

http://alistapart.com/article/css-floats-101

.footer

.container

Page 17: Introdução a CSS

Clear Floats

.clearfix:after { content: “.” ; visibility: hidden; display: block; height: 0; clear: both;}

http://css-tricks.com/all-about-floats/

Page 18: Introdução a CSS

Z-index & Opacity

.one { background: red; position: absolute; z-index: 1; opacity: 0.35;}

http://coding.smashingmagazine.com/2009/09/15/the-z-index-css-property-a-comprehensive-look/

.two { background: blue; position: absolute; margin: 10px;}

.one

.two

Page 19: Introdução a CSS

Display

.div { display: none | inline | inline-block | block;}

http://css-tricks.com/almanac/properties/d/display/

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

inline<span> <em> <b>

block<div> <ul> <p> <h1>

inline-block

Sed ut unde omnis

iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore quasi architecto beatae vitae dictant explicabo.

inlineblock

inlineblock

sit

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.

Totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto.

Page 20: Introdução a CSS

Overflow

http://css-tricks.com/the-css-overflow-property/

hiddenViSible Scroll auto

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

.div { display: visible (default) | hidden | scroll | auto}

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore

Page 21: Introdução a CSS

Preprocessors

http://sass-lang.com http://learnboost.github.com/stylus

http://css-tricks.com/sass-vs-less http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less-vs-stylus-a-preprocessor-shootout/

http://lesscss.org

Page 22: Introdução a CSS

Setup LESS

http://lesscss.org/#usage

<link rel=”stylesheet/less” type=”text/css” href=”style.less”><script src=”less.js” type=”text/javascript”></script>

Page 23: Introdução a CSS

Import & Variáveis

http://lesscss.org/#docs

VariáVeiSimport

@red: #ff0000;@import “prefixer.less”;

Page 24: Introdução a CSS

Mixins

.gradients { background: #eaeaea; background: linear-gradient(top, #eaeaea, #ccc); background: -o-linear-gradient(top, #eaeaea, #ccc); background: -ms-linear-gradient(top, #eaeaea, #ccc); background: -moz-linear-gradient(top, #eaeaea, #ccc); background: -webkit-linear-gradient(top, #eaeaea, #ccc); }

div { .gradients; border: 1px solid #555; border-radius: 3px; }

Page 25: Introdução a CSS

Nesting

div { a { &:hover { border: 1px solid #555; } }}

Page 26: Introdução a CSS

Operações

@height: 100px;

.element-A { height: @height; }.element-B { height: @height * 2;}.element-C { height: @height + 2;}.element-D { height: @height - 2;}.element-E { height: @height / 2;}

@base: 5%;@filler: (@base * 2);

.element-A { color: (#888 / 4); height: (100% / 2 + @filler);}

Page 27: Introdução a CSS

Funções

@base: #f04615;@width: 0.5;

.class { width: percentage(0.5); // returns `50%` color: saturate(@base, 5%); background-color: spin(lighten(@base, 25%), 8);}

http://lesscss.org/#reference

Page 28: Introdução a CSS

Frameworks http://blog.teamtreehouse.com/a-look-at-responsive-css-frameworks