Rss Feed
    Mostrando postagens com marcador HTML5. Mostrar todas as postagens
    Mostrando postagens com marcador HTML5. Mostrar todas as postagens
  1. Design responsivo

    quarta-feira, 13 de novembro de 2013

    O que é design responsivo:

    Design responsivo é o design web que se adequa a qualquer tipo de dispositivo com acesso à internet. Diferente de sites fluídos, que tem somente seu tamanho diminuído de acordo com a mídia que estamos usando para acessá-lo, os sites responsivos modificam seu layout de acordo com a resolução da tela ao qual estão sendo apresentados. Esse conceito não é recente, mas visa uma única coisa: O conteúdo legível em um site, esteja ele sendo visto através de um desktop, notebook, tablet ou smartphone.

    Um bom exemplo de site responsivo:

    Passo a passo: Como criar um layout responsivo:

    Antes de mais nada, um passo que é considerado crucial para a criação de um website decente: A ESTRUTURAÇÃO!
    Pesquise sobre o conteúdo que o seu site abordará, veja outros sites do segmento, estude seus layouts, verifique seus pontos fortes e fracos, busque saber qual a melhor forma de organizar a informação e finalmente vamos para a formação do nosso wireframe. O wireframe pode ser rabiscado, não é necessário que seja extremamente detalhado, a ideia aqui é que tenhamos uma visão de como as áreas de conteúdo ficarão distribuídas nas telas. 
    Como forma didática, começarei a mostrando um wireframe através do modelo desktop, então partirei para o tablet e posteriormente ao smartphone.

    (Obs: as imagens utilizadas abaixo não são de minha autoria <s>preguiça</s>)


    Este site é bem simples, como podemos ver teremos no <header> da página o logo e um <nav>. Abaixo uma <section> para o banner e em seguida 4 <articles> com foto e logo abaixo uma breve descrição de cada uma. Por último  temos também o <footer>.
    Uma vez tendo o desenho base em mãos, podemos partir para a modelagem no photoshop (ou em qualquer outro software de criação). 


    No monitor:
    Assim ficará o nosso site após a sua concepção, ou melhor, essa será a estrutura das informações que conterão no nosso site quando ele estiver terminado. Aqui imaginamos um monitor de desktop ou notebook de resolução 1200.

    No tablet:
    Como o tamanho do tablet é naturalmente menor (de 480px à 768px), para fazermos um site responsivo, teremos de dar uma realocada no conteúdo. O distanciamento entre os itens do menu diminui, o logo e o resto do conteúdo consequentemente também. Devemos nos atentar ao que acontece com as imagens que, antes eram 4, agora são somente 2 por bloco (dessa forma mantemos um tamanho legal para elas e isso não dificulta quando o usuário for clicar ou ler o conteúdo).

    No mobile:
    O modelo de site para mobile deve ser muito mais estreito que o de tablet, isso porque seus tamanhos podem variar de 320px à  480px. Como podem ver na imagem abaixo, o logo fica maior, como alternativa de poupar espaço o menu torna-se  dropdown, as  fotos que antes eram 2 por bloco são trocadas por uma só e suas áreas são divididas em mais de uma página (que se o usuário quiser mudar, basta passar a tela para o lado).
    Uma vez imaginando e colocando em prática como o layout do site será, é hora de começar mexer com o HTML e o CSS da coisa! 
    Tendo criado o esqueleto das seções no html e posicionando-os corretamente, é hora de passar para o 1º fator da responsividade, a dinâmica do conteúdo!

    Para que seu site saia de acordo com o planejado, existem regras que devem ser seguidas de forma bem estrita, são elas:

    1ª: Altere unidades fixas para unidades relativas.
    - Fontes que antes eram definidas como pt ou px, agora passam a ser ‘em’.
    - Alturas, larguras e imagens que antes eram em px, serão trocadas por %.

    A conversão de unidades fixas para relativas se dá pelo seguinte cálculo:
    Tamanho em = tamanho px / contexto da página
    Tamanho % = tamanho px / contexto da página

    2ª Utilize as media-queries para adequar o layout ao dispositivo utilizado pelo usuário:
    Ex:  <link rel="stylesheet" href="smartphones.css" media="screen and (max-width:480px)">

    No caso do código acima, o css será restringido ao tamanho do dispositivo. Se tiver até 480px de resolução, o estilo carregado será o “smartphones.css”.

    Assim pode ser feito para todos os 3 tipos de tela mais usados, sejam eles de desktop, tablets ou mobile. Criando apenas um CSS por layout podemos abranger bem mais dispositivos, tudo através da media query.

    3ª Faça variados testes até chegar à perfeição.

    Bom, esse foi o humilde tutorial a respeito de design responsivo.
    OBS: As imagens aqui utilizadas (dos wireframes) foram retiradas do site: tableless.com.br


  2. ACESSIBILIDADE

    quarta-feira, 23 de outubro de 2013

    Acessibilidade na web:
    Diferentemente de quando o formato de paginas web foi criado e as páginas eram compostas somente de textos e hiperlinks, hoje em dia elas são um verdadeiro acervo de conteúdos multimídia (contendo não somente textos e hiperlinks, como também imagens, vídeos, áudio e animações), felizmente o desenvolvimento de tecnologias como html, css e javascript nos permitiu essa evolução.

    O princípio primordial da W3C é:
    “Princípios: uma web de todos, para todos e em todas as coisas.”

    Partindo desse pressuposto, iniciamos aqui o nosso assunto: Acessibilidade na web!
    O termo “acessibilidade web” refere-se à prática de projetar um website utilizando corretamente as semânticas HTML, de forma que mesmo pessoas com limitações físicas (cegos, daltônicos ou com baixa visão, dificuldades motoras e surdas, por exemplo) possam navegar e ter acesso às suas informações sem complicações.

    Quando criamos uma página de conteúdo, é crucial que facilitemos ao máximo o compreendimento do seu conteúdo por parte do nosso navegante, nesse caso devemos deixar claro o que é uma citação, uma abreviação (com significado), uma palavra de outra nacionalidade, fonte ajustável (para míopes), fazer um adequado contraste de cores, criar um mapa de navegabilidade e etc. Mais uma vez enfatizo que qualquer um deve ter acesso às informações independente de condição física, internet ou navegador.

    Utilizar a semântica HTML é saber usar corretamente as tags html, dando o verdadeiro sentido para sua existência, que é o de conceber um site que seja acessível à todos os públicos, sem restrição! Por este motivo, com a implementação do HTML5, tivemos mudanças muito boas em relação à estruturação de sites. Áreas específicas receberam  tags específicas (header, nav, footer, section e aside, por exemplo), essas tags que agora substituem as divs, dão uma real significância para a área que vão ocupar.
    Um site acessível deve facilitar a navegação e nunca dificulta-la, aplica-se aí a arquitetura da informação, layout do site, formatação do texto, cores, formas e o próprio conteúdo.

    Sabemos se um site é ou não acessível através de êxito nos seguintes testes:

    - Navegar sem mouse;
    - Navegar sem ver imagens;
    - Navegar sem áudio (se tiver muito conteúdo multimídia);
    - Navegar com monitor desligado (através de sintetizador de voz);

    Abaixo alguns conceitos de correta utilização de algumas tags para determinados elementos que compõe um site.

    Imagens acessíveis:
    Imagens são elementos muito importantes, não só em websites como em vários outros veículos de comunicação. Sua função é demonstrar de forma visual o que está sendo dito (tanto em jornais, revistas, livros e etc), isso facilita muito o entendimento do leitor.

    Por motivos diversos (velocidade da internet, link inválido ou limitação visual do internauta), ele pode não enxergar a imagem inserida no texto e um fator como esse deve jamais, JAMAIS possibilitar que a informação seja comprometida.
    Para evitar esses tipos de transtornos, temos atributos semânticos que tornam a falta de imagem pouco significativa para o contexto geral da página. Esses atributos são:

    alt: o atributo alt gera um texto alternativo para a imagem caso ela não seja carregada, dessa forma o navegante pode saber do que se trata.

    title: já o atributo title dá um título para essa imagem, quando passamos o mouse por cima esse conteúdo é apresentado. Ideal para pequenas descrições, além de ser lido por sintetizadores de voz.

    Formulários acessíveis:
    Os formulários têm como principal função estreitar o canal entre o desenvolvedor e o usuário. Como as páginas web são grandes disseminadoras de informação, é importante que o navegante tenha fácil acesso à elas e também possa, por exemplo, opinar à respeito do conteúdo disponibilizado, dar sugestões, reclamar, se cadastrar, fazer pesquisa sobre o público, manter contato e por aí vai.

    Como os formulários podem ter todas essas funcionalidades é crucial que sejam extremamente acessíveis.
    Um formulário acessível deve poder ser preenchido por qualquer pessoa, tenha ela ou não alguma necessidade especial, esteja ela em um pc desktop, smartphone ou tablet.

    Os princípios de acessibilidade em formulários são:

    tabindex: importante no site inteiro, pois nem sempre o usuário dispõe de um mouse para navegar entre os links.

    labels: extremamente importantes, principalmente para aqueles que dependem de um sintetizador de voz para fazer a navegação (geralmente pessoas cegas ou baixa visão);

    placehover: que insere um pré-preenchimento dentro de um campo, importante para exemplificar o tipo de conteúdo aceito ali, um bom exemplo são as máscaras de entrada de n° de telefone ou informações adicionais que facilitem o preenchimento do campo, como o (somente números) de campos de CEP.

    Input types: Agora com campos semânticos novos e bem sugestivos: color, range, number, date, email e tel

    Autofocus: Deixa determinado campo em foco, geralmente quando este não foi preenchido ou foi preenchido de forma incorreta. O foco é importante para chamar a atenção do usuário.
    Descrição de campos: botãozinho de ‘?’ com uma descrição do que o campo pede.

    Acessibilidade e a utilização de fontes:
    Com relação à utilização de fontes, devemos levar em consideração alguns fatores antes de adicionar os textos:

    - Tamanho: Lembrando que o nosso usuário pode ou não ter uma baixa visão, devemos deixar mais opções de tamanho de fontes para ele, pois dependendo do tamanho ele pode não conseguir ler e consequentemente sair do seu site. A boa prática é dar mais de uma opção de tamanho e deixar a critério do usuário escolher a que melhor se adapte aos seus olhos.

    - Alinhamento: Outro fator que pode contribuir ou terminar de avacalhar com a leitura do seu usuário é o alinhamento do texto. O ideal é que o mesmo fique sempre alinhado à esquerda (salvo algumas exceções), dessa forma os olhos do leitor não se perdem em meio aos espaços entre cada palavra. Uma coisa interessante é que o texto justificado, embora ‘bonitinho’ e bem alinhado, perde no quesito acessibilidade, justamente por ter espaços variáveis, que muitas vezes nos fazem ‘perder o rumo’ do texto (literalmente).

    - Disponibilidade: Tenhamos em mente que o usuário precisa ter a família de fontes que você utilizar no site, instalado em seu pc, para que dessa maneira consiga enxergar o layout na sua mais perfeita forma. Hoje em dia também temos a opção de deixar a fonte usada na nuvem, assim, caso o user não tenha a fonte, ela é automaticamente baixada, instalada e renderizada pelo navegador (isso é muito, muito bom! =D)

    Acessibilidade e a utilização de cores:
    Pessoas daltônicas tendem a não enxergar ou enxergar parcialmente determinados tons de coloração, é importante um estudo sobre isso antes de escolher as cores do seu site, pois o ideal é que se tenha uma segunda folha de estilos com cores diferentes, que possam ser facilmente assimiladas por essas pessoas.


    Ex: Um site que trabalhe muito com tons de laranja, vermelho ou amarelo, existem daltônicos que enxergam essas cores de forma amarelada ou esverdeada, então, dependendo da tonalidade do link ou da fonte, essa pessoa pode não enxergar (isso se aplica também à imagens), então uma segunda opção de cores é crucial.









  3. Taquigrafia CSS

    quarta-feira, 2 de outubro de 2013

    A taquigrafia é um método que permite abreviar a escrita, tem como principal objetivo a facilidade e melhoria da velocidade da digitação.
    Bastante utilizada e de grande importância na implementação do CSS, com a adaptação de conceitos taquigráficos, tornamos nossos códigos mais limpos e com menos linhas, dessa forma sua manutenção se dá de maneira mais simples e direta.
    Como visto no post sobre Propriedades CSS, cada propriedade pode ter diversos valores.
    Evitando sempre a redundância no código, repeti-las é considerado um crime hediondo, devemos sempre nos lembrar de que um verdadeiro desenvolvedor utiliza os códigos com sabedoria, então pra que repetir algo que já está lá?! Abaixo as técnicas de abreviação.

    Técnicas abreviadas para fundo:


    Resultado:

    Técnicas abreviadas para propriedade de fronteira:
    São denominadas propriedades de fronteira, todas as propriedades que nos permitem separar áreas de conteúdos para reorganizá-los de alguma forma no layout. São elas:
    - Border;
    - Margin;
    - Padding.
    Obs: alguns consideram propriedades de fronteira somente as bordas, deixando as margens internas e externas fora dessa categoria.
    Essas propriedades tem um aspecto em comum, que são seus quatro lados (top, right, bottom e left), portanto seus parâmetros devem ser especificados para eles.
    Bordas:
    Servem para delimitar espaços, organizar áreas e facilitar sua manipulação.

    Técnicas abreviadas para bordas:

    Resultado:

    Margens:
    Importante ressaltar sobre as margens e paddings: Quando usamos taquigrafia, as definições serão aplicadas iniciando do topo e seguindo sempre no sentido anti-horário (top, right, bottom, left), então, quando formos adicioná-las devemos prestar atenção nessa ordem. Quando as margens tiverem a o mesmo espaçamento, não é necessário colocar mais de uma vez.

    Técnicas abreviadas para margens:


    Resultado:

    Paddings

    Técnicas abreviadas para o padding:

    Resultado:

    Fontes
    As fontes também podem ter todas as suas propriedades definidas através de uma única declaração. Sabemos que de um modo geral, seus atributos são: size, weight, Family, style e variant.
    Sintetizar essas declarações é bastante simples, usamos a tag “font” e depois dela adicionamos todos os seus atributos, todavia, se tratando de fontes devemos nos atentar à ordem dos atributos, pois ela é importante para o funcionamento do código.

    Técnicas abreviadas para fontes:


    Resultado:


    Cores:
    Quando mexemos com CSS, a opção mais abrangente de identificação de cores que podemos ter são os valores hexadecimais. Esses valores são definidos por 6 caracteres, que vão de 0 à F.
    As cores só podem ser taquigrafadas caso seus valores sejam repetidos nas mesmas posições (FF0044) ou forem todos iguais (CCCCCC).
    A regra é simples, onde aparecem 2 letras / números iguais, substituímos por um só.

    Técnicas abreviadas para cores:

    Resultado:


  4. Formulário Fã Clube

    sábado, 20 de abril de 2013

    A atividade que tivemos de fazer durante essa semana para a matéria CCW (Criação de conteúdo para web), consistia em criar um formulário de inscrição para um fã clube, tivemos livre arbítrio para escolhermos qualquer banda ou cantor que gostássemos.

    Confesso que fiquei com muita dúvida entre muitas bandas (Pink Floyd, Symphony X, Angra, Genesis [quem me conhece sabe]) e cantores, mas no final fiz unicamente sobre Kagrra, uma banda japonesa que já não existe mais, entretanto suas música tocam até hoje na minha alma. s2

    Os formulários foram feitos em HTML5 e CSS3, seguindo assim os mandamentos divinos.

    Versão inglês:



    Versão português:



    Obs: Se tiver alguma coisa errada, a professora vai corrigir e depois eu corrijo aqui também.
    Obs2: Não conseguiu ver a imagem direito por conta do tamanho? Problema seu! Vide link abaixo.
    Obs3: Versão em html

  5. FORMULÁRIOS HTML

    domingo, 7 de abril de 2013

    Os formulários são muito importantes em websites; geralmente utilizados para reunir informações de cadastro de clientes e usuários em uma base de dados, eles servem para facilitar o contato do cliente com a empresa em diversos sentidos, já que não é necessário um contato telefônico – por exemplo – para que possa dar seus dados cadastrais, fazer uma reclamação, dar uma sugestão ou enviar uma dúvida.

    Tag e atributos (para formulários):

    <form> </form>: Tag de abertura de um formulário.

    - Atributos da tag form:
    *id: Agrupa elementos, mas sua mais importante função é a de dar uma identificação para eles (o Id é único, jamais deve haver 2 elementos com o mesmo).
    *action: Indica onde os dados informados serão guardados após sua submissão (ou seja, o local onde as informações preenchidas serão guardadas [por ex: um banco de dados]).
    *method: Método de envio dos dados, existem apenas 2, que são:
                    - Get: Os dados são conduzidos através da URL do navegador. Esse método não é aconselhável, pois informações importantes (como de variáveis, por exemplo) aparecem na barra de endereço e a quantidade de caracteres é extremamente limitada.
                    - Post: O método de envio mais seguro, devido ao fato de os dados serem transmitidos diretamente no corpo da página. Outra vantagem é que não há uma quantidade definida de caracteres que possam ser enviados de uma única vez.
    *enctype: Determina a maneira como serão codificados os dados do formulário (geralmente o formato texto é o escolhido).

    <label>: Dá um rótulo para o campo. Sua importância semântica é facilitar a leitura por intermédio de sintetizadores de voz. A leitura da label é importante para sinalização dos campos em casos de pessoas que não enxergam.

    - Atributos da tag label:
    *accesskey: Utilizado para a criação de alguma tecla de atalho, assim a navegação pelo teclado também é favorecida.
    *for: Usa-se para criar uma ligação entre a label e o campo à qual se refere.

    <input>: Define um campo de entrada de dados no formulário.

    - Atributos da tag input:
    *type: O tipo de entrada de dado, que tem como principais valores:
                    - Text: Cria um campo que receberá texto (letras, números, caracteres especiais);
                    - Date: Cria um minicalendário, onde o usuário escolhe uma data;
                    - E-mail: Cria um campo validado para receber um endereço de e-mail (se preencher sem @ e . o endereço de e-mail não é aceito);
                    - Number: Cria um campo de tipo numérico;
                    - Range: Cria um controle numérico (uma espécie de regulador), onde o desenvolvedor define qual será o intervalo entre um número e outro (o intervalo sempre será o mesmo);
                    - Password: Campo de senha, aceita números, letras e alguns caracteres especiais. Sua máscara de entrada é a ;
                    - Hidden: Cria um elemento invisível ao usuário, entretanto ele contém informações que geralmente são importantes ao desenvolvedor (última vez que o usuário fez alteração dos seus dados, por exemplo);
                    - File: Cria um botão que, quando clicado abre uma caixa de seleção de arquivo na máquina do usuário;
                    - Checkbox: Cria uma caixinha que funciona como seletor de opções;
                    - Radio: Lembra um checkbox, entretanto sua forma é circular e somente uma opção pode ser selecionada no radio. Muito utilizado para questões onde a informação é fixa, por exemplo, sexo feminino ou masculino;
                    - Button: Simplesmente cria um botão. Deve-se inserir um script que especifique a utilidade do mesmo;
                    - Image: Inclui uma imagem como botão de envio submit”;
                    - Submit: Botão de envio dos dados preenchidos no formulário para o local indicado no atributo action do form;
                    - Reset: Botão que devolve aos campos do formulário seus valores originais.
    Obs: Muito parecido com o botão ‘limpar’, já que aparentemente os campos ficam em branco quando clicamos sobre ele, a diferença está no caso de algum campo já ter algum valor específico e esse valor for alterado pelo usuário, quando resetado, o valor original torna a aparecer.
    *id: Agrupa elementos, mas sua mais importante função é a de dar uma identificação para eles (o Id é único, jamais deve haver 2 elementos com o mesmo).
    *name: Permite-nos dar um nome ao elemento.
    *accesskey: Utilizado para a criação de alguma tecla de atalho, assim a navegação pelo teclado também é favorecida.
    *alt: Texto alternativo somente para imagens.
    Motivos: se a imagem não carrega, ao passar o mouse acima do espaço onde ela ficaria, o texto - geralmente descritivo - aparece. Também utilizado por sintetizadores de voz;

    *checked: Determina que uma opção no radio ou checkbox estará pré-selecionada;
    *disabled: Desabilita a utilidade do campo;
    *maxlenght: Usado em campos tipo text e password, delimita uma quantidade máxima de caracteres permitidos;
    *readonly: Indica que o campo é somente de leitura, ou seja, o usuário não consegue digitar nele;
    *size: Especifica uma a largura (calculada por quantidade de caracteres) que um campo terá;
    *src: Usado sempre que o tipo for ‘img’ (imagem), indicará o caminho de onde a tal imagem está guardada;
    *tabindex: Apontará qual será a ordem dos campos do formulário que ficarão em foco conforme a tecla tab for pressionada;
    *value: Especifica o valor que será enviado ao banco de dados;

    --- Abaixo atributos que são utilizados exclusivamente para tipos number e range ---
    *max: Valor máximo;
    *min: Valor mínimo;
    *step: Define os intervalos entre os números.

    <select>: O select expõe uma série de opções que podem ser escolhidas, essas opções são apresentadas em forma de lista.

    *id: Agrupa elementos, mas sua mais importante função é a de dar uma identificação para eles (o Id é único, jamais deve haver 2 elementos com o mesmo).
    *multiple: Permite que mais de uma opção possa ser selecionada (por intermédio da tecla ctrl);
    *disabled: Desabilita a utilidade do campo;
    *size: Especifica uma a largura (calculada por quantidade de caracteres) que um campo terá;
    *tabindex: Apontará qual será a ordem dos campos do formulário que ficarão em foco conforme a tecla tab for pressionada;

    <option>: Define uma opção em algum tipo de lista de seleção.
    *value: Especifica o valor que será enviado ao banco de dados;
    *selected: Deixa uma das opções pré-selecionada;
    *label: Rotula a opção;
    *disabled: Desabilita a utilidade do campo;

    <optgroup>: Agrupa as opções relacionadas, dando assim uma maior organização ao select.

    <textarea>: É uma área onde textos maiores podem ser digitados, aceita qualquer tipo de caracter e quebras de linha também.
    *id: Agrupa elementos, mas sua mais importante função é a de dar uma identificação para eles (o Id é único, jamais deve haver 2 elementos com o mesmo).
    *tabindex: Apontará qual será a ordem dos campos do formulário que ficarão em foco conforme a tecla tab for pressionada;
    *accesskey: Utilizado para a criação de alguma tecla de atalho, assim a navegação pelo teclado também é favorecida;
    *cols: Define a largura da área de texto;
    *rows: Define a altura da área de texto;
    *readonly: Indica que o campo é somente de leitura, ou seja, o usuário não consegue digitar nele;

    <button>: Essa tag define um botão, dependendo da utilidade que esse botão terá, um script precisa ser criado para dar ao botão tal competência. Também podemos adicionar uma imagem ao botão, adequando-o assim ao design do site.

    <fieldset>: Cria uma borda em volta dos elementos do formulário. Bastante útil para agrupar informações semelhantes dentro do formulário.

    <legend>: Define um título para o fieldset.
    *accesskey: Utilizado para a criação de alguma tecla de atalho, assim a navegação pelo teclado também é favorecida.


    Exemplo de utilização das tags:

    <!DOCTYPE>
    <html>
    <head>
        <title>Trabalhando com formulários</title>
            <meta charset="utf-8">
        </head>
     
        <body>
        <form id="cadastro" action="cadastrar.php" method="post">
         
            <fieldset>
                    <legend>Formulário de Contato</legend>
                 
                    <fieldset>
                    <legend>Dados Pessoais:</legend>
                 
                    <label for="nome">Nome:*</label>
                    <input id="nome" type="text" required><br>
                 
                    <label for="data">Data que iniciou as aulas:</label>
            <input type="date" id="data"><br>
                 
                    Sexo:
                    <label for="sexo">M</label>
                    <input type="radio" name="sexo" value="m">
                    <label for="sexo">F</label>
                    <input type="radio" name="sexo" value="f"><br>
                 
                    <label for="endereco">Endereço:*</label>
                    <input id="endereco" type="text" required>
                 
                    <label for="numero">Nº:*</label>
                    <input id="numero" type="text" required>
                 
                    <label for="complemento">Complemento</label>
                    <input id="complemento" type="text"><br>
                 
                    <label for="telefone">Telefone:</label>
                    (<input id="ddd" type="number">)
                    <input id="telefone" type="number"><br>
                 
                    <label for="email">Email:</label>
            <input type="email" id="email"><br>
                </fieldset>
             
                <fieldset>
                <legend>Dados do curso</legend>
                    <label for="unidade">Unidade:</label><br>
                               
                    <input list="list_unidade" id="unidade">
                    <datalist id="list_unidade">
                 
                        <option value="Carapicuíba">
                        <option value="Barueri">
                        <option value="Osasco">
                        <option value="Embu das Artes">
                        <option value="São Paulo">
                 
                    </datalist><br>
                 
                    <label for="esportes">Período:</label><br>
            &nbsp;<input type="checkbox" value="mn" name="esportes">Manhã
            &nbsp;<input type="checkbox" value="td" name="esportes">Tarde
            &nbsp;<input type="checkbox" value="nt" name="esportes">Noite<br>
                 
                    <label for="curso">Curso:</label>
                        <select id="curso">
                     
                        <option selected>--- Selecione um curso ---</option>
                        <optgroup label="Cursos de TI">
                        <option value="ADS">Análise de Sistemas</option>
                        <option value="JD">Jogos Digitais</option>
                        <option value="SI">Sistemas para Internet</option>
                        <optgroup label="Outros cursos">
                        <option value="LG">Logística</option>
                        <option value="SC">Secretariado</option>
                    </select><br>
                    <label for="pontos">Dê uma pontuação ao curso:</label>
            <input type="range" id="pontos" min="1" max="10" step="1"><br>
                 
                    <label for="mensagem">Mensagem:</label>
                    <textarea cols="45" rows="10" id="mensgem">Seu feedback é importante para nós!</textarea><br>
                 
                    <input type="submit" value="Enviar">
                    <input type="reset" value="Redefinir">
                </fieldset>
                </fieldset>
        </body>
    </html>



    Exemplo da formulário no navegador:






















  6. Tabelas HTML

    sábado, 23 de março de 2013


    Utilização de tabelas em HTML:

    Antigamente, tabelas em HTML eram bastante utilizadas para a estruturação de sites.
    Entretanto, sites feitos em tabela ‘nasciam’ com diversos problemas, como:

    - o código sujo que dificultava na manutenção das páginas;
    - o site demorava mais para carregar, já que os browsers levavam mais tempo para interpretar as diversas tags tabulares;
    - problemas do usuário com respeito à acessibilidade;
    - design?? O que é isso? Haha (desculpa, mas eu tive que fazer essa piada!);

    Os desenvolvedores web notaram que essas diversas questões, problematizavam a criação de seus sites, pois o tempo empregado em seu desenvolvimento era muito grande e pensaram em uma forma de contornar todo esse transtorno.
    Por outro lado, os fabricantes de browsers da época criaram seus próprios padrões web, o que gerava grande dúvida por parte do desenvolvedor, que dificilmente conseguia fazer um site que rodasse bem em mais de um navegador diferente. Daí teria de fazer uma pesquisa sobre qual navegador poderia “transferir” melhor a sua ideia para o ambiente virtual.
    Estava tudo tão ‘saturado’, que nesse período surgiram projetos como o WaSP (Web Standards Project), que consistia em difundir os princípios da W3C para os fabricantes de browsers. Foi aí que surgiu o movimento “Tableless”, que visava criar sites SEM TABELAS. Por um lado muitos aderiram facilmente à ideia, mas outros em compensação persistiram nas tabelas (essas pessoas hoje em dia podem ser consideradas extintas).
    A ideia era que o HTML fosse utilizado para o mesmo fim para o qual foi criado, marcar áreas de um site e com a ajuda do CSS, formatar seus estilos. Tabelas devem ser usadas somente para agrupar dados.
    Hoje em dia, tabelas não são mais utilizadas para definição de áreas de um site e são usadas somente para tabular dados.


    As tags que formam as tabelas, são:

    <table>: Define a criação de uma tabela;
    <tr>: Colunas de uma tabela;
    <td>: Células de uma tabela;
    <th>: Define uma célula como cabeçalho de, para dar título para a linha ou coluna.

    Obs: Para mesclagem de células, são utilizados 2 atributos:
    * colspan – Mescla horizontalmente;
    * rowspan – Mescla verticalmente.

    <caption>: É um atributo de criação de legendas;


    Agrupando informações:

    <thead>: Informações pertencentes ao head da tabela;
    <tbody>: Informações pertencentes ao corpo;
    <tfoot>: Informações pertencentes ao rodapé.

    Obs: Essas estruturas de agrupamento podem conter mais de uma linha.


    Exemplo de utilização das tags:

    <!DOCTYPE>
    <html lang="pt-br">
        <head>
                    <title>Tabela: Exemplo</title>
        </head>
       
        <body>
                    <table border="1">
            <caption> Tabela de preços</caption>
                    <thead>
                    <tr>
                        <td colspan="4">Produtos saldo zero</td>
                    <tr>
                        <th>Produto</th>
                        <th>Preço</th>
                        <th>QTD</th>
                        <th>Total</th>
                    </tr>
                </thead>
               
                <tbody>   
                    <tr>
                        <td>Notebook</td>
                        <td>999,99</td>
                        <td>1</td>
                        <td>999,99</td>
                    </tr>
                   
                    <tr>
                        <td>Tablet</td>
                        <td>499,99</td>
                        <td>2</td>
                        <td>999,98</td>
                    </tr>
                   
                    <tr>
                        <td>Celular</td>
                        <td>299,99</td>
                        <td>3</td>
                        <td>899,99</td>
                    </tr>
                <tbody>
               
                <tfoot>   
                    <tr>
                        <td colspan="2">Total</td>
                        <td>6</td>
                        <td>2.899,94</td>
                    </tr>
                </tfoot>
                    </table>
           
        </body>
    </html>


    Exemplo da tabela no navegador: