segunda-feira, 16 de setembro de 2013

Tabelas de Dados Acessíveis

As tabelas de dados são muito utilizadas para mostrar informações facilmente, em sites não é diferente, quando podem ser visualizadas tudo bem, o problema mesmo é quando você não pode ler. Os leitores não conseguem lê-las de maneira adequada, então é preciso utilizar código limpo e específico, mostrarei alguns exemplos a seguir.

O primeiro passo para se fazer uma tabela de dados acessível é simplificar o código. Depois deve-se usar o atributo "summary", ele deve ficar dentro da tag table.
EX:
<table summary="Tabela de preços das hortaliças do mercado X">

Usa-se também a tag caption, para dar título à tabela. Ao contrário do summary, a tag caption é rendezirada pelo navigador.
EX:
<caption>Hortaliças</caption>

Além disso, usamos o elemento abbr, que é utilizado para abreviar um nome e para expandir uma abreviação, abaixo temos dois exemplos:

<th abbr="RG">Registro Geral</th>
 ou
<th><abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></th>

No primeiro exemplo, o cabeçalho "Registro Geral" será lido pelo leitor de tela apenas no cabeçalho. Nas células onde estarão os conteúdos de Registro Geral, será lido apenas "RG", antes do conteúdo da célula.

No segundo exemplo, o cabeçalho "DHCP" será lido pelo leitor de tela apenas no cabeçalho. Nas células onde estarão os conteúdos de DHCP, será lida sua extensão "Dynamic Host Configuration Protocol", antes do conteúdo da célula.

Para cabeçalho é usado a tag <th>, que já deixa centralizado e em negrito.
Devemos identificar o cabeçalho com um id para referenciá-lo no atributo headers, que fica dentro da célula (td).
EX:

<th id="fruta">Fruta</th><th id="preco">Preço</th>
<td headers="fruta">Laranja</td><td headers="preco">5,00</td>

O headers deve ter o mesmo valor que o id do cabeçalho, assim o leitor de páginas repetirá o valor que você colocou antes de ler o conteúdo, no exemplo acima ele lerá: "fruta laranja, preço 5,00"

Há outra maneira de fazer a associação entre os nomes do cabeçalho e das células, usando o atributo scope dentro de th. 
EX:
<th scope="col">Fruta</th>
<th scope="col">Preço</th>
<td>Laranja</td><td>5,00</td>

Desta maneira fica implícito que a primeira coluna é a de FRUTA e a segunda é a de PREÇO, então deve-se colocar os elementos na ordem correta, caso contrário a tabela pode não fazer sentido.

Identificador axis.
É usado para associar um identificador id a uma célula, o leitor repete o conteúdo do axis sempre que for requisitado
EX:

<th id="portugues" axis="materia">Português</th>
e, na célula da tabela:
<td headers="portugues">7</td>
O leitor lerá: "Matéria Português 7"

As linhas de uma tabela <tr> podem ser agrupadas em cabeçalho (thead), corpo (tbody) e rodapé (tfoot), quando houver mais de um nível de cabeçalho.
EX:

<thead>Linhas de Cabeçalho</thead>
<tbody>Linhas do corpo da tabela e suas células </tbody>

segunda-feira, 9 de setembro de 2013

O que é conteúdo acessível?

      Muitas vezes ao falarmos em conteúdo acessível logo pensamos que significa apenas colocar o atributo "alt" nas imagens do site e pronto, seu conteúdo já é acessível. Mas não é por aí.
      Ao criar um conteúdo para web é necessário compreender que existem diversos tipos de deficiências, e não somente a visual, então o conteúdo deve ser também adaptado para pessoas que:
  • sejam incapazes de ver, ouvir, se deslocar, ou interpretar determinados tipos de informações;
  • tenham dificuldade em ler ou compreender textos;
  • não tenham um teclado ou mouse, ou não sejam capazes de utilizá-los;
  • possuam tela que apresenta apenas texto, ou com dimensões reduzidas, ou ainda uma conexão lenta com a Internet;
  • estejam com seus olhos, mãos ou ouvidos ocupados (por exemplo, em ambientes com excesso ou pouca luz, em um ambiente barulhento, etc);
  • possuam uma versão ultrapassada de navegador web, diferente dos habituais, um navegador por voz, ou um sistema operacional pouco convencional.

    Além do conteúdo escrito, claro, deve-se adaptar a mensagem que você quer passar para o usuário, tanto em imagens quanto em vídeos e sons diversos. Por exemplo, se existe uma imagem do planeta terra apenas ilustrativa:

    O conteúdo alternativo seria: "Imagem do planeta terra visto do espaço"
    Agora se essa imagem fosse um link que fosse para uma outra página com informação bem determinada acerca da geografia do planeta:
O conteúdo alternativo seria melhor aproveitado como: "Informações sobre a Terra"
      Dessa forma a ideia a ser passada é a mesma tanto para as pessoas com deficiência quanto para os outros usuários.Esses equivalentes textuais são bons também para sua página ser melhor rankeada nos motores de busca pois eles (pelo menos eu acho que ainda) não buscam as fotos de maneira visual, então quem tem uma foto com um conteúdo alternativo (no alt) tem vantagem.

      Além das fotos tem os vídeos, que devem conter legendas ou tradução em linguagem de sinais e também deve ser disponível a descrição sonora, para que os deficientes visuais possam entender o que acontece no vídeo.

      O design do site, literalmente onde o conteúdo vai ficar, deve ser considerado também, pois deve atender as pessoas com dificuldade motora ou que não estejam com mouse disponível (o site deve ser acessível utilizando a tecla TAB do tecaldo).

      Então em vez de sair programando um site deve-se lembrar que o público será muito maior se o conteúdo for acessível, tanto com imagens, vídeos ou sons, além de criar um design que seja de fácil compreensão e utilização.

Css Para Web Acessível

Olá galera, aqui estou eu novamente o/, para falar sobre como o css hoje é importante para a acessibilidade, então a partir de agora preste atenção hein!

É sempre importante lembrar que para ter um website acessível tem que ter uma codificação de html, após este pré-requisito é onde chegamos na codificação css que também é importante para a acessibilidade.
Neste momento surge a seguinte duvida: Mas como o css influencia na acessibilidade?
Veja bem alguns softwares leitores de tela já podem identificar elementos de formatação visual, ou seja já pode identificar os códigos que não foram declarados no html mas foram declarados no css, como cor e fonte.

Obs: Vale ressaltar que é sempre importante separar as camadas html, que geralmente é conteúdo em texto, da camada css, que é a formatação visual/layout.

Existe algumas outras maneiras de utilização de css acessível veja quais são:

Contraste

Sempre que desenvolver um website, sua paleta de cores deve existir um contraste entre os elementos de sua página web. Geralmente o que é recomendado é que, fundos e elementos devem possuir um contraste de pelo menos 4,5:1 para possuir uma melhor visualização.

Links

Vocês devem saber como é que funciona a estrutura e um link, mas é sempre bom relembrar como é. Um link sempre deve ser destacado e sempre quando um link for acessado o mesmo deve mudar de cor, uma outra recomendação é: só sublinhe textos caso ele seja um link.

