// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Trabalhando com Folhas de Estilo CSS em uma Aplicação em HTML5
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Trabalhando com Folhas de Estilo CSS em uma Aplicação em HTML5 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Trabalhando com Folhas de Estilo CSS em uma Aplicação em HTML5

As aplicações em HTML5 costumam combinar HTML, CSS e JavaScript para criar aplicações executadas em um browser e exibidas em diversos dispositivos, incluindo smartphones, tablets e laptops. Este documento demonstra como o IDE oferece ferramentas que podem ajudá-lo a trabalhar com regras de CSS para modificar o layout de uma aplicação. O IDE também fornece suporte para criar e usar os pré-processadores Sass e LESS CSS em sua aplicação.

A extensão NetBeans Connector para o browser Chrome pode ajudá-lo a exibir aplicações da forma como elas seria, exibidas em vários dispositivos. A extensão ativa o browser Chrome e o IDE para se comunicarem um com o outro. O modo Inspecionar no NetBeans pode ajudá-lo a localizar elementos no seu código-fonte, selecionando-os no browser. Depois que você selecionar um elemento no browser, poderá usar o IDE para exibir as regras de CSS e as propriedades aplicadas a esse elemento.

Para obter detalhes sobre como instalar a extensão NetBeans Connector para o browser Chrome, consulte o tutorial link:html5-gettingstarted.html[+Conceitos Básicos sobre Aplicações em HTML5 +].

Para observar um screencast deste tutorial, consulte link:../web/html5-css-screencast.html[+Vídeo do Trabalho com Folhas de Estilo CSS em Aplicações HTML5+].



image::images/netbeans-stamp-80-74.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.4 e 8.0"]



==== Para concluir este tutorial, você precisará dos recursos a seguir:

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE, Java+] |7.4, 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |7 ou 8 

|link:http://www.google.com/chrome[+Browser Chrome+] |-- 

|link:https://chrome.google.com/webstore/detail/netbeans-connector/hafdlehgocfcodbgjnpecfajgkeejnaa?utm_source=chrome-ntp-icon[+Extensão NetBeans Connector para Chrome+] |1.1 ou mais recente 

|link:https://netbeans.org/projects/samples/downloads/download/Samples/Web%20Client/HTML5DemoSiteTemplate.zip[+HTML5DemoSiteTemplate.zip+] |-- 

|Pré-processador de CSS |link:http://sass-lang.com/install[+Sass+] ou
link:http://lesscss.org/[+LESS+] 
|===

*Observações:*

* O modelo link:https://netbeans.org/projects/samples/downloads/download/Samples/Web%20Client/HTML5DemoSiteTemplate.zip[+HTML5DemoSiteTemplate.zip+] é um modelo de site que você irá usar ao criar o projeto.
* Se você quiser comparar seu projeto com uma solução em funcionamento, poderá fazer download do link:https://netbeans.org/projects/samples/downloads/download/Samples/Web%20Client/HTML5DemoCssSiteTemplate.zip[+modelo de site+] do projeto acabado.
* Este tutorial pressupõe que você tenha alguma experiência com programação ou algum conhecimento básico de HTML, CSS e JavaScript.


== Criando a Aplicação do NetBeans em HTML5

Neste tutorial, você utilizará um site modelo para criar o projeto em HTML5. O modelo de site que você usa neste tutorial é o mesmo que foi salvo como modelo de site no tutorial link:html5-gettingstarted.html[+Conceitos Básicos sobre Aplicações em HTML5+]. Se você tiver executado as etapas do tutorial Conceitos Básicos, poderá usar o modelo de site que salvou na última seção. Como alternativa, você pode fazer download do modelo de site HTML5DemoSiteTemplate.zip.

Execute as etapas a seguir para criar a aplicação de um modelo de site.

