Escolar Documentos
Profissional Documentos
Cultura Documentos
de marcação
▪ 2008 - HTML 5
Exemplos:
<html lang="pt">
<head>
<meta charset="utf-8" />
<title>Título da Página</title>
</head>
<body>
Conteúdo da Página
</body>
</html>
<meta name="keywords"
content=“FCP,Shakthar,Moreirense" />
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="utf-8" />
<title>Exemplo</title>
</head>
<body>
Conteúdo da
Página
</body>
</html>
* - Entidades
Introdução àpré-definidas
Programação Web no XML, § - O Apóstrofo não está definido no HTML, apenas surge no
- ESTSetúbal/IPS 26
XHTML
▪ O texto:
▪ Ficará:
As etiquetas em html são colocadas entre < e
>, por exemplo,
"<p>parágrafo</p>"
<body>
Fatorial em C:
<pre>
int resultado = 1;
resultado *= i;
return resultado;
</pre>
</body>
</html>
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="utf-8" />
<title>exemplo</title>
</head>
<body>
Uma linha<br/>Outra linha<br/><hr/>Frase no meio de
linhas<hr/>
</body>
</html>
Introdução à Programação Web - ESTSetúbal/IPS 31
Introdução à Programação Web - ESTSetúbal/IPS 32
▪ Etiqueta p:
<p>Isto é um exemplo de um parágrafo</p>
<p>Outro parágrafo</p>
▪ Dimensões:
<img src="logotipo.jpg" alt="Logotipo IPS"
width="180" height="140"/>
Introdução à Programação Web - ESTSetúbal/IPS 38
▪ Externas:
<a href="http://www.ips.pt/">Página IPS</a>
<a href="http://www.ips.pt/"><img src="logotipo.jpg"
alt="Logotipo IPS" /></a>
Valor Descrição
_blank Abre numa nova janela ou tab
_self Abre no mesmo frame onde foi “clicado” (omissão)
_parent Abre no frame pai
_top Abre na janela principal
nome-frame Abre no frame com nome
▪ Vantagens:
▪ Aumenta o nível semântico de caracterização da página;
▪ Facilita o trabalho dos Browsers para deficientes e/ou
sistemas automáticos de deteção de páginas (ex.: motores de
pesquisa);
▪ Facilita a introdução de documentos externos no
documento principal (mais modular);
▪ Facilita a separação/identificação de aspetos acessórios
(ex.: logotipos, menus de navegação, etc.) que não são
“informação”.
▪ Etiquetas de estruturação
(article, section, nav, aside, header, footer)
<table>
<caption>
População residente por Local e Sexo
</caption>
<thead>
...
</thead>
<tfoot>
...
</tfoot>
<tbody>
...
</tbody>
</table>
Introdução às CSS
CSS - Cascade Style Sheets
norma: http://www.w3.org/Style/CSS/
Desvantagem:
repetição da formatação para diversos elementos
4
Exemplo de uso: Style em
...
<table>
<tr>
<td>2008</td><td>800</td><td>950</td><td>150</td></tr>
<td>2009</td><td>800</td><td>930</td><td>130</td></tr>
<tr>
<td>2010</td><td>750</td><td>800</td><td>50</td></tr>
<td>2011</td><td>700</td><td>720</td><td>20</td></tr>
</table>
5
<table>
Exemplo de uso: Style em
7
Definição e utilização dos estilos
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="utf-8" />
10
Estilos do utilizador
• O utilizador pode definir uma folha de estilos que se
sobreporá aos estilo por omissão do Browser
(acessibilidade):
11
Seletores
• Os seletores indicam (através de emparelhamento) a
aplicabilidade da regra.
Fonte: http://www.w3.org/TR/css3-selectors/ 12
Seletores de tipo e universal
• No seletor de tipo usa-se o nome da etiqueta HTML
• A regra será aplicada a todos os elementos que possuam
h1 {color: red;
font-weight: bold;
font-style: italic;}
13
Seletores de classe
• A ideia original de associar um nome a um estilo
• No seletor o nome da classe é antecedida de um ponto (.)
...
<style type="text/css">
</style>
...
...
15
Seletor de ID
• O atributo id permite identificar univocamente cada
elemento do HTML (será muito útil no JavaScript)
16
Exemplo de seletores de ID
...
<style type="text/css">
#segundo
color: red;
</style>
...
<p>Isto é um texto</p>
<p>Mais um texto</p> 17
Seletores de atributo
• Os seletores de atributo são colocados entre [ ]
• Podem ser apenas incluído o atributo: exemplo → [target]
19
Uso de :target destacar a seleção
<!DOCTYPE html>
<html lang="pt">
<head>
etc.
23
Seletores de pseudo-elementos
• Representam partes de elementos:
::first-letter – primeira letra
::first-line – primeira linha
24
Seletores de pseudo-elementos
• A propriedade content (usada em ::before e
::after) pode ser:
String: "Nota: "
25
Seletor ::selection
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="utf-8" />
26
</html>
Seletor ::selection
30
Cálculo da especificidade
p, div {color: #300; font-size: 1.2em;
resultado:
O parágrafo (p) com id="footer", mesmo que tenha class="noticias",
terá cor branca (#FFF)
Os parágrafos com class="noticias" terão cor verde (#0C0)
Todos os outros parágrafos terão cor vermelho escuro (#300)
31
Conclusões - resumo
• Repetição com a utilização exclusiva de style
• Criação de estilos: inline (atributo style), internos (etiqueta style)
e externos (etiqueta link)
32
[IPW]
Unidades,
propriedades,
block/inline
Unidades das dimensões
• Podemos indicar dimensões em diferentes unidades.
• “Informáticas”:
Pixels: px; (depende da resolução, impressos devem ser 96dpi)
2
Unidades das dimensões
• Relativas:
Percentagem: %;
Fonte: http://www.w3.org/Style/Examples/007/units.en.html 3
Outras Unidades Fonte: http://www.w3.org/TR/css3-values/
• cursive:
• fantasy:
• monospace:
5
Propriedades abreviadas
• Possibilidade de indicar de uma vez o valor para várias
propriedades relacionadas:
6
Propriedades abreviadas
• Possibilidade de indicar de uma vez o valor para várias
propriedades relacionadas:
7
Propriedades abreviadas
• O mesmo se passa para margin e padding:
margin-top: 10px;
• pode ficar:
margin: 10px 20px 30px 20px;
• ou ainda:
margin: 10px 20px 30px; (top, right-left, bottom)
margin: 10px 20px; (top-bottom, right-left)
margin: 10px; (top-right-bottom-left)
8
Propriedades abreviadas
• font: font-style font-variant font-weight
font-size/line-height font-family
• border: border-width border-style border-color
9
Estilos em grupos de elementos
• Usar os estilos nas etiquetas “agrupadoras”:
div, article, section, nav, aside,
10
Etiqueta span
<!DOCTYPE html>
<html lang="pt">
<head>
http://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements
15
Block vs Inline
• Elementos por omissão apresentados em inline:
http://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements
16
Conclusões - resumo
• Unidades
• Propriedades e valores
17
[IPW]
CSS – aplicação,
prefixos e media
queries
aplicação dos estilos
3
Colocação dos elementos
• O valor para a propriedade é calculado/encontrado em função
das regras CSS:
Fonte: http://www.w3.org/TR/CSS2/cascade.html 4
Colocação dos elementos
• O valor para a propriedade é calculado/encontrado em função
das regras CSS:
http://www.w3.org/TR/CSS/#properties
Usando, numa regra, o valor:
initial: “forçamos” a utilização do valor inicial
6
Colocação dos elementos
Herança de valores
Também pode ser usado como regra (“no meio das outras”):
@media print {
a { color: #000; text-decoration: none; }
}
Fonte: http://www.w3.org/TR/css3-mediaqueries/ 9
Media Queries
• A partir da CSS3 foi possível condicionar regras a
características dos dispositivos através de Media Queries.
min-width,
max-height,
min-height,
Fonte: http://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries 11
Exemplos de Media Queries
• Se a largura é maior que 800px (o only garante a não aplicação em
Browsers antigos que só veriam “@media screen …”. o not
<picture>
<source media="(min-width: 64em)" src="grande.png">
<source media="(min-width: 37.5em)" src="media.png">
<source src="pequena.png">
<img src="omissao.png"
alt="Para Browsers que não reconheçam o source.">
<p>Texto se tudo o resto falhar (como o alt)</p>
</picture>
Fonte: http://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture 14
Conclusões - resumo
• Aplicação dos estilos aos Elementos
• Herança de valores
15
[IPW]
CSS – intro
posicionamento
Posição dos elementos
<!DOCTYPE html>
<html>
</html>
2
Posição dos elementos
• O Browser ao processar o documento começa a colocar os
elementos da esquerda para a direita e de cima para baixo
(normal flow).
5
Modelo de Caixa (Box Model)
Cada elemento é colocado como se fosse uma caixa retangular, sendo
possível definir:
margens,
bordos e
Margem (margin)
Bordo (border)
Espaçamento (padding)
6
Modelo de Caixa (Box Model)
3D
}
#interno {
background-color: #EEE;
margin: 10px 20px 30px 40px;
border: 1px solid red;
padding: 40px 30px 20px 10px;
}
</style>
...
<div id="externo">
<div id="interno">MMMMM</div>
</div>
...
Nota: Controlar o funcionamento através das “Ferramentas de Desenvolvimento” nos Browsers – F12
8
“Ferramentas de
Desenvolvimento” – F12
10
display: inline
• Para os elementos com display: inline é possível definir
as margin e o padding
mas apenas têm efeito na horizontal (os valores verticais não serão utilizados,
11
display: inline-block
• O valor inline-block para a propriedade display
concilia os “comportamentos” do inline e do block:
12
display: inline-block
16
Menu Horizontal
• Colocar os elementos da lista em modo de linha:
ul#menu li
17
Menu Horizontal
• Formatar as ligações com cores, dimensões, alinhamentos e
imagem de fundo:
display: inline-block;
text-decoration: none;
color: #FFF;
/* CirculoLaranja.png: 16x16 */
} 18
Menu Horizontal
color: #000;
background-color: #69C;
20
Posicionamento
22
Posicionar elementos
• Com o posicionamento fora do “normal flow” (position:
static) é possível controlar quais os elementos que ficam
“mais acima” (sobreposto) ou “mais abaixo” (coberto) através
23
Posicionar elementos
• O posicionamento fora do “normal flow” (position: static) é
feito através das propriedades:
left, top, right, bottom.
top
left right
Bottom
31
Conclusões - resumo
• Posição dos elementos (inline e block)
• Ocultar elementos
32
[IPW]
2
Criação de um layout fluido
• Criar um layout para uma página:
Menu Conteúdo
20% 80%
Rodapé
10%
3
Criação de um layout fluido
• Criar um layout para uma página: article
Menu Conteúdo
nav
ul id="menu"
Rodapé footer
4
Layout fluido
...
<article>
<header>A Empresa</header>
<div id="esquerda">
7
Layout fluido
• Formatar o article:
article {
header {
Fonte: http://www.w3.org/TR/CSS2/box.html 10
Layout fluido
12
Layout fluido
• Formatar o menu:
ul#menu {
margin-left: 0;
padding-left: 0;
19
box-sizing
Fonte: http://www.w3.org/TR/css-ui-3/#box-sizing 21
Propriedade box-sizing
• Alteração, no layout fluido, das regras para utilizar
box‐sizing: border-box;
22
Propriedade box-sizing
• Alteração, no layout fluido, das regras para utilizar
box‐sizing: border-box;:
23
Conclusões - resumo
• Exemplo de layout fixo
Tentar não usar layouts fixos. Em desuso!
• Propriedade box-sizing
24
[IPW]
CSS –
FlexBox intro
No último episódio de PI-LInf
• Exemplo de layout fluido
• Propriedade box-sizing
2
float “issue”
</style>
...
<section>
<figure>
<img src="/images/areas.png" alt="Cálculo das áreas" />
<figcaption>
Fig. 1: Fórmulas de Cálculo das Áreas
</figcaption>
</figure>
<p>Lorem ipsum dolor ...</p>
</section>
...
4
float “issue” –
“perde-se” conteúdo
figure {
float: right;
}
</style>
...
<section>
<figure>
<img src="/images/areas.png" alt="Cálculo das áreas" />
<figcaption>
Fig. 1: Fórmulas de Cálculo das Áreas
</figcaption>
</figure>
<p>Lorem ipsum dolor ...</p>
</section>
...
6
float “issue” –
“perde-se” conteúdo
• Um elemento (figure) colocado como float é retirado do
“normal flow” e colocado lateralmente:
section::after {
content: "";
display: block;
clear: both;
}
Fonte: http://cssmojo.com/the-very-latest-clearfix-reloaded/ 8
float “issue” –
“perde-se” conteúdo
...
<style type="text/css">
section {
border: 1px solid #000;
padding: 5px;
figure {
float: right;
}
section::after {
content: "";
display: block;
clear: both;
}
</style>
...
<section>
<figure>
<img src="/images/areas.png" alt="Cálculo das áreas" />
<figcaption>
Fig. 1: Fórmulas de Cálculo das Áreas
</figcaption>
</figure>
<p>Lorem ipsum dolor ...</p>
</section>
...
9
float “issue” –
“perde-se” conteúdo
13
Flexbox – Terminologia
17
Layout fluido com Flexbox
• border-box Model • Flexbox
article {
18
Layout fluido com Flexbox
• border-box Model • Flexbox
header { header {
19
Layout fluido com Flexbox
• border-box Model • Flexbox
#esquerda { #esquerda {
#direita {
#direita { padding: 0 10px;
float: right; background-color: #69C;
padding: 0 10px; height: 80%;
background-color: #69C; width: calc(80% - 20px);
height: 80%; box-sizing: border-box;
width: calc(80% - 20px); flex-basis: 80%;
box-sizing: border-box; /* width: 80%; */
width: 80%; flex-basis: calc(80% - 20px);
} /* width: calc(80% - 20px);*/
} 20
Layout fluido com Flexbox
• border-box Model • Flexbox
footer { footer {
21
Layout fluido com Flexbox
• Box Model
• Flexbox
{
...
-webkit-flex-direction: row; /* Safari */
flex-direction: row;
23
}
Fonte: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout#Browser_compatibility
Conclusões - resumo
• Resolução da perda de conteúdo por uso de float,
“position: absolute” e “position: fixed”
• Flexbox
24
[IPW]
Forms
Elemento form
• O elemento form, introduzido na versão 2 do HMTL,
agrupa um conjunto de controlos para introdução da
2
Envio da informação
• O envio da informação é feito através de um conjunto
de pares “nome do controlo”/“valor”.
3
Controlos para introdução da
informação
• O elemento input representa diversos tipos de controlos,
sendo diferenciados através do atributo type:
4
Criação de botões
• O elemento input também permite a criação de botões, sendo
diferenciados através do atributo type:
button – botão de texto genérico (usar onclick)
5
No HTML5 temos novos tipos
de input
• São definidos 13 novos tipos de elementos input para as form
(em caso de incompatibilidade ficam como text):
<input type="search"> – caixas de pesquisa (permite limpar
6
No HTML5 surgem atributos novos do
input
• Com o atributo placeholder é possível colocar um
texto que aparece (normalmente mais suave – a cinza) para
8
Porções de texto
• A introdução de grandes porções de texto é feito
através do elemento textarea,
9
Colocação de rótulos
• A introdução de rótulos é feita através do elemento
label.
10
Criação de zonas na form
• É possível agrupar elementos da form, criando zonas
através do elemento fieldset.
11
Exemplo de form
• Pretende-se criar uma form com o seguinte aspeto:
13
Exemplo de form (continuação)
<label>Sexo:</label>
<input id="masculino" name="sexo" type="radio" value="m" />
<label for="masculino" class="valores">Masculino</label>
<input id="feminino" name="sexo" type="radio" value="f" />
14
Exemplo de form (continuação)
<fieldset>
<legend>Sugestões</legend>
<label for="mensagem">Mensagem:</label><br />
<textarea id="mensagem" name="mensagem" rows="10" cols="50"
15
Exemplo de form (resultado)
17
Listas
• É possível indicar o número de alternativas visíveis no
elemento select através do atributo size:
18
Listas
• É possível criar grupos (organizar opções) através de
optgroup:
19