Convulsões

Lembra-se do post anterior que falei sobre WCAG 2.0? Bom olha ele aqui novamente.
O que o WCAG 2.0 ressalta é que deve-se tomar bastante cuidado na criação de alguns conteúdos que piscam frequentemente e são muito luminosos.

Elementos com foco

O famoso TAB, destaque os elementos que recebem o foco e deixe de uma maneira organizada para que as pessoas que utilizam o teclado consigam navegar em seu website sem grandes problemas fazendo com que seu site seja acessível e bem estruturado.

Bom ai estão algumas dicas para que você desenvolvedor as utilize. Eu vou ficando por aqui galera até a próxima.

fonte: Tableless.

Ass:
Rodrigo Camurça.

segunda-feira, 2 de setembro de 2013

WCAG X Seção 508

Um Pouco Sobre WCAG:

Bom para não começar um texto falando siglas e não explicar o que significa já vou falando o significado de WCAG (Web Content Accessibility Guidelines) agora você fica responsavel por traduzi-la ;)!
Quem criou a WCAG foi a W3C (World Wide Web Consortium), WCAG foi um modo de criar um modelo de orientações a serem seguidas pelos desenvolvedores web, para criar sites acessíveis para todos.
Como assim todos? para pessoas com deficiência ex: visual, auditiva, cognitiva, motora etc.

Este modelo WCAG atualmente encotra-se na versão WCAG 2.0, porém foi criada em 1999 com a versão WCAG 1.0 que atualmente não é tão usada como a 2.0, vou falar agora alguns exemplos a serem seguidos para ter um site acessivel seguindo este modelo WCAG:
-Toda imagem deve ter um texto alternativo.
-Sempre quando colocar um videos, colocar legendas, áudio narrando.
Coloquei apenas dois exemplos pois no momento estou um pouco sem tempo pois tenho que trabalhar mais caso quiserem mais detalhes acessem : www.w3c.br .

Agora Um Pouco Sobre A Seção 508:

A Seção 508 é uma lei criada pelo governo dos Estados Unidos que fala sobre a inserção das pessoas com deficiência ex:  visual, auditiva, cognitiva, motora etc... Em todos os setores da tecnologia da informação.
Ou seja, é bem parecida com os padrões da WCAG 2.0, só que a seção 508 existem 16 normas a serem seguidas, e devem ser seguidas a rigor tem que estar dentro dessas 16 normas para obter o selo de Seção 508!
Como é para todos os setores da tecnologia da informação envolve tanto na criação de: software, hardware, equipamentos de telecomunicações e eletrônicos.

WCAG X Seção 508:

Veja bem vou fazer uma comparação simples pois a maneira como os dois funcionam são bem parecidas!
A grande diferença que existe um do outro é a seguinte:
Quando você, desenvolvedor, for desenvolver um site seguindo WCAG você não precisa seguir todas as normas criadas pela WCAG somente algumas, tornando o seu site acessível, ele não vai ser 100% acessível porém estará dentro do que a WCAG exige! 
Agora com a Seção 508 não tem "xorumelas" tem que seguir as 16 normas e se não seguir, pode esquecer não será reconhecido com os padrões Seção 508!

Bom até mais galera, qualquer coisa estou a disposição!

Ass: Rodrigo Camurça.

Design Universal


O Design Universal surgiu primeiramente para fins arquitetônicos nos anos 70, com o passar dos anos foi sendo adaptado aos mais diversos protudos e serviços até chegar aos sistemas de computador - mais específicamente, sistemas de internet.

Um sistema pode ser considerado acessível quando ele "visa atender simultaneamente todas as pessoas, com diferentes características antropométricas e sensoriais, de forma autônoma, segura e confortável, constituindo- se nos elementos ou soluções que compõem a acessibilidade”.Decreto nº 5.296 de 02 de Dezembro de 2004.

No Design universal, há 7 princípios que devem ser seguidos:
1- Igualitário: Deve servir a todos.
2- Adaptável: Pessoas com habilidades diferentes não devem sofrer ao utilizar.
3 - Óbvio: Deve ser de fácil entendimento, não deve requerer muita concentração para se entender a mensagem que se quer passar.
4 - Conhecido: A informação deve se adaptar ao receptor.
5 - Seguro: Serve para minimizar os riscos de possíveis acidentes ou ações não previstas.
6 - Sem esforço: Deve ser eficiente, causar o mínimo de fadiga.
7 - Abrangente: Deve ser apropriado para alcance e manipulação, independentemente da mobilidade do usuário.


Portanto, um sistema baseado no Design Universal deve atender todos os tipos de público, seja ele deficiente visual, auditivo ou com restrição de função motora, mesmo que isso leve à uma quantidade maior de código a ser pensado. Afinal, todo ser humano deve ser considerado de forma igual, assim como disse Aristóteles: "A verdadeira igualdade consiste em tratar-se igualmente os iguais e desigualmente os desiguais a medida em que se desigualem "

segunda-feira, 10 de junho de 2013

Microformatos

1 - Definição da Web Semântica:

 A Web Semântica (idéia) surgiu em 2001, quando Tim Berners Lee, James Hendler e Ora Lassila Publicaram um artigo na revista Scientific American, onde falavam que o futuro era permitir que os computadores entendessem as palavras quanto ao seu sentido, fazendo com que os textos introduzidos em um site sejam legíveis para as máquinas.
Dessa forma - no mundo redondo de Olly, claro - todas as informações seriam tratadas como dados, e não apenas textos, permitindo que pudessem ser procuradas e usadas facilmente, abrindo-se um leque infinito de novas possibilidades.
Bom, ainda não conseguimos esse feito mas estamos quase lá(mentira estamos longe), mas damos um passo significativo ao usarmos HTML5, que nos possibilita usar campos mais adequados para cada tipo de informação. Um exemplo disso é a tag <article></article> que deve conter um texto de autoria própria, um artigo, antigamente usava-se a tag <p></p> que apenas armazenava o texto e não o diferenciava de um texto do rodapé ou do menu. Hoje existe uma tag para cada coisa, tornando seu site muito mais semântico(com significado) para os motores de busca.

2- Definição de Microformatos:


Microformato é um conjunto de formatos abertos que foram criados ainda antes do html5 para proporcionar semântica às informações que você queira expor como por exemplo: informações de contato, eventos, licença etc.
Os Microformatos nada mais são do que tags com nomes específicos(você não pode mudá-los ao seu bel-prazer, meu bem) onde você apresenta as informações desejadas, mais abaixo eu dou exemplos de como usá-los.

3- Definição dos microformatos hCard e hCalendar:
O microformato hCard serve para mostrar suas informações com mais semântica, sejam elas pessoais ou de empresas.  No hCard é possível publicar nome, endereço, email, url de site e até foto(link).
Já o hCalendar serve para eventos, nele é possível mostrar o título do evento, o local, hora de início e fim, e descrição e tags para busca.
Ambos os microformatos por serem padronizados, podem ser acessíveis a outros sites ou programas como por exemplo as agendas do Google e da Apple.

4- Aplicar microformats para marcação de contato (hCard), e informações sobre evento (hCalendar):

Abaixo segue um exemplo de como se apresenta um hCard:






 E agora, o hCalendar:





Para fazer esses dois microformatos eu utilizei o site http://microformats.org
Lá é possível encontrar ferramentas que criam o código necessário para a ciração desses microformatos.


quinta-feira, 6 de junho de 2013

terça-feira, 9 de abril de 2013

Formulários HTML

Form

Para utilizarmos um formulário em um site precisamos usar a tag <form></form>
Entre elas deve ter o que você precisa, claro. Para isso mostrarei aqui um pouco sobre os elementos possíveis:

Primeiro os atributos de <form>:

id 

Serve para o formulário ser identificado, pode ser para css ou para outro coisa que você precise
identificá-lo.
Ex:
<form id="cadastro">

action

O atributo action especifica para onde enviar o formulário de dados quando um formulário é submetido.
Ex:
<form action="teste.php" method="get">

method

<form action="teste.php" method="post">

O atributo method especifica como enviar os dados do formulário (os dados do formulário são enviado para a página especificada no atributo action).

Os dados do formulário podem ser enviados como variáveis ​​de URL (com o method = "get") ou como  operação post do HTTP(com o method = "post").
get = envia os dados pela URL
post = envia os dados via transação HTTP


enctype


O atributo enctype especifica como os dados do formulário devem ser codificados quando enviados para o servidor.
Obs: O atributo enctype só pode ser utilizado se o "method"  for "post".
Ex:
<form action="teste.php"
method="post" enctype="multipart/form-data">

oninput

A tag <output> representa o resultado de um cálculo (como um realizado por um script).
Ex:
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
<input type="range" id="a" value="50">100
+<input type="number" id="b" value="50">
=<output name="x" for="a b"></output>
</form>


autocomplete


O atributo autocomplete especifica se um campo de entrada deve ou não ter habilitado o completamento automático.

Autocomplete permite que o navegador preveja o valor quando um usuário começa a digitar em um campo, o navegador deve exibir opções para preencher o campo, com base em valores anteriormente digitados.

Obs: O atributo autocomplete funciona com os tipos <input>:text, search, url, tel, email, password, datepickers, range, e color.
Ex:
<form action="teste.php" autocomplete="on">


novalidate

Quando presente, ele especifica que os dados do formulário (de entrada) não devem ser validados quando submetidos.
Ex:
<form novalidate>

Label:

Atributos:

accesskey

Em HTML5, o atributo accesskey pode ser usado em qualquer elemento HTML (que irá validar em qualquer elemento HTML. No entanto, não é necessariamente útil).
Ele serve para adicionar um atalho ao elemento que você quiser.
Ex:
<label accesskey="L">
Assim, quando a pessoa apertar ALT+L ela vai direto à essa label

for

Especifica a que elemento do form a label está associada
Ex:
<form action="teste.php">
<label for="masculino">M
asculino</label>
<input type="radio" name="sexo" id="
masculino" value="masculino"><br>
<label for="feminino">F
eminino</label>
<input type="radio" name="sexo" id="
feminino" value="feminino"><br>
<input type="submit" value="Enviar">
</form>

Input

type

text, password, email, search, url, hidden, number, range, tel, date, datetime, datetime-local, time, month, week, checkbox, radio, file, color, button, image, reset, submit
Com esses tipos de atributos o type ficou muito mais semântico, ou seja, os buscadores sabem o que deve ser inserido em cada campo.
Com base em teste feitos em sala, sabemos que alguns atributos não funcionam direito em uns navegadores mas em outros sim, portanto é altamente aconselhável verificar qual navegador o seu público alvo usa, e testar antes de implementar um deles.
Abaixo mostro um pouco de como alguns desses campos aparecem no navegador.

password



search



hidden


(Ué... não apareceu nada? SIIIIM quando você escolhe o tipo hidden ele simplesmente não aparece! 

)







number



range



date
















checkbox




radio




file



color (cada sistema operacional tem uma maneira de deixar você escolher a cor)













button



alt

O atributo alt oferece um texto alternativo para o usuário, se ele / ela por alguma razão não pode ver a imagem (por causa da conexão lenta, um erro no atributo src, ou se o usuário usa um leitor de tela).

Nota: O atributo alt só pode ser usado com <input type="image">.

checked

Quando presente, ele especifica que um elemento <input> deve ser pré-selecionado (marcado), quando a página é carregada, ou seja, ele pré-checa.
O atributo verificado pode ser usado com <input type="checkbox"> e <input type="radio">.
O atributo verificado também pode ser definido após o carregamento da página, com um JavaScript.



disabled

O atributo disabled é um atributo booleano.

Quando presente, ele especifica que um grupo de elementos de formulário relacionados (um fieldset) deve ser desativado.

Um fieldset desativado é inutilizável e não clicável.

O atributo desativado pode ser configurado para que um usuário não veja esse fieldset até que uma condição seja cumprida (como a seleção de uma caixa de seleção, etc.) Em seguida, um JavaScript poderia remover o valor com deficiência, e fazer o fieldset utilizável.

maxlength

o atributo maxlength especifica o número máximo de caracteres permitidos no elemento <input>.


readonly

Quando presente, ele especifica que um campo de entrada é somente leitura.
Um campo de entrada somente leitura não pode ser modificado (no entanto, o usuário pode usar TAB nele, selecionar ou copiar um texto dele).
O atributo readonly pode ser configurado para evitar que um usuário altere o valor até algumas outras condições forem satisfeitas (como a seleção de uma caixa de seleção, etc.) Em seguida, um JavaScript pode remover o valor readonly, e fazer o campo de entrada editável.


size


O atributo size especifica a largura visível, em caracteres, de um elemento <input>.

Obs: O atributo size trabalha com os seguintes tipos de entrada:  text, search, tel, url, email, e password.

Dica: Para especificar o número máximo de caracteres permitidos no elemento <input>, use o atributo maxlength.


src

O atributo src especifica a URL da imagem para ser usada como um botão de envio.
Nota: O atributo src é necessário para <input type="image">, e só pode ser usado com 

<input type="image">.


tabindex

Especifica a ordem de tabulação de um elemento


value


O atributo value especifica o valor de um elemento <input>.

O atributo value é utilizado de forma diferente para diferentes tipos de entrada:

Para o "button", "reset", e "submit" - define o texto no botão
Para o "text", "password", e "hidden" - define o valor (padrão) inicial do campo de entrada
Para o "checkbox", "radio", "image" - define o valor associado à entrada (este valor também é enviado pelo submit)


max

O atributo max especifica o valor máximo de um elemento <input>.
Dica: Use o atributo máximo juntamente com o atributo min para criar uma faixa de valores legais.
Nota: O max e atributos min trabalha com os seguintes tipos de entrada: number, range, date, datetime, datetime-local, month, time e week.

min

Mesma coisa que o de cima, só que ao contrário :)

step

O atributo step especifica os intervalos de número legal para um elemento <input>.
Exemplo: se o 
step = "3", os números poderiam ser legais -3, 0, 3, 6, etcDica: O atributo step  pode ser usado junto com o Max e atributos min para criar uma faixa de valores legais.
Nota: O atributo step trabalha com os seguintes tipos de entrada:
number, range, date, datetime, datetime-local, month, time e week.

autofocus

Quando presente, ele especifica que um elemento <input> deve receber automaticamente o foco quando a página é carregada.


formenctype*formaction*formmethod*formnovalidate*
* Funcionam exatamente como enctype, action, method, novalidate, respectivamente, só que quando usado como por exemplo em um submit, ele subscreve o atributo colocado em <form>

formtarget


O atributo target especifica um nome ou uma palavra-chave que indica onde exibir a resposta que é recebida após enviar o formulário.

O atributo target define um nome ou palavra-chave para, um contexto de navegação (por exemplo, uma janela, aba).

height

Define a altura do campo.
width

Define o tamanho(visual, não de caracteres) do campo


multiple


Quando presente, ele especifica que o usuário está autorizado a enviar mais de um valor no elemento <input>.
Nota: O atributo multiple trabalha com os seguintes tipos de entrada: email e file.


pattern


O atributo pattern especifica uma expressão regular que o valor do elemento <input> é verificado.
Nota: O atributo padrão trabalha com os seguintes tipos de entrada:text, search, url, tel, email, e password.

placeholder

mostra ao usuário o que deve ser digitado, por exemplo no campo nome aparece "João da Silva", para exemplificar, ao digitar, esse exemplo some.

required

Evita que um campo seja deixado em branco, quando o usuário clica em enviar, o navegador mostra uma mensagem e indica o campo(cada navegador tem sua mensagem própria).

Select

disable

Quando presente, ele especifica que uma opção deve ser desativada.

A opção com o atributo disable é inútil e não-clicável.

O atributo desativado pode ser configurado para evitar que um usuário selecione a opção até que alguma outra condição foi cumprida (como a seleção de um checkbox, etc.).

option

A tag <option> define uma opção em uma lista de seleção.
Ex:
<select>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="opel">Opel</option>
    <option value="audi">Audi</option>
</select>

optgroup

O <optgroup> é usado para agrupar opções relacionadas em uma lista drop-down.

Se você tem uma lista com muitas opções, grupos de opções relacionadas são mais fáceis de manusear para o usuário.
Ex:
<select>
    <optgroup label="Carros Suiços">
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
    </optgroup>
    <optgroup label="Carros alemães">
        <option value="mercedes">Mercedes</option>
        <option value="audi">Audi</option>
    </optgroup>
</select>

datalist

A tag <datalist> especifica uma lista de opções pré-definidas para um elemento <input>.

A tag <datalist> é usada para fornecer um recurso "autocompletar" em elementos <input>. Os usuários verão uma lista suspensa de opções pré-definidas como entrada de dados.

Use o atributo do elemento <input> da lista para vinculá-lo em conjunto com um elemento <datalist>.
Ex:
<input list="browsers">

<datalist id="browsers">
    <option value="Internet Explorer">
    <option value="Firefox">
    <option value="Chrome">
    <option value="Opera">
    <option value="Safari">
</datalist>

keygen

A tag <keygen> especifica um campo gerador de par de chaves utilizado para formulários.

Quando o formulário é enviado, a chave privada é armazenada localmente, e a chave pública é enviada para o servidor.
Ex:
<form action="teste.php" method="get">
    Usuario: <input type="text" name="usuario">
    Criptografia: <keygen name="seguranca">
    <input type="submit">
</form>

output

A tag <output> representa o resultado de um cálculo (como um realizado por um script).
Ex:
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
    <input type="range" id="a" value="50">100
    +<input type="number" id="b" value="50">
    =<output name="x" for="a b"></output>
</form>

textarea

A tag <textarea> define uma entrada de texto multi linha.

Um textarea pode conter um número ilimitado de caracteres, e o texto é renderizado em uma fonte de largura fixa (geralmente Courier).

O tamanho de um textarea pode ser especificado pelo cols e atributos de rows , ou até melhor, através do CSS  com as propriedades de altura e largura.

button

A tag <button> define um botão clicável.

Dentro de um elemento <button> você pode colocar conteúdo, como texto ou imagens. Esta é a diferença entre este elemento e os botões criados com o elemento <input>.

Dica: Sempre especificar o tipo de atributo para um elemento <button>. Navegadores diferentes usam diferentes tipos padrões para o elemento <button>.
Usando o atributo value, você especifica um valor inicial para o botão.
Ex:
<button type="button">Clique em mim!</button>

Fieldset

A tag <fieldset> é utilizada para agrupar elementos relacionados em um formulário.

A tag <fieldset> desenha uma caixa em torno dos elementos relacionados.
Ex:
<form>
    <fieldset>
        Nome: <input type="text"><br>
        Email: <input type="text"><br>
        Nascimento: <input type="text">
    </fieldset>
</form>

legend

A tag <legend> define uma legenda para o elemento <fieldset>.
Ex:
<form>
    <fieldset>
        <legend>Dados pessoais</legend>
        Nome: <input type="text"><br>
        Email: <input type="text"><br>
        Nascimento: <input type="text">
    </fieldset>
</form>

Ufa, terminei!!

segunda-feira, 18 de março de 2013

Template Layout

1- DOCUMENT FLOW:
O document flow(fluxo do documento), é a maneira como os elementos HTML são apresentados na tela do computador ou dispositivo mobile, ou melhor dizendo, como eles são RENDERIZADOS no navegador.
Antes de sabermos como isso funciona, devemos primeiro saber que a maioria dos elementos no HTML são classificados em dois grupos:
* Elementos Block-level.
* Elementos Inline.
Os elementos block-level são aqueles que, assim que colocados no documento, mandam para baixo os elementos posteriores a ele(calma, vou explicar melhor).

Abaixo segue a lista de todos os elementos block-level:

<address>
<article>
<aside> 
<audio>
<blockquote>
<canvas>
<dd>
<div>
<dl>
<fieldset>
<figcaption>
<figure>
<footer> 
<form>
<h1>, <h2>, <h3>, <h4>, <h5>, <h6>
<header> 
<hgroup>
<hr>
<noscript>
<ol>
<output> 
<p>
<pre>
<section> 
<table>
<tfoot>
<ul>
<video>

Vou mostrar um exemplo usando a tag <div></div>:
Neste exemplo há dois elementos block-level: <h3> e <div>, observe que a <div> está abaixo do texto(<h3>), este é o código para gerar este documento:

<!DOCTYPE html>
<html>
<body>

<h3>Texto sendo apresentado tranquilamente =) </h3>
<div style="width:80px;height:80px;background-color:pink;">Div quietinha</div>

</body>
</html>

Veja agora o que acontece se colocarmos a <div> em cima do <h3>:

A <div> sendo um elemento block-level, empurra os demais elementos para baixo dela. Repare que embora caibam os dois elementos, o texto e a div, ela ainda assim, empurra-o para baixo.