1. Faça download do modelo HTML5 (link:https://netbeans.org/projects/samples/downloads/download/Samples/Web%20Client/HTML5DemoSiteTemplate.zip[+HTML5DemoSiteTemplate+])
2. Selecione Arquivo > Novo Projeto (Ctrl-Shift-N; ⌘-Shift-N no Mac) no menu principal para abrir o assistente Novo Projeto.
3. Selecione a categoria *HTML5*e, em seguida, selecione *Aplicação HTML5*. Clique em Próximo.
4. Digite *HTML5DemoCss* para nome do projeto e especifique uma localização. Clique em Próximo.
5. Selecione a opção *Selecionar Modelo* e clique em Procurar para localizar o modelo de site ( ``HTML5DemoSiteTemplate.zip`` ). Clique em Finalizar. 
image::images/html5-css-newproject.png[title="Especifique o modelo de site no assistente Nova Aplicação em HTML5"]

Quando você clica em Finalizar, o IDE cria o projeto e abre o arquivo  ``index.html``  no editor. Na janela Projetos, você pode ver que o projeto contém  ``index.html`` , uma folha de estilo CSS, algumas bibliotecas JavaScript e algumas imagens. As janelas Regras de CSS e Navegador também são abertas no IDE.


== Exibindo a Aplicação em Dispositivos Diferentes

Neste tutorial, você executará a aplicação no browser Chrome com a extensão NetBeans Connector instalada. Quando a extensão for instalada, você poderá usar o menu do NetBeans no browser para redimensionar facilmente a janela do browser e exibir a aplicação como ela apareceria em dispositivos comuns.

*Observações.* Para esse tutorial, é recomendável usar o browser Chrome e instalar a extensão do NetBeans para Chrome. Consulte o tutorial link:html5-gettingstarted.html[+Conceitos Básicos sobre Aplicações em HTML5+] para obter detalhes sobre como instalar a extensão NetBeans Connector.

Execute as etapas a seguir para executar a aplicação no browser Chrome.

1. Confirme que Chrome com Integração NetBeans está selecionado na lista drop-down, na Barra de Ferramentas.
2. Clique no botão Executar na barra de ferramentas para executar a projeto no browser Chrome.

No browser, você pode ver uma menu expansível simples.

Você perceberá que há uma barra amarela na guia do browser que o notifica que o NetBeans Connector está depurando a guia. O IDE e o browser são conectados e podem se comunicar um com o outro quando a barra amarela está visível. Quando você inicializa uma aplicação HTML5 do IDE, o depurador JavaScript é ativado automaticamente. Quando você salva as alterações em um arquivo ou faz alterações em uma folha de estilos CSS, não precisa recarregar a página, pois a janela do browser será atualizada automaticamente para exibir as alterações.

Se você fechar a barra amarela ou clicar em Cancelar, quebrará a conexão entre o IDE e o browser. Se você interromper a conexão, será necessário iniciar a aplicação em HTML5 a partir do IDE.

Você obsevará também que o ícone do NetBeans ficará visível no campo do local do URL do browser. É possível clicar no ícone para abrir um menu que oferece várias opções para alterar o tamanho de exibição do browser e para ativar o modo Inspecionar no NetBeans.

3. Clique no ícone Abrir Ação do NetBeans no campo URL do browser para abrir o menu NetBeans e selecionar Retrato do Tablet no menu.

A janela é redimensionada para o tamanho de um browser do tablet em modo retrato. O menu é estendido para preencher o lado direito e todo o menu ficar visível.

image::images/html5-css-tabletbrowser1.png[title="Tamanho de exibição de Retrato do Tablet no browser"]

Se você selecionar um dos dispositivos default no menu, a janela do browser se redimensionará de acordo com as dimensões do dispositivo. Isso permite que você veja como será a aparência da aplicação no dispositivo selecionado. As aplicações em HTML5 geralmente são projetadas para responder ao tamanho da tela do dispositivo em que são exibidas. Você pode usar regras de JavaScript e CSS que respondam ao tamanho da tela e modificar a forma como as aplicações são exibidas, de maneira que o layout seja otimizado para o dispositivo.

4. Clique no ícone NetBeans novamente e selecione Paisagem do Smartphone no menu do NetBeans.
image::images/html5-css-tabletbrowser2.png[title="Selecione Paisagem do Smartphone no menu do NetBeans no browser"]

A janela é redimensionada para o tamanho de um smartphone em orientação paisagem e você poderá ver que a parte inferior do menu não fica visível sem a rolagem de tela.

image::images/html5-css-smartphonebrowser1.png[title="Janela do browser redimensionada para Paisagem do Smartphone"]

Na próxima seção, você modificará a folha de estilo para que seja possível exibir todo a menu sem rolar a tela em um smartphone ma view Paisagem.


== Modificando o Layout

Deve haver a possibilidade de fazer algumas pequenas alterações no elementos da página, de forma que nenhum rolagem de tela seja necessária. Essas alterações só devem ser aplicadas quando o tamanho do browser equivaler ao de um smartphone ou for menor. Quando está em orientação de paisagem, a janela do browser de um smartphone tem 480 pixels de largura e 320 pixels de altura.


=== Criar uma Folha de Estilo de Mídia

Neste exercício, você criará uma nova folha de estilo e adicionará uma regra de mídia para dispositivos com exibições de smartphone. Em seguida, você adicionará alguma Regras de CSS à regra de mídia.

1. Clique com o botão direito do mouse no nó da pasta  ``css`` , na janela Projetos, e escolha Nova > Folha de Estilo em Cascata no menu pop-up.
2. Digite *mycss* como Nome de Arquivo. Clique em Finalizar.

Quando você clicar em Finalizar, a nova folha de estilo será aberta no editor.

3. Adicione a regra de mídia a seguir à folha de estilo.

[source,java]
----

/*My rule for smartphone*/
@media (max-width: 480px) {

}
----

Toda regra de CSS que você adicionar entre colchetes para esta regra será aplicada apenas quando a dimensão do browser for de 480 pixels de largura ou menos.

Crie modelos de código para os snippets de código que você usa mais frequentemente. Você pode criar modelos de código CSS na guia Modelos de Código na categoria Editor da janela Opções.

4. Salve as alterações.
5. Abra  ``index.html``  no editor.
6. Adicione o link a seguir à folha de estilo entre as tags  ``<head>``  no  ``index.html`` . Salve as alterações.

[source,java]
----

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

Você pode usar a funcionalidade autocompletar código no editor para ajudá-lo a adicionar o link à folha de estilo.

 


=== Adicionando Regras de CSS

1. No browser Chrome, clique no ícone do NetBeans e selecione Inspecionar no Modo NetBeans, no menu.
2. Clique ma imagem no browser.

Um elemento é realçado quando selecionado no modo Inspecionar. Nesta tela, você pode ver que a imagem está realçada de azul.

image::images/html5-css-selectimage.png[title="Imagem selecionada no browser Chrome."]

No IDE, você pode ver que as regras e propriedades de CSS aplicadas ao  ``img``  são listadas na janela Estilos de CSS. A guia Seleção da janela Estilos de CSS tem três painéis que oferecem detalhes sobre o elemento selecionado.

image::images/html5-css-styleswindow1.png[title="Janela Estilos de CSS quando a imagem é selecionada."]


==== Painel Superior

No painel Propriedades da janela, é possível ver que seis pares propriedade-valor são aplicados ao elemento  ``img`` . Três dos pares ( ``borda`` ,  ``flutuação``  e  ``margem`` ) são aplicados via regra CSS para o elemento  ``img`` . Os três pares restantes são aplicados porque o elemento  ``img``  herda as propriedades dos seletores de classe que são aplicadas aos objetos que contêm o elemento  ``img`` . Você pode ver claramente a estrutura do DOM na janela Navegador. A propriedade  ``borda``  está selecionada no momento no painel Propriedades da janela Estilo CSS.


==== Painel Central

No painel central Estilos Aplicados, você pode ver que a propriedade  ``borda``  e o valor especificado em uma regra CSS definem o elemento  ``img`` . A regra está localizado na linha 12 do arquivo  ``basecss.css`` . Você pode clicar no local do painel para abrir a folha de estilo no editor.


==== Painel Inferior

O painel inferior exibe todas as propriedades definidas na regra CSS para a regra que está selecionada no painel central. Nesse caso, é possível verificar que a regra para  ``img``  define as propriedades  ``borda`` ,  ``flutuação``  e  ``margem`` .


3. Clique na guia Documento na janela Estilos de CSS.
4. Selecione o nó  ``css/mycss.css``  e clique no botão Editar Regras de CSS (image::images/newcssrule.png[title="Botão Editar Regras de CSS"]) para abrir a caixa de diálogo Editar Regras de CSS.
image::images/html5-css-styleswindow2.png[title="Caixa de diálogo Editar Regras de CSS"]
5. Selecione o Elemento como Tipo de Seletor e digite *img* como Seletor.
6. Selecione  ``css/mycss.css``  como Folha de Estilo e *(max-width:480px)* como Na Regra. Clique em OK.
image::images/html5-css-editcssrules.png[title="Caixa de diálogo Editar Regras de CSS"]

Quando você clica em OK, o IDE cria uma regra de CSS para  ``img``  na folha de estilo  ``css/mycss.css``  entre os colchetes da regra de mídia. A nova regra agora está listada no painel Estilos Aplicados.

7. Clique na guia Seleção na janela Estilos de CSS.

Você pode ver que há duas regras de CSS para  ``img`` . Uma das regras está localizada em  ``mycss.css``  e a outra em  ``basecss.css`` .

8. Selecione a nova regra  ``img``  (definida em  ``mycss.css`` ) no painel Estilos Aplicados da janela Estilos de CSS. 
image::images/html5-css-styleswindow2.png[title="Estilos para o elemento selecionado na janela Estilos de CSS."]

No painel inferior da janela, você pode ver que a regra não têm propriedades.

9. Clique em Adicionar Propriedade na coluna esquerda, no painel inferior da janela Estilos de CSS e digite *largura*.
10. Digite *90px* na coluna direita próxima à propriedade  ``width``  e tecle em Voltar ao teclado. 
image::images/html5-css-styleswindow3.png[title="Painel Propriedades da Imagem da janela Estilos de CSS"]

Quando você começar a digitar na coluna de valor verá que uma lista drop-down exibirá valores comuns para a propriedades  ``width`` .

Quando você acessa a chave Retornar a imagem no browser é automaticamente redimensionada para ficar com 90 pixels de largura. O IDE adicionou a propriedade à regra de CSS na folha de estilo  ``mycss.css`` . O editor a folha de estilo deve agora conter a regra a seguir.


[source,java]
----

/*My rule for smartphone*/
@media (max-width: 480px) {

    img {
        width: 90px;
    }

}
----

Algumas alterações adicionais precisam ser feitas na folha de estilo porque o menu ainda não cabe na janela.

11. Selecione o elemento ( ``<ul>`` ) da lista não ordenada na janela do browser.
image::images/html5-css-smartphonebrowser2.png[title="Elemento da lista selecionado no browser"]

Quando você seleciona o elemento, pode ver que  ``<ul>``  está selecionada na janela Browser DOM e você pode ver os estilos aplicados a esse elemento na janela Estilo de CSS.

image::images/html5-css-browserdom.png[title="Listar elemento selecionado na janela Browser DOM"]

Se você selecionar  ``font-family``  na janela Estilos de CSS, poderá ver que a propriedade e o valor  ``font-family``  são definidos no seletor de classe  ``.ui-widget`` .

12. Clique no arquivo  ``index.html``  no editor e clique na guia Documento na janela Estilos de CSS.
13. Expanda o nó  ``css/mycss.css``  ma janela de Estilos de CSS.
image::images/html5-css-styleswindow4.png[title="Folha de Estilo selecionada na guia Documento da janela Estilos de CSS"]
14. Clique no botão Editar Regras de CSS (image::images/newcssrule.png[title="Botão Editar Regras de CSS"]) na janela Estilos de CSS para abrir a caixa de diálogo Editar Regras de CSS.
15. Selecione a Classe como Tipo de Seletor e digite *ui-widget* como Seletor.
16. Selecione * ``css/mycss.css`` * como Folha de Estilo e *(max-width:480px)* como Na Regra. Clique em OK.

Quando você clica em OK, o IDE adiciona a nova regra à folha de estilo  ``mycss.css``  e abre o arquivo no editor. Se o arquivo não for aberto no editor, você pode clicar duas vezes na regra  ``ui-widget``  no nó  ``css/mycss.css``  na janela Estilos de CSS para abrir a folha de estilo. O cursor é colocado na linha que contém a regra na folha de estilo.

17. Adicione a propriedade e o valor (em negrito) a seguir à regra para a  ``ui-widget`` .

[source,java]
----

.ui-widget {
    *font-size: 0.9em;*
}
----

Quando você altera o valor na folha de estilo, a página o atualiza automaticamente na janela do browser.

Você pode digitar a propriedade e o valor no editor e usar o recurso autocompletar código para ajudá-lo. Como alternativa, selecione a regra  ``.ui-widget``  no painel superior e clique no botão Adicionar Propriedade no painel inferior para abrir a caixa de diálogo Adicionar Propriedade.

image::images/html5-css-csseditor1.png[title="Recurso autocompletar código no editor"]

Depois de adicionar a regra, você pode ver que o menu agora se ajusta à página.

image::images/html5-css-smartphonebrowser3.png[title="Página exibida no browser com novas regras de CSS aplicadas"]
18. Clique no ícone do NetBeans no browser e selecione Retrato do Tablet no menu.

Quando a janela do browser é redimensionada, você pode ver que as alterações na folha de estilo não afetam a exibição quando o tamanho da tela é maior do que 480 pixels de largura.


== Usando Pré-processadores de CSS

Além das ferramentas para editar os arquivos CSS padrão, o IDE também suporta o uso de pré-processadores Sass e LESS CSS para gerar folhas de estilo para suas aplicações. O IDE fornece assistente para gerar arquivos do pré-processador de CSS e para especificar diretórios com watch. Se você especificar um diretório com watch, os arquivos CSS serão gerados automaticamente cada vez que você modificar os arquivos do pré-processador de CSS no diretório.

*Observação.* Para usar um pré-processador de CSS é necessário instalar o software do pré-processador e especificar o local do executável. Você pode especificar o local do executável na janela Opções.

1. Instale o software do pré-processador de CSS no sistema local.

O IDE suporta os pré-processadores link:http://sass-lang.com/[+Sass+] e link:http://lesscss.org/[+LESS+]. Este tutorial demonstra como usar Sass para gerar os arquivos CSS, mas a configuração para LESS é semelhante.

*Observação.* Se estiver instalando o LESS no OS X pode ser necessário confirmar se o Node.js pode ser encontrado no diretório  ``usr/bin`` . Para obter detalhes, consulte a seguinte link:http://stackoverflow.com/questions/8638808/problems-with-less-sublime-text-build-system[+nota+].

2. Expanda o projeto HTML5Demo na janela Arquivos.
3. Clique com o botão direito do mouse na pasta  ``public_html``  na janela Arquivos e escolha Nova > Pasta no menu pop-up.

Se Pasta não for uma opção no menu pop-up, escolha Outro e selecione o tipo de arquivo Pasta na categoria Outro do assistente Novo Arquivo.

4. Digite *scss* para Nome do Arquivo. Clique em Finalizar.

Quando você clicar em Finalizar o IDE gerará a nova pasta na pasta  ``public_html`` .

5. Clique com o botão direito do mouse no nó da pasta  ``scss`` , na janela Projetos, e escolha Novo > Arquivo Sass no menu pop-up.
6. Digite *mysass* como o Nome do Arquivo.
7. Clique em Configurar para abrir a guia Pré-processador de CSS na janela Opções.
8. Digite o caminho para o executável Sass ou clique em Procurar para localizar o executável em seu sistema local. Clique em OK para fechar a janela Opções.
image::images/html5-css-cssoptions.png[title="Página exibida no browser com novas regras de CSS aplicadas"]
9. Selecione Compilar Arquivos Sass ao Salvar no assistente Novo Arquivo. Clique em OK.
image::images/html5-css-newsass.png[title="Página exibida no browser com novas regras de CSS aplicadas"]

Quando clicar em OK, o novo arquivo  ``mysass.scss``  de Sass será aberto no editor.

10. Adicione o seguinte em  ``mysass.scss``  e salve suas alterações.

[source,java]
----

img {
    margin-right: 20px; 
    float:left; 
    border: 1px solid;

    @media (max-width: 480px) {
        width: 90px;
    }
}


.ui-widget {
    @media (max-width: 480px) {
        font-size: 0.9em;
        li {
            color: red; 
        }
    }
}
----

Ao salvar o arquivo, o pré-processador gera um arquivo  ``mysass.css``  de CSS na pasta  ``css`` . Se abrir  ``mysass.css``  no editor, você poderá ver as regras que foram geradas no arquivo  ``scss`` . Por default, as informações de depuração de CSS são geradas em  ``mysass.css`` . Quando não quiser mais que as informações de depuração sejam geradas, você pode desativar a geração em uma guia Pré-processadores de CSS na janela Opções.

*Observações.*

* Quando quiser modificar as regras de CSS você deve editar o arquivo  ``mysass.scss``  do pré-processador de Sass e não a folha de estilos  ``mysass.css``  porque a folha de estilos é gerada novamente cada vez que o arquivo do pré-processador é modificado e salvo.
* Para documentação sobre a sintaxe de Sass e outras funcionalidades de Sass, consulte a link:http://sass-lang.com/documentation/file.SASS_REFERENCE.html#[+referência de Sass+].
11. Abra  ``index.html``  e faça as seguintes alterações no link da folha de estilos de  ``mycss.css``  para  ``mysass.css`` . Salve as alterações.

[source,java]
----

<link type="text/css" rel="stylesheet" href="css/*mysass.css*">
----

Quando salvar o arquivo, a página do browser será atualizada automaticamente. Você poderá ver que os elementos do item da lista agora estão em vermelho.


[[summary]]
== Resumo

Neste tutorial, você aprendeu a adicionar e modificar as regras de uma aplicação em HTML5 para aprimorar a forma como a aplicação é exibida com um tamanho de tela menor. Você exibiu a aplicação em um browser que foi redimensionado ao tamanho de um smartphone padrão. Você usou o Modo Inspecionar no NetBeans no browser Chrome para ajudá-lo a localizar as regras de estilo de CSS e depois modificou as regras para otimizar o layout para uma tela menor.

link:/about/contact_form.html?to=3&subject=Feedback:%20Working%20With%20CSS%20Style%20Sheets%20in%20an%20HTML5%20Application[+Enviar Feedback neste Tutorial+]




[[seealso]]
== Consulte Também

Para obter mais informações sobre suporte para aplicações no HTML5 no IDE, consulte os seguintes recursos em link:https://netbeans.org/[+netbeans.org+]:

* link:html5-gettingstarted.html[+Conceitos Básicos sobre Aplicações em HTML5+]. Um documento que demonstra como instalar a extensão NetBeans Connector para Chrome e criar e executar uma aplicação simples em HTML5.
* link:html5-js-support.html[+Depurando e Testando JavaScript em Aplicações em HTML5+]. Um documento que demonstra como o IDE oferece ferramentas que podem ajudá-lo a depurar e testar arquivos JavaScript no IDE.
* Capítulo link:http://docs.oracle.com/cd/E50453_01/doc.80/e50452/dev_html_apps.htm[+Desenvolvendo Aplicações HTML5+] em link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG[+Desenvolvendo Aplicações com o NetBeans IDE - Guia do Usuário+]

Para obter mais informações sobre o jQuery, consulte a documentação oficial:

* Home Page Oficial: link:http://jquery.com[+http://jquery.com+]
* Home Page da IU: link:http://jqueryui.com/[+http://jqueryui.com/+]
* Tutoriais: link:http://docs.jquery.com/Tutorials[+http://docs.jquery.com/Tutorials+]
* Página Principal da Documentação: link:http://docs.jquery.com/Main_Page[+http://docs.jquery.com/Main_Page+]
* Demonstrações de IU e Documentação: link:http://jqueryui.com/demos/[+http://jqueryui.com/demos/+]
