4soft




Front-End Para WEB





Luan Fonseca
<luanfonceca@gmail.com>

Quem sou eu


Luan fonseca, 20 anos, programador desde 2010, Graduando em Enhgenharia de Software/UFRN, formado como Técnico de Infomática para Internet com ênfase WEB pelo IDM, Desenvolvedor de Software na empresa Multmeio, Trainee na empresa Júnior, 4soft e Entusiasta e evangelista Python e de todo o movimento Open-Source.

Nomenclaturas


FRONT-END
"O que o usuário diz que tá feio."


BACK-END
"O que o usuário diz que tá lento."

CLIENT-SIDE
"Ações que ocorrem no Cliente, ou seja, no browser/navegador do usuário."

SERVER-SIDE
"Tudo que ocorre no Servidor, onde o site/software está hospedado."

Nomenclaturas

HTML 
(HyperText Markup Language)
"É uma linguagem, comumente utilizada para se construir páginas na Internet, não tem poder computacional, apenas de Marcação"

CSS 
(Cascading Style Sheets)
"É uma linguagem, utilizada para adicionar estilo, foi criada com o intuito de melhorar as marcações e adicionar mais poder à exibição do HTML."

Nomenclaturas


JAVASCRIPT 
"É uma linguagem front-end, onde seu escopo natural é o Browser, atuando sobre os elementos HTML e Eventos que o Browser envia. Ela tem poder computacional, podendo além de manipular os elementos da página, também pode efetuar calculos e outras coisas que toda Linguagem de Programação pode fazer."

HTML

"Html, é muito flexível, baseado em tags, que por sua vez possuem atributos e esses atributos possuem valores."

<exemplo nome="Primeiro Exemplo" tipo="Texto">    Primeiro paragrafo do texto.
</examplo>

"Criamos uma tag chamada examplo , ela tem 2 atributos, um nome e um  tipo ."

HTML

"Como liberdade nem sempre é bom, uma organização chamada W3C, se dispõe à classificar, organizar e manter as tags. Para que todos consigam entender o HTML de outras pessoas sem muitas dificuldades."

Utilizando uma Tag, pre-definida, do HTML padrão, com atributos seguindo os padrões da WEB:
<p name="Primeiro Exemplo" class="Texto">    Primeiro paragrafo do texto.</p>

Estrutura desejada


            +-----------------------------------------------------+
            |                                                     |
            |                 Cabeçalho da Pagina                 |
            |                                                     |
            +-----------------------------------------------------+
            |                                                     |
            |  +--------------------+     +--------------------+  |
            |  |   Bloco Esquerdo   |     |    Bloco Direito   |  |
            |  +--------------------+     +--------------------+  |
            |  | +----------------+ |     |  Lista de Itens    |  |
            |  | | Paragrafo      | |     |     * Item 1       |  |
            |  | |                | |     |     * Item 2       |  |
            |  | |                | |     |     * Item 3       |  |
            |  | |                | |     |     * Item 4       |  |
            |  | +----------------+ |     |     * Item 5       |  |
            |  +--------------------+     +--------------------+  |
            |                                                     |
            +-----------------------------------------------------+
            |                                                     |
            |                 Rodapé da Página                    |
            |                                                     |
            +-----------------------------------------------------+

traduzindo


Cabeçado == header
            +-----------------------------------------------------+
            |                                                     |
            |                 Cabeçalho da Pagina                 |
            |                                                     |
            +-----------------------------------------------------+


rodapé == footer
            +-----------------------------------------------------+
            |                                                     |
            |                 Rodapé da Página                       |
            |                                                     |
            +-----------------------------------------------------+

TRADUZINDO



Bloco == section
            +-----------------------------------------------------+
            |                                                     |
            |  +--------------------+     +--------------------+  |
            |  |   Bloco Esquerdo   |     |    Bloco Direito   |  |
            |  +--------------------+     +--------------------+  |
            |  | +----------------+ |     |  Lista de Itens    |  |
            |  | | Paragrafo      | |     |     * Item 1       |  |
            |  | |                | |     |     * Item 2       |  |
            |  | |                | |     |     * Item 3       |  |
            |  | |                | |     |     * Item 4       |  |
            |  | +----------------+ |     |     * Item 5       |  |
            |  +--------------------+     +--------------------+  |
            |                                                     |

TRADUZINDO



Lista == li
                            +--------------------+
                            |    Bloco Direito   |
                            +--------------------+
                            |  Lista de Itens    |
                            |     * Item 1       |
                            |     * Item 2       |
                            |     * Item 3       |
                            |     * Item 4       |
                            |     * Item 5       |
                            +--------------------+

hands on


Criando a estrutura básica do HTML.
<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <header>
            <h1>Cabeçalho da Pagina</h1>
        </header>
        <footer>
            Rodapé da Página
        </footer>
    </body>
</html>

HANDS ON


Adicionando o bloco esquerdo, <section>
...
    <header>
        <h1>Cabeçalho da Pagina</h1>
    </header>
    <section>
        <section>
            <h2>Block Esquerdo</h2>
            <p>
               Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            </p>
        </section>
    </section>
    <footer>
        Rodapé da Página
    </footer>
...

HANDS ON


Adicionando o bloco direito, <section>
...
    </section>
    
    <section>
        <h2>Block Direito</h2>
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
        </ul>
    </section>
</section>
...

Estilos


O CSS, é composto por propriedades, elas são definidas pela W3C e os navegadores tem que acompanhar, em tese. Com isso, essas propriedades dizem ao navegador como ele deve exibir o elemento (a tag). Existem inúmeras propriedades, veja algumas:
margin, width, height, display, padding, font, color, background, display, float, postion, border, text-decoration...

Embelzando nosa pagina


Utilizando o atributo style, passaremos os valores de estilo para os elementos.
...
    <header>
        <h1>Cabeçalho da Pagina</h1>
    </header>
    <section style="width: 800px;">
        <section style="width: 300px; float: left">
            <h2>Block Esquerdo</h2>
            <p>
               Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            </p>
        </section>
    </section>
    <footer>
        Rodapé da Página
    </footer>
...

HANDS ON


Utilizando o atributo  style, passaremos os valores de estilo para os elementos. 
...
    </section>
    
    <section style="width: 300px; float: left">        <h2>Block Direito</h2>
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
        </ul>
    </section>
    <div style="clear: both;"></div>
</section>
...

Estilo em cascata

O uso do estilo em cascata é um truque do CSS, para evitar duplicação de código, facilitar na organização, adicionar uma hierarquia de estilo... Com isso, você pode manipular os elementos HTML através de classes, IDs e outro atributos.
<head>
    <style type="text/css">
        .texto {
            font-size: 10px
        }
    </style>
</head>
<body>
    </section class="texto">
        Esse texto tem fonte de 10px.
    </section>
</body>

Estilo em cascata


Criando estilos para nossa pagina
<head>
    <style type="text/css">
        .main-section {
            width: 600px
        }

        .small-section {
            width: 300px;
        }

        .pull-left {
            float: left
        }

        .clear {
            clear: both;
        }
    </style>
</head>

Estilo em cascata


Substituindo estilos inline por suas classes.
- <section style="width: 600px;">
+ <section class="main-section">

- <section style="width: 300px; float: left;">
+ <section class="small-section pull-left">

- <div style="clear: both;"></div>
+ <div class="clear"></div>

4soft front end

By Luan Fonseca de Farias