Abaixo tem uma lista com alguns elementos inline:

<em>
<strong>
<a>
<abbr>
<dfn>
<code>
<samp>
<kbd>
<var>
<b>
<i>
<u>
<small>
<s>
<span>
<br>(ele força uma quebra de linha, mas em si, é um elemento inline)
<bdo>
<cite>
<del>
<ins>
<q>
<script>
<sub>
<wbr>
<area>
<img>
<map>
<object>
<param>...
...E muitos outros (pesquisem aqui: http://en.wikipedia.org/wiki/HTML_element#Inline_elements).

Agora veja o que acontece quando a gente coloca um elemento inline após outro:

O código que gera esse resultado:

<!DOCTYPE html>
<html>
<body>

<em>Texto com ênfase!</em>
<span style="background-color:pink;">span simples</span>

</body>
</html>

Note que o elemento <em> é amiguinho do <span>, ele não empurra o <span> para baixo, mas sim, permite que ele fique ao seu lado. É exatamente essa a diferença entre os elementos do tipo block-level e os elementos inline: os block-level empurram o próximo elemento para baixo, enquanto os inline mantém o próximo elemento à direita.

2- PROPRIEDADE POSITION:

Para posisionar um elemento HTML de uma forma especial, usamos o position. Posicionar... position... sacou? Dexa prá lá.
O position é uma propriedade CSS muito útil caso você precise alterar o document flow (exemplo acima).

Existem 3 tipos de position: 

*Position Fixed
*Position Relative
*Position Absolute

Position Fixed:

Fixa o elemento(jura?) ao documento nas coordenadas que você definir, com ele mesmo que a página role, o elemento fica parado onde sempre esteve.
Mas como usar essa propriedade? Abaixo temos um exemplo:

<!DOCTYPE html>
<html>
<body>

<div style=
"width:100px;height:100px;background-color:pink; 
left:200px;
top:50px;
position:fixed;">Daqui não saio<br>daqui ninguém me tira!</div>

<p>
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo exemplo exemplo 
exemplo exemplo exemplo exemplo exemplo exemplo 
</p>

</body>
</html>


Mesmo a <div> sendo um elemento block-level, ela não empurra o <p>, que também é um elemento block-level, ficando fixa na posição: left:200px; e top:50px;
Outra coisa: ao se usar o position, a posição(ou coordenada) é definida a partir da ponta esquerda de cima, no caso do position fixed: o navegador calcula as coordenadas partindo da ponta esquerda de cima, da tela.


Position Relative:

Posiciona o elemento em relação a si mesmo, o ponto zero(de onde começa o cálculo para as coordenadas), é o canto superior esquerdo, a partir daí o navegador acrescentará os píxels.


Position Absolute:

Trabalha quase da mesma maneira que o position relative, porém ele é utilizado para posicionar elementos dentro de outros elementos, ou seja, calcula as coordenadas em relação ao elemento pai.

Exemplo:


E o seu código:

<!DOCTYPE html>
<html>
<body>

<div style="width:300px;height:300px;background-color:gray; ">
     <div style=
          "width:100px;height:100px;background-color:pink; 
          left:50px;
          top:50px;
          position:absolut;">Absolute
     </div>
</div>
</body>
</html>

3- PROPRIEDADE FLOAT:

A propriedade float do CSS, também permite alterar o document flow. 
Existem dois atributos que podemos colocar em float:
*left
*right

Veja um exemplo usando o float:left;
e o código:

<!DOCTYPE html>
<html>
<body>

<div style="width:300px;height:300px;background-color:gray;">
<div style="width:100px;height:100px;background-

color:pink;float:left;">esquerda</div>
</div>

</body>
</html>

No caso acima, a div rosa ficou à esquerda dentro da div cinza.

Agora veja se usarmos o float:right;

Viu só? A div agora foi para a direita, o que não é padrão(por padrão os elementos vão de cima para baixo, e da esquerda para a direita, como na leitura).

a) Clear:

A propriedade clear especifica quais os lados de um elemento onde outros elementos flutuantes não são permitidos. Por exemplo: se você não quer que os elementos flutuem para a direita dentro de um elemento <p> por exemplo, basta usar(no css):
p.clear{
clear:right;
}

Para limpar a esquerda:
p.clear{
clear:left;
}

E para limpar ambos os lados:
p.clear{
clear:both;
}

b) Problemas de Pushdown e possíveis soluções:

Pushdowns são problemas que ocorrem quando um ou mais elementos não cabem dentro de outro e, dessa forma, empurram todos os outros elementos para baixo deixando a maior confusão no layout da página.
Abaixo mostro um exemplo bem simples de pushdown:

Veja a bagunça.
Agora vamos estudar o código:


<!DOCTYPE html>
<html>
<body>

<div style="width:300px;height:300px;background-color:gray;">

<div style="width:150px;height:150px;background-color:pink;float:left;">div 1</div>
<div style="width:160px;height:160px;background-color:pink;float:left;">Não coube =(</div>

</div>

</body>
</html>


As duas divs rosas estão dentro de outra div, essa div(a maior), tem 300 píxels de width.
A div 1 tem 150 píxels de width, e a outra tem 160 píxels, ou seja não cabem as duas juntas, uma ao lado da outra, sendo assim a div que não coube foi para baixo, e se tivessem outros elementos depois dela eles seriam empurrados também.

Mas o que fazer então caso isso ocorra?
Simples: preste atenção aos tamanhos de largura, e nunca defina uma altura em um elemento pai(aquele que receberá outros elementos, esses sim podem ter altura). Outra coisa a se fazer é colocar a propriedade position absolute, mas lembre-se: o position absolute tira o elemento do fluxo do documento(document flow), portanto tenha cuidado.

I) Falso posicionamento absoluto:

Isto serve para trabalhar com colunas e linhas(e os elementos que estão dentro delas) de forma que se ajuste à tela sem que haja problemas como push-down etc.
Esse método é feito usando uma combinação de position: relative , à esquerda: 100% e um negativo da margin esquerda .

O CSS aplicados a estes elementos é o seguinte:
.Linha {
float: left;
width: 100%;
display: block;
position: relative;
}
.Item {
position: relative;
float: left;
left: 100%;
}

Para posicionar um determinado item, tudo o que precisamos de fazer é dar uma margem esquerda negativa e uma largura . Por exemplo:

#item1{
 margin-left: -100%;
 width: 30%;
 }

c) PROBLEMAS CROSSBROWSER E POSSÍVEIS SOLUÇÕES:

Com a grande quantidade de navegadores existentes no mercado, acontecem alguns errinhos na renderização que causam um certo transtorno ao desenvolvedor, pois o que funciona em alguns navegadores pode não funcionar em outros, ou as vezes funciona em todos e deixa de funcionar em apenas um deles...(estou falando de vc, IE....brincadeira).

Mas há uma luz no fim do túnel!(tomara que não seja um trem vindo daquela direção).
Para sanar esses erros, ou pelo menos diminuí-los, basta prestar bastante atenção quanto aos itens abaixo:

