Escolar Documentos
Profissional Documentos
Cultura Documentos
Oliveira
Cincia da Computao UESC
Associao Empresa Jnior de Computao
Programao Web:
[HTML/CSS (tableless), jQuery, PHP, Smarty]
Contato: victorajoliveira@gmail.com
Introduo
W3C
HTML
Introduo
Sintaxe
XHTML
HTML 5
CSS
Sintaxe
Propriedades
Novidades
<etiqueta>...</etiqueta>
atributo
valor
Estrutura bsica:
<!DOCTYPE HTML>
<html>
<head>
<title>Ttulo do Documento</title>
</head>
<body>
texto, imagem, links, ...
</body>
</html>
<body>
<h1>This
<h2>This
<h3>This
<h4>This
<h5>This
<h6>This
</body>
is
is
is
is
is
is
heading
heading
heading
heading
heading
heading
1</h1>
2</h2>
3</h3>
4</h4>
5</h5>
6</h6>
<b>
- Define o texto como negrito
<big> - Define o texto como grande
<em> - Define o texto como nfase
<i>
- Define o texto como itlico
<small> - Define o texto como pequeno
<strong>- Define o texto como forte
<sub> - Define o texto como subscrito
<sup> - Define o texto como sobrescrito
<body>
<p><b>Texto - bold</b></p>
<p><strong>Texto - strong</strong></p>
<p><big>Texto - big</big></p>
<p><i>Texto - italic</i></p>
<p><em>Texto - emphasized</em></p>
<p><code>Texto - code</code></p>
<p>Texto <sub> subscrito</sub>
e texto<sup> sobrescrito</sup></p>
</body>
Especificando URLs
URL relativa
background-image: URL(img1.png);
background-image: URL(../arquivo.jpg);
URL absoluta
background-image: URL(http://www.site.com/nw.jpg);
<tr> - Linha
<td> - Coluna
<th> - Coluna/Linha Ttulo
<caption> - Ttulo da tabela
<thead> - Cabealho da tabela
<tbody> - Corpo da tabela
<tfoot> - Rodap da tabela
<table border="1">
<tfoot>
<tr><td>Soma</td><td>R$160</td></tr>
</tfoot>
<thead>
<tr><th>Ms</th><th>Quantia</th></tr>
</thead>
<tbody>
<tr><td>Janeiro</td><td>R$150</td></tr>
<tr><td>Fevereiro</td><td>R$10</td></tr>
</tbody>
</table>
Rowspan
Colspan
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
HTML
- Linguagem de Marcao
CSS
- Folhas de Estilo em Cascata
JavaScript
- Linguagem de script
<form>
<label>Nome:</label><br />
<input type="text" name="firstname"/><br />
<label>Password:</label> <br />
<input type="password" name="pwd" /><br />
<label>Sexo:</label> <br />
<input type="radio" name="sex" value="male" />
Masculino<br />
<input type="radio" name="sex" value="female"
/> Feminino<br /><br />
&sex=male&veiculo=html&veiculo+=css
<frameset rows="25%,75%">
<frame src="frame_a.htm" />
<frame src="frame_b.htm" />
<noframe>
<body>
...
</body>
</noframe>
</frameset>
framespacing
espaamento entre frames (em pixel)
frameborder
existncia de bordas entre frames (boolean)
src
caminho da pgina HTML a ser exibida no frame
noresize
impede redimensionamento do frame
scrolling
habilita barra de rolagem (yes ou no)
Certo:
<table width="100%">
Certo:
<table width="100%">
Errado:
<input readonly>
<input disabled>
Certo:
<input readonly="readonly" />
<input disabled="disabled" />
<!DOCTYPE HTML>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="estilo.css">
<title></title>
</head>
<body>
...
</body>
</html>
Novos tipos
tel
search
email
url
number
range
Exemplos:
Exemplos
Date:
<input type="date" name="user_date" />
<br />
Month:
<input type="month" name="user_date" />
<br />
Week:
<input type="week" name="user_date" />
<br />
Time:
<input type="time" name="user_date" />
<br />
Date and time:
<input type="datetime" name="user_date" />
<br />
Placeholder antes:
<input name=srch" value="Search here"
onfocus=if(this.value=='Search here')
this.value=>
Autofocus:
<input name="login" autofocus >
Required
<input name="login" required>
Pattern
nos permite definir expresses regulares de
validao, sem Javascript
Pattern
<form>
<label for="CEP">CEP:
<input name="CEP" id="CEP" required
pattern="\d{5}-?\d{3}" />
</label>
<input type="submit" value="Enviar" />
</form>
section
nav
article
aside
hgroup
header
footer
time
subject
itemprop
item
hidden
draggable
Contenteditable
Exemplo:
<p>Texto no editvel</p>
<p contenteditable="true"> Edite-me... </p>
Incorporada ou interna
Externa
Facilidade de manuteno;
Novas possibilidades de apresentao visual;
Criao de sites tableless;
Diminuio do tempo de download;
Permite o controle em sistemas que no exibem
informaes em tela;
...
<link rel=stylesheet type=text/css href=estilo.css/>
...
</head>
Herana
<html>
<head>
</head>
<body>
<! Todo o pargrafo ser sublinhado -->
<p style=font-style:italic;>
Inicio do paragrafo.
<br />
<a href=outrapagina.html> Link </a>
<br />
Fim do paragrafo.
Esse link tambm ficar sublinhado
</body>
</html>
Rule-Set
Seletores
De tipos de elementos:
A { font-weight: bold; }
De elementos mltiplos:
H1, H2, H3 { font-weight: bold; }
Universal:
* { font-weight: bold; }
De elementos adjacentes:
H1 + p { font-weight: bold; }
De elementos descendentes:
TABLE p { font-weight: bold; }
CLASS
.nomeclass { ... }
ID
#nomeid { ... }
Atributo
A[target] { color: blue; }
img[width=100] { color: blue; }
<h1>Titulo H1</h1>
<h2>Titulo H2</h2>
<h3>Titulo H3</h3>
<p>Parte do par <span>Span do paragraf</span></p>
<p>outro paragrafo</p>
<p class="green">outro paragrafo</p>
<p id="blue">outro paragrafo</p>
<a>Link inativo</a>
<a title="teste abc">Link inativo</a>
<a title="sinform">Link inativo</a>
a{color:red;}
H2,H3{margin-left:50px;}
*{font-style:italic;}
H3 + p { font-weight: bold; }
p span { font-size:25px; }
.green{color:green;}
#blue{color:blue;}
A[title~="abc"] { text-decoration:underline; }
A[title|="sinform"] { text-decoration:blink;}
Pseudoclasses
:link
:visited
:active
:hover
<style type="text/css">
a { font-weight:bold; }
a:link { color: black; }
a:visited { color: blue; }
a:active { background:green ;}
a:hover { color: red; }
</style>
Unidades de Medida
Unidades de tamanho relativo:
% - relativa ao tamanho-padro ou ao tamanho
herdado de uma medida;
em relativo ao tamanho da propriedade font-size de
um elemento;
px define o tamanho de um pixel do monitor.
Ex: p { font-size: 13px; }
HTML:
<h1>Titulo H1</h1>
<h2>Titulo H2</h2>
<h3>Titulo H3</h3>
<p>Parte do par</p>
<span>Span do paragraf</span>
<br/>
<a>Link</a>
CSS
h1 { margin-left:10%; }
h2 { margin-left:10em; }
h3 { margin-left:10px; }
p { margin-left:5cm; }
span { margin-left:5in; }
a { margin-left:5pt; }
Especificando URLs
URL relativa
background-image: URL(img1.png);
background-image: URL(../arquivo.jpg);
URL absoluta
background-image: URL(http://www.site.com/nw.jpg);
Especificando cores
#RRGGBB Cada par possui at 256 combinaes
(entre 00 e FF)
Ex: p { color: #FF0000; }
Font
Seletor { font: [estilo] [variao] [peso]
[tamanho]/[altura] [famlia] }
Ex: body { font: bold small-caps 12pt/14pt Arial }
Font
font-family
serif
sans-serif
cursive
fantasy
monospace
font-size
p { font-size: 12px; }
font-style
p { font-style : italic; }
font-variant
p { font-variant : small-caps; }
font-weight
p { font-weight : bold; }
Text
letter-spacing
p { letter-spacing: 0.4em; }
word-spacing
p { word-spacing : 0.4em; }
Background
Seletor { background: [cor-de-fundo] [imagem-defundo] [repetio] [anexo] [posio] }
Ex: body { background: #fff url(img.png) repeat-x
fixed top right}
Background
background-color
body { background-color: #000; }
background-image
body { background-image : url(figura.jpg); }
background-repeat
body { background-repeat : repeat-x; }
background-attachment
body { background-attachment : fixed; }
background-position
body { background-position : 20% 20%; }
<body>
<div></div>
</body>
</html>
Margin
Seletor { margin: [ valor1[ valor2 [ valor3 [ valor4 ]]]] }
Ex: div { margin: 5px 2px 0px 25px; }
margin-top
p { margin-top: 2px; }
margin-right
p { margin-right : 25px; }
margin-bottom
p { margin-bottom : 3cm; }
margin-left
p { margin-left : 1em; }
Padding
Seletor { padding: [ valor1[ valor2 [ valor3 [ valor4 ]]]] }
Ex: div { padding : 5px 2px 0px 25px; }
padding-top
p { padding-top: 2px; }
padding-right
p { padding-right : 25px; }
padding-bottom
p { padding-bottom : 3cm; }
padding-left
p { padding-left : 1em; }
Geradores de Contedo
Content
A:before { content: Teste ;}
Counter-increment
H2:before { counter-increment: cont 5;}
Counter-reset
Body { counter-reset: cont}
HTML:
<p>teste</p>
<p>teste</p>
<p>teste</p>
<p>teste</p>
<p>teste</p>
<p>teste</p>
<p>teste</p>
CSS:
body{counter-reset: cont;}
p:before{
counter-increment:cont;
content:counter(cont) " - ";
}
HTML
<h1>Introduo</h1>
<h2>Programao Web com CSS</h2>
<h1>HTML</h1>
<h2>O que </h2>
<h2>Sintaxe</h2>
<h1>W3C</h1>
<h2>Qual sua utilidade</h2>
<h1>CSS</h1>
<h2>Utilidade</h2>
<h2>Sintaxe</h2>
<h2>Propriedades</h2>
CSS
body {counter-reset:secao;}
h1 {counter-reset:subsecao;}
h1:before {
counter-increment:secao;
content:"Seo " counter(secao) ". ";
}
h2:before {
counter-increment:subsecao;
content:counter(secao) "." counter(subsecao) " ";
}
Tableless
Menu vertical
Menu horizontal
Boto
Rollover
Menu Drop-Down
Menu com abas
Hack
1 Passo
Escolha os containers do layout, ou seja, as divs
principais que sero criadas;
No se esquea que as margens entre um container
e outro contam na soma da largura do seu layout.
2 Passo
Nomeie os containers de acordo com suas
finalidades. No nosso exemplo adotaremos os
seguintes nomes para as DIVs principais do layout:
geral
topo
nav
menu
conteudo
rodape
3 Passo
Crie as DIVs vazias para representar os containers
<div id=geral">
<div id=topo"></div>
<div id=nav"></div>
<div id="menu"></div>
<div id="conteudo"></div>
<div id=rodape"></div>
</div>
body{
margin: 0;
padding: 0;
font: 12px arial, helvetica, sans-serif;
text-align: center;
color: #505367;
background-color: #D6D6D6;
}
#geral{
margin: 10px auto;
width: 650px;
height: auto;
text-align: left;
background-color: red;
border: 1px solid black;
}
6 Passo
Para posicionar o topo, definimos apenas a altura e
a largura:
#topo{
height: 45px;
background-color: fuchsia;
}
7 Passo
Posicionando o menu de navegao horizontal,
definimos uma altura mxima para tal:
#nav{
height: 25px;
background-color: green;
}
8 Passo
O alinhamento do menu vertical ser feito pela
direita e no inline como as outras divs. Alm de
definir altura e largura da mesma:
#menu{
float: right;
width: 180px;
height: 100px;
background-color: yellow;
}
9 Passo
Para posicionar o contedo preciso definir as
margens direita e esquerda. A margem direita deve
ser maior do que o menu da direita, pois a
DIVconteudo no poder ultrapass-lo:
#conteudo{
margin-right: 200px;
margin-left: 20px;
height: 200px;
background-color: aqua;
}
10 Passo
Para o rodap utilizaremos a propriedade clear:both
para equalizar qualquer elemento anteriomente
flutuado. Ou seja, ele limpa a flutuao das divs
anteriores para no interferir no posicionamento do
rodap:
#rodape{
clear: both;
height: 20px;
background-color: lime;
}
Ficar assim:
<div id="menu">
<h3>Servios</h3>
<ul>
<li><a href="#">Websites</a></li>
<li><a href="#">Internet</a></li>
<li><a href="#">Intranet</a></li>
<li><a href="#">Extranet</a></li>
</ul>
</div>
<div id=conteudo>
<h2>Cabealho</h2>
<p>Lorem ipsum dolor sit amet, consectetuer
adipiscing elit, sed diam nonummy nibh euis mod
tincidunt ut laoreet dolore magna al. </p>
<p> Ut wisi enim ad minim veniam, quis nostrud
exerci tation ullamcorper suscipit lobortis nisl ut
aliquip ex ea commodo. </p>
</div>
Estilizando o topo:
#topo{
height: 45px;
margin-top:-15px;
background-image: url(topo.jpg);
background-repeat: no-repeat;
border-bottom: 1px solid #fff;
position: relative;
color:#fff;
}
#nav li a{
text-decoration: none;
color: #272900;
}
#nav li a:hover{
text-decoration: none;
color: #fff;
}
Estilizando o rodape:
#rodape{
clear: both;
color: #272900;
border-top: 1px dashed #9FA41D;
text-align: center;
font-size: 10px;
}
#menu li {
border:3px outset #060;
margin-bottom:2px;
}
#menu li:active {
border:3px inset #060;
}
#menu a{
display:block;
}
#menu li a:hover {
background-color:#006600;
color:#fff;
}
<div id="menu">
<ul>
<li><a href="#">Section 1</a></li>
<li><a href="#">Section 2</a></li>
<li><a href="#">Section 3</a>
<ul>
<li><a href="#">Section 1</a></li>
<li><a href="#">Section 2</a></li>
</ul>
</li>
<li><a href="#">Section 4</a></li>
</ul>
</div>
Estilo:
#nav li ul {
position: absolute;
left: 0px;
top: 15px;
background-color: #9FA41D;
display: none;
}
#nav li ul li a {
margin-left:-40px;
display:block;
}
#nav ul li {
position: relative;
display: inline;
margin:5px;
padding: 0px 2px 0px 2px;
border-right:none;
}
#nav li:hover ul {
display:block;
}
<div id="header">
<ul>
<li><a href="#">Home</a></li>
<li id="current"><a href="#">News</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
Estilo:
#header {
float:left;
width:100%;
font-size:93%;
background:url(Nova%20pasta/bg.gif)
repeat-x bottom;
}
#header ul {
margin:0;
padding:0;
list-style:none;
padding:10px 10px 0;
}
#header li {
float:left;
background:url(Nova%20pasta/norm_left.png)
no-repeat left top;
margin:0;
padding:0 0 0 9px;
}
#header a {
display:block;
background:url(Nova%20pasta/norm_right.png)
no-repeat right top;
padding:5px 15px 4px 6px;
}
#header #current {
background-image:
url(Nova%20pasta/norm_left_on.png);
}
#header #current a {
background-image:
url(Nova%20pasta/norm_right_on.png);
padding-bottom:5px;
}
<!-- -->
border-top-right-radius: 8px;
border-top-left-radius: 8px;
border-bottom-right-radius: 8px;
border-bottom-left-radius: 8px;
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
PRONTO,
PODE CONTINUAR SOZINHO...
http://www.maujor.com
Fique atento s novidades, testem os exemplos
dados nos sites que falam sobre o tema,
leiam sobre o assunto e pratiquem, testem
combinaes de cores... O que faz a diferena
no final a criatividade somada ao
conhecimento tcnico.