1) Identifique a resolução do seu público-alvo
2) Trabalhe em cima das Web Standards(padrões web, ou seja, W3C)
3) Faça testes em diversos navegadores
4) Realize os testes primeiro em navegadores modernos


d)TEMPLATE LAYOUT:

A propriedade float é muito simples de se entender. O problema não é o funcionamento, mas os efeitos que a propriedade float causa nos elementos próximos. Se você pede para duas colunas fica­rem flutuando à esquerda e outra coluna à direita, o rodapé sobe. Ou se você coloca um elemento envolvendo outros elementos com float, esse elemento perde a altura. Estes são problemas corri­queiros que já tem soluções inteligentes e que não apresentam chateações mais graves.
Infelizmente o float não é o ideal para a diagramação e organização dos elementos do layout. Ele resolve muitos problemas, mas deixa a desejar em diversos sentidos. O float está completamente ligado a ordem dos elementos no HTML. Existem técnicas que você consegue fazer quase que qualquer organização visual sem encostar no código HTML. Mas há outras necessidades que in­variavelmente você precisará modificar a ordem dos elementos no meio do HTML para que a diagramação do site saia conforme o esperado. Essa organização do HTML pode alterar desde pro­gramação server-side e até resultados de SEO e acessibilidade. Por isso é interessante que o HTML fique organizado de forma que ele supre as necessidades dessas bases. Sua organização visual deve ser independente desta organização.


I) TEMPLATE-BASED POSITIONING:

Tendo em vista estes e outros problemas o W3C criou um novo módulo. Na verdade ele não é o único, e nem pode ser para que tenhamos diversas formas de trabalhar. O módulo em questão é chamado de Template Layout. Esse módulo consiste em uma forma de criarmos e organizarmos os elementos e informações do layout de forma menos espartana e mais flexível.
Podemos dividir a construção do layout em duas grandes partes: 1) Definição dos elementos mestres e grid a ser seguido. 2) Formatação de font, cores, background, bordas etc.
As propriedades nesta especificação trabalham associando uma política de layout de um elemento. Essa política é chamada de template-based positioning (não tem nada a ver com a propriedade position, pelo contrário é uma alternativa) que dá ao elemento uma grid invisível para alinhar seus elementos descendentes.
Porque o layout deve se adaptar em diferentes janelas e tamanhos de papéis, as colunas e linhas do grid deve ser fixas ou flexiveis dependendo do tamanho.
O W3C mostra alguns casos comuns:
· Páginas complexas com múltiplas barras de navegação em áreas com posições fixas como publicidade, submenus e etc.
· Formulários complexos, onde o alinhamento de labels e campos podem ser facilmente definidos com as propriedades deste módulo com a ajuda das propriedades de margin, padding e tables.
· GUIs, onde botões, toolbars, labels, ícones etc, tem alinhamentos complexos e precisam estar sempre alinhados caso o tamanho ou a resolução da tela mudam.
· Medias que são paginadas, como medias de impressão onde cada página são divididos em áreas fixas para conteúdos de gêneros diferentes.
Template-based positioning são uma alternativa para a propriedade position com o valor absolute. Antigamente lembro-me que quase todos os desenvolvedores tentavam organizar e diagramar layouts utilizando position. Não que seja errado, mas definitivamente não é a melhor forma. Costumo dizer em meus cursos e palestras que position é para detalhes. Nada muito grande, mas para pequenos detalhes. Usamos position para posicionarmos elementos que não tem relação direta com sua posição no código HTML. Ou seja, não importa onde o elemento esteja, o position:absolute; irá posicionar o elemento nas coordenadas que você quiser.
Sintaxe e funcionamento

O módulo Template Layout basicamente define slots de layout para que você encaixe e posicione seus elementos. O mapeamento dos slots é feito com duas propriedades que já conhecemos que este módulo adiciona mais alguns valores e funcionalidades, são as propriedades position e display.
A propriedade display define como será o Grid, ou seja, quantos espaços úteis terá o layout.
A propriedade position irá posicionar seus elementos nestes slots.

Veja o código HTML abaixo: 

<div class=”geral”>
<nav class=”menu”>...</nav>
<aside class=”menulateral”>...</aside>
<aside class=”publicidade”>...</aside>
<article class=”post”>...</article>
<footer>...</footer>
</div>

Agora vamos definir a posição destes elementos.
 O código CSS seria assim:

.geral {
display: “aaa”
“bcd”
“eee”;
}

nav.menu {position:a;}
aside.menulateral {position:b;}
aside.publicidade {position:d;}
article.post {position:c;}
footer {position:e;}

Puro gesso! (Lê-se puro gessó)
Logo menos traremos mais postagens aguardemmm...
=D

terça-feira, 5 de março de 2013

Atividade 01 - PPSI II

Taquigrafia CSS

Olá, falarei agora sobre taquigrafia css. Como sabemos o CSS(Cascading Style Sheet) é um tipo de linguagem de formatação que é usada no HTML, ela facilita muito a vida do desenvolvedor pois fica mais fácil editar a formatação de elementos e também é possível fazer sites mais bonitinhos :) .

O que é taquigrafia css?
É uma maneira de simplificar a escrita das formatações no CSS. Como a escrita do CSS se torna menor, ela ajuda no carregamento da página como um todo diminuindo as requisições ao servidor, e aumentando a rapidez com que a página é mostrada.

Como reconhecer uma taquigrafia CSS:
A taquigrafia transforma as várias chamadas CSS de uma elemento em uma só, veja uma exemplo:
Suponhamos que temos uma div com id="xuxu", agora... "suponhamos que isso seja uma caveira..."-Seu Madruga Professor (http://www.youtube.com/watch?v=GWfsfGIm9r4 exatamente aos 28:27)- brincadeira (não resisti)- voltando ao post: Suponhamos que você precise adicionar uma borda a ela de 3 píxels, essa borda deve ser vermelha e pontilhada. Como você faria isso?

Exemplo sem taquigrafia: (dentro do arquivo .css)

#xuxu{
border:3px;
border-color:red;
border-style:dashed;
}

Apareceria dessa forma no navegador:

Agora vamos ver a forma taquigráfica de se escrever:

#xuxu{
border: 3px red dashed;
}

Assim reduzimos o conteúdo de três linhas em apenas uma! E o resultado é o mesmo, obviamente.

Alguns exemplos(como se estivéssemos trabalhando com um arquivo .css) abaixo mostram como é prático o uso da taquigrafia CSS.

Fundo

body{
background: #00ff00 url('smiley.gif') no-repeat fixed center;
}

Nesse exemplo o fundo será verde, conterá uma imagem de nome: "smiley.gif", ela não será repetida e ficará fixa no centro, como mostrado abaixo:


Propriedades de fronteira

Usaremos o exemplo do xuxu acima, as fronteiras no css são usadas através de "border" e "margin",
além podermos fazer como o exemplo do xuxu, podemos também colocar duas margens na div para que ela fique mais para direita e mais para baixo:

#xuxu{
border:3px;
border-color:red;
border-style:dashed;
margin:100px 50px;
}

O primeiro valor(100px) representa: "margin-top:100px;" e o segundo representa: "margin-right:50px;", poderiam ainda ser colocados outros 2 valores,seria o terceiro valor que representa "margin-bottom", e outro para "margin-left"(quarto valor).

O resultado está abaixo(note que a div foi deslocada para a direita e para baixo):

Cor:

a cor no CSS pode ser escrita na forma hexadecimal e na forma RGB(Red, Green, Blue), nas duas maneiras deve-se escrever três valores referentes às cores já ditas(Vermelho,Verde e Azul).
Exemplo para vermelho:

Hexadecimal: #FF0000
RGB: rgb(255,0,0)

No caso da cor preta seria:

Hexadecimal: #000000
RGB: rgb(0,0,0)
Neste caso podemos usar a taquigrafia, na maneira hexadecimal, pois os valores se repetem então pode-se escrever da seguinte forma:

Hexadecimal: #000

Fonte

A maneira taquigráfica em propriedades de fonte é muito utilizada pois agiliza o trabalho e economiza linhas de código, veja um exemplo:

font: italic small-caps bold 50px serif;

Margem

Vimos um exemplo de margem no caso do xuxu acima :)

Padding

O padding é muito parecido com o margin porém ele faz uma "margem" interna, e não externa. Portanto se você colocar um texto dentro de uma div ou qualquer outro elemento, é possível mover esse texto de maneira que fique alinhado de acordo com seu desejo. Veja um exemplo:


padding:25px 50px 75px 100px;(maneira taquigráfica)
Isso significa:
top padding recebe 25px
right padding 
recebe 50px
bottom padding 
recebe 75px
left padding 
recebe 100px
Abaixo vemos como o texto se comporta
Obrigado galera, semana que vez trago mais coisas para vocês ;)

segunda-feira, 4 de março de 2013

Atividade PPSI I

Iae galera, vou postar o primeiro tópico da matéria de Padrões em Projetos de Sítios de Internet I

1 - A história da internet

A internet surgiu de pesquisas militares na década de 60, período da guerra fria, onde Estados Unidos e Rússia estavam em uma corrida tecnológica. O projeto inicial, desenvolvido pela A.R.P.A (Advanced Research Projects Agency), era o de descentralizar as informações contidas nas bases militares dos E.U.A, bem como permitir que essas bases pudessem se comunicar sem que houvesse uma central de comunicação para esse fim.

Mapa lógico da ARPANET de 1977

A mensagem era enviada por pequenos pacotes de dados que continham o endereço do computador destinatário e informações que permitiam a remontagem da mensagem.
A guerra em si nunca aconteceu e os E.U.A haviam criado o maior meio de comunicação já criado. 
Depois disso o governo dos Estados Unidos permitiu que universidades pudessem fazer parte da rede. Tendo problemas para administrar o crescente número de localidades que estavam entrando na rede, o governo então decidiu dividir a rede em duas: a MILNET, que estariam somente os locais militares, e a nova ARPANET, que comportaria as demais localidades. Com essa "liberdade" as universidades, entusiasmadas, somaram esforços para expandir e melhorar a rede.
Com o aumento exponencial de computadores que entravam na rede, e a criação de protocolos como o IP(internet protocol) o governo dos Estados Unidos se viu obrigado a investir em backbones( poderosos computadores conectados por linhas que tem a capacidade de dar vazão a grandes fluxos de dados, como 
canais de fibra óptica, elos de satélite e elos de transmissão por rádio). Além desses, existem também os backbones de empresas particulares, que conectam a internet redes menores quase anárquicas, permitindo que a internet não tenha dono.

Em 1992, o cientista Físico Tim Berners-Lee, do CERN, criou a World Wide Web.
Tim Berners Lee
Como era muito complicado acessar os arquivos na internet, já que a pessoa precisava saber comandos específicos para isso, Tim Berners Lee teve a ideia de criar um meio de hipertexto, onde a pessoa podia acessar os arquivos apenas através de cliques.


2 - Linguagem de Marcação versus Linguagem de Programação

Com sua ideia, Tim Berners Lee teve que teve quer criar um tipo específico de programa que interpretasse os hipertextos e os exibisse de maneira adequada ao usuário, sendo assim ele criou o HTML, Hiper Text Markup Language, que rodava em um navegador.
Considera-se que a grande virada da WWW começou com a introdução do Mosaic em 1993, um navegador gráfico desenvolvido por um time de desenvolvedores universitários. Antes de seu lançamento, os gráficos não eram frequentemente misturados com texto em páginas web.


Screenshot do Mosaic

Diferentemente das linguagens de programação, o HTML não possui comandos de decisão, tais como IF, ELSE e também não possui estruturas de laço de repetição, como FOR, WHILE, etc.
Portanto não é possível criar um programa com o HTML, mas sim, criar páginas que contenham informações.
No início somente era possível inserir textos nessas páginas, mas com o passar do tempo foi possível inserir fotos, áudio e vídeo, e com essas novas implementações foi necessário a criação de uma linguagem que ajudasse a dispor todas as informações sem que tudo ficasse bagunçado, foi ai que surgiu o CSS - Cascading Style Sheets.


3 - HTML

HTML significa: HyperText Markup Language, ou, Linguagem de marcação de hipertexto. Essa linguagem surgiu nas décadas de 80/90, quando Tim Berners Lee precisava de uma ferramenta para compartilhar acessar de forma simples as pesquisas de seu grupo de estudos.

a) Características:

Como dito anteriormente, o HTML não é uma linguagem de programação, ou seja não é possível criar um programa com ela mas é possível criar páginas para sites. Houve 4 versões antes da atual e muitas mudanças foram feitas para melhor, com a ajuda do W3C concomitantemente com o próprio Tim Berners Lee, então mostrarei as tags e os exemplos em HTML 5. Para criar uma página deve-se seguir uma estrutura básica com os comandos do HTML, esses comandos são chamados de "Tag's" abaixo está um exemplo simples dessa estrutura.

b) Estrutura básica de uma página

Para fazer uma página em HTML você só precisa de um editor de texto, para digitar as tags - óbvio - e um navegador para ver o resultado - também óbvio.
Eis um exemplo simples de estrutura básica em HTML 5:


<!DOCTYPE HTML>

<html>

<head><title>uma pagina HTML</title></head>

<body>




Olá mundo! ( ¬¬' profissionais em TI não tem criatividade para inventar outra frase para ser usada em exemplos, ou talvez seja uma tradição, vai saber...)




</body>

</html>
As tags são dispostas entre < >, sinal de maior e menor, as usadas acima são básicas - mas nem por isso devem ser ignoradas. 
A tag <html> marca o início da página, tudo o que irá aparecer deve obrigatoriamente estar dentro de <html>"seu conteudo aqui"</html>. Experimente fazer o exemplo acima no bloco de notas e salve como: xuxu.html (sim, o nome não importa e sim a extensão, exceto no Linux, mas isso é outra história)

c) Metadados: head, title, link, meta, style

A tag <head></head> é o cabeçalho onde você pode colocar tags específicas, tais como:

<title>,<style>,<base>,<link>,<meta>,<script> e <noscript>.

A tag <title></title> serve para você dar um título para sua página, esse título aparece na parte superior do navegador e é muito importante para os buscadores, pois através dela é possível identificar o conteúdo principal da página - quando você faz um título coerente sobre o assunto, claro.

<link>, essa tag serve para "puxar" outros arquivos a serem usados nessa página, um exemplo disso é quando precisamos importar um arquivo CSS (Cascading Style Sheets) para ser utilizado na formatação da página, como no exemplo abaixo:



<link rel="stylesheet" type="text/css" href="theme.css">




Tag <meta>, as informações que você colocar na tag <meta> não vão aparecer na página, mas os buscadores vão adorar, ela deixa seu site mais "encontrável". Alguns exemplos são mostrados abaixo:




<head>

<meta name="description" content="Free Web tutorials">

<meta name="keywords" content="HTML,CSS,XML,JavaScript">

<meta name="author" content="Jefferson Kleber">

<meta charset="UTF-8">

</head>
até esse buscador encontrará sua página mais facilmente!

São muitas informações sobre sua página que irão aumentar a relevância dela nos motores de busca como o da google, sua página vai subir no ranking de pesquisa, pois é pois é pois é.

Tag <style>, essa serve para você colocar comandos em CSS nela, os comandos devem estar entre 
<style> </style>. Com isso você pode formatar os elementos da sua página na própria página (prática não recomendada, o melhor mesmo é importar um arquivo css)

d) Seções (sim, com Ç, que significa divisão, repartição), body, article, section, nav, aside, h1, h2, h3, h4, h5, h6, hgroup, header, footer, address

<body>, nela deverá conter tudo o que aparecerá no navegador, ou seja, onde ficará a parte visível
<article>, nessa tag deve conter um artigo com sentido próprio, ou seja, deve fazer sentido sem que se precise ver outra coisa do site. Exemplos:


  • post de Fórum
  • blog
  • notícia
  • comentário
<section>, define seções em um documento. Tal como capítulos, cabeçalhos, rodapés, ou quaisquer outras seções do documento.

<nav>, deve conter o menu de navegação do site. Não se deve colocar todos os links na tag nav, mas sim apenas o(s) menu(s) de navegação mais importante(s).

<aside>, define um conteúdo além do conteúdo em que ela é colocada, por exemplo: coloca-se um <aside> do lado de um <article> para conter informações adicionais.

<h1>,<h2>,<h3>,<h4>,<h5>,<h6>, definem tamanhos diferentes para fonte(usado em algo que se queira chamar atenção, como um título), onde <h1> é o maior e <h6> é o menor. A tag <hgroup> serve para agrupar diversos conteúdos que estiverem entre <h1>,<h2>... etc.

<header>, especifica um cabeçalho de um documento ou seção, nela deve conter um conteúdo introdutório às informações que a seguem, por exemplo um resumo de uma notícia antes da notícia em si. Pode-se ter vários <header> em um documento. A tag <header> não pode ser colocada dentro de um <rodapé>, <address> ou outro elemento <header>.

<footer>, é o rodapé do documento, nele geralmente se encontram informações sobre copyright, autor do documento, contato etc.

<address>, é usada para relacionar informações de contato do autor do documento ou de um artigo. Se a tag <address> for colocada dentro de um <article> ela serve somente para aquele <article>, mas se ela for usada dentro do <body> ela serve para o documento todo.

e) Comentário HTML

O comentário, tanto em html quanto em outras linguagens é importante para explicar o conteúdo a um outro desenvolvedor e para você mesmo, futuramente. Abaixo temos um exemplo de comentário:

<!DOCTYPE html>
<html>
<body>

<!--Isso é um comentário. Comentários não aparecem no navegador :) -->
<p>Isso é um parágrafo.</p>

</body>
</html>

f)Elementos de agrupamento: <p>,<hr>,<blockquote>,<ol>,<ul>,<li>,<dl>,<dt>,<dd>,<div>.

<p>, define um parágrafo em uma página, acrescenta uma margem entre o texto que está em <p> e os demais textos.

<hr>, mostra uma quebra temática no texto da página, geralmente mostra uma linha horizontal usada para separar os textos.

<blockquote>, deve ser usado toda vez que você usar um texto que venha de outra fonte, como um site. Ele deixa esse conteúdo separado do resto do texto com espaço entre eles.

<ol>, define uma lista ordenada, nela pode-se usar números ou letras, temos um exemplo abaixo:

<!DOCTYPE html>
<html>
<body>

<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

<ol start="50">
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>
</body>
</html>

E aqui, como a lista aparecerá:
  1. Coffee
  2. Tea
  3. Milk
  1. Coffee
  2. Tea
  3. Milk
<ul> É usado como <ol>, porém esta será uma lista não ordenada, ou seja, em vez de números ou letras, aparecerão bolinhas, quadradinhos e etc. Para separar os elementos.

<li> Define cada elemento dentro de uma lista (<ol> ou <ul>).

<dl>, <dt> e <dd> definem uma lista de definições onde; <dl></dl> define onde começa e onde acaba essa lista, <dt></dt> define um elemento na lista e <dd></dd> mostra a definição do elemento. Abaixo temos um exemplo:

<!DOCTYPE html>
<html>
<body>

<dl>
  <dt>Café</dt>
  <dd>Bebida preta e quente</dd>
  <dt>Leite</dt>
  <dd>Bebida branca e fria</dd>
</dl>

</body>
</html>
E abaixo como ela aparecerá no navegador:





Café
Bebida preta e quente
Leite
Bebida branca e fria

<div> define uma divisão em uma seção de uma página, para que seja estilizada por CSS. Essa tag é muito útil para separar e dispor qualquer elemento nas páginas HTML.

g) Elementos de texto semânticos: a, abbr, span, strong, em, br

<a>, define um hiperlink, a base do html abaixo temos um exemplo de como usá-lo:
<a href="http://www.w3schools.com">visite o  W3Schools!</a>

E no navegador aparecerá assim:

visite o W3Schools!

<abbr>, define uma abreviatura e colocando se title="", definindo o significado da abreviatura entre as aspas, quem usa sintetizadores de voz conseguirão saber o que a sigla significa.

A tag <span> fornece uma maneira de adicionar um gancho para uma parte de um texto ou de uma parte de um documento. Essa tag não fornece um efeito visual, para isso deve-se utilizar CSS.

<strong> dá destaque ao texto e o define como importante, geralmente o texto entre <strong> fica em negrito.
<em> dá ênfase a um texto, geralmente o texto fica em itálico.

<br> pula de linha, simples assim.

<img> coloca uma imagem na página. É importante usar o atributo alt="", onde você deve colocar o que é essa imagem entre as aspas, para que pessoas com deficiência visual possam saber o que essa imagem é. Abaixo temos um exemplo de como usar essa tag:
<img src="smiley.gif" alt="Carinha feliz" height="42" width="42">
  Carinha feliz



Ufa... A prof caprichou no conteúdo hein...