(ESOFT5S-N-A)
Front-end
Hyper Text Markup Language
Hyper Text Markup Language
Hyper Text Markup Language
<tagname>content goes here...</tagname>Hyper Text Markup Language
Document Object Model
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>href,
source,
nome
id,
class,
style,
with, ---> <div>
height,
title,
style
Uso correto de indentação
É recomendada a adição de comentários antes da abertura e pós o fechamento de tags estruturais (que conterão outras tags)
Evitar usar !important
Usar html semântico sempre possível
Folhas de estilo no <head> e scripts JS ao final do <body>
Estrutura lógica básica
css/
js/
intex.html
Boas práticas
CSS é uma linguagem que descreve o estilo de um documento HTML.
CSS descreve como elementos HTML deve ser exibido
Cascading Style Sheets
Quando tags como <font> e atributos de cor foram adicionados à especificação HTML 3.2, começou um pesadelo para os desenvolvedores web. Desenvolvimento de grandes sites, onde fontes e cores informações foram adicionadas para cada página, tornou-se um processo longo e caro.
Para resolver este problema, o World Wide Web Consortium (W3C) criou CSS.
CSS removeu o estilo de formatação da página feita no HTML!
Cascading Style Sheets
As definições de estilo são normalmente
guardados em arquivos .css externas.
Cascading Style Sheets
Cascading Style Sheets
Cascading Style Sheets
External CSS
Internal CSS
Inline CSS
body {
background-color: lightblue;
}
h1 {
color: white;
text-align: center;
}
p {
font-family: verdana;
font-size: 20px;
}Cascading Style Sheets
Cascading Style Sheets
Cascading Style Sheets
h1 {
font-family: serif;
}
h2 {
font-family: sans-serif;
}
p {
font-family: monospace;
text-transform: uppercase;
}
body {
font-family: "Arial", "Helvetica", sans-serif;
}Cascading Style Sheets
p {
line-height: 3px; /* tamanho da altura de cada linha */
letter-spacing: 3px; /* tamanho do espaço entre cada letra */
word-spacing: 5px; /* tamanho do espaço entre cada palavra */
text-indent: 30px; /* tamanho da margem da primeira linha do texto */
}Cascading Style Sheets
body {
border-color: red;
border-style: solid;
border-width: 1px;
}Cascading Style Sheets
h1 {
background-color: yellow;
}
h3 {
color: rgb(255, 200, 0);
}
h4 {
background-color: #F2EDED;
}Cascading Style Sheets
Cascading Style Sheets
p {
background-color: red;
height: 300px;
width: 300px;
}Cascading Style Sheets
p {
margin: 1px 2px 3px 4px;
margin-top: 3px;
margin-right: 3px;
margin-left: 3px;
margin-bottom: 3px;
}Cascading Style Sheets
p {
padding: 1px 2px 3px 4px;
padding-top: 3px;
padding-right: 3px;
padding-left: 3px;
padding-bottom: 3px;
}Cascading Style Sheets
#imagem {
margin-left: auto;
margin-right: auto;
width: 550px;
}
div {
float: left;
}Cascading Style Sheets
<div id="pai">
<h1>Sou um título</h1>
<h2>Sou um subtítulo</h2>
</div>
<style>
#pai {
color: blue;
}
</style>Cascading Style Sheets
.painel li {
display: inline-block;
vertical-align: top;
width: 140px;
margin: 2px;
padding-bottom: 10px;
}Cascading Style Sheets
input[type="text"] {
border-radius: 4px;
}
div[class|="menu"] {
border-radius: 4px;
}
input[value~="problema"] {
color: #CC0000;
}Cascading Style Sheets
/* busca por inputs com valor de "name" iniciando em "usuario" */
input[name^="usuario"] {
color: #99FFCC;
}
/* busca por inputs com valor de "name" terminando em "teste" */
input[name$="teste"] {
background-color: #CCFF00;
}
/* busca por inputs com valor do atributo "name".
contendo "tela" em qualquer posição */
input[name*="tela"] {
color: #666666;
}Cascading Style Sheets
organizando o caos com HTML5
<body>
<div id="cabeclaho">
<!-- Conteúdo do cabeçalho -->
</div>
<div id="side-bar">
<!-- Conteúdo do menu lateral -->
</div>
<div id="content">
<!-- Conteúdo conteudo principal -->
</div>
<div id="destaques">
<!-- Painéis com destaques -->
</div>
<div id="footer">
<!-- Conteúdo do rodapé -->.
</div>
</body>organizando o caos com HTML5
<body>
<header>
<!-- Conteúdo do cabeçalho -->
</header>
<nav>
<!-- Conteúdo do menu lateral -->
</nav>
<main>
<!-- Conteúdo conteudo principal -->
</main>
<aside>
<!-- Painéis com destaques -->
</aside>
<footer>
<!-- Conteúdo do rodapé -->.
</footer>
</body>organizando o caos com HTML5
organizando o caos com HTML5
<header>
<section>
<article>
<nav>
<aside>
<main>
<figure>
<footer>
<time>
Crie uma pagina de exposição de serviços oferecidos por um Petshop
É uma das 3 línguas que todos os desenvolvedores web devem aprender:
1. HTML para definir o conteúdo de páginas da web
2. CSS para especificar o layout de páginas da web
3. JavaScript para programar o comportamento de páginas da web
Páginas da web não são o único lugar onde o JavaScript é usado. Muitos programas de desktop e servidor usam JavaScript. Node.js é o mais conhecido.
Alguns bancos de dados, como MongoDB (JSON) e CouchDB, também usam JavaScript como sua linguagem de programação.
ECMAScript é uma especificação de linguagem de programação baseada em scripts, padronizada pela Ecma International na especificação ECMA-262 e ISO/IEC 16262
<!DOCTYPE html>
<html>
<body>
<h2>My First JavaScript</h2>
<button type="button" onclick="document.getElementById('demo').innerHTML = Date()">
Click me to display Date and Time.</button>
<p id="demo"></p>
</body>
</html><!DOCTYPE html>
<html>
<body>
<h2>What Can JavaScript Do?</h2>
<p>JavaScript can change HTML attribute values.</p>
<p>In this case JavaScript changes the value of the src (source) attribute of an image.</p>
<button
onclick="document.getElementById('myImage').src='https\:\/\/www.w3schools.com\/js\/pic_bulbon.gif'">
Turn on the light
</button>
<img id="myImage"
src="https://www.w3schools.com/js/pic_bulboff.gif" style="width:100px">
<button
onclick="document.getElementById('myImage').src='https\:\/\/www.w3schools.com\/js\/pic_bulboff.gif'">
Turn off the light
</button>
</body>
</html>Na pagina de exposição de serviços oferecidos por um Petshop, ao clicar em um produto ou serviço apresente o valor do produto para o usuário;
É possível omitir o ponto e vírgula no final de cada declaração. A omissão de ponto e vírgula
funciona no JavaScript devido ao mecanismo chamado automatic semicolon insertion (ASI).
let x;
x = 5;
x = "John";
x = {firstName:"John", lastName:"Doe"};
typeof(x);
typeof("John");
typeof(3.14);
typeof(true);
typeof(false);
typeof(y);let cars = ["Saab", "Volvo", "BMW"];
let cars = new Array("Saab", "Volvo", "BMW");
cars.toString();
cars.pop();
cars.push("Ferrari");
cars.shift();
cars.unshift("Mercedes")
cars.sort();
cars.reverse(); document.getRootNode()
// CONSULTA DE ELEMENTO(S)
document.getElementById("id")
document.getElementsByClassName("")
document.getElementsByName("")
document.getElementsByTagName("")
// CONSULTA DE SELETORES
document.querySelector("h1")
document.querySelector(".class")
document.querySelector("#id")
document.querySelectorAll("div")function mostraAlerta() {
alert("Funciona!");
}
var botao = document.querySelector("#meuBotao");
botao.onclick = mostraAlerta;console.log("texto...", variavel, [], {});
var botao = document.querySelector("#meuBotao");
botao.onclick = function () {
alert("Funciona!");
};
botao.onclick = () => alert("Funciona!");Na pagina de exposição de serviços oferecidos por um Petshop, passar o mouse em um produto ou serviço apresente o valor do produto usando a função alert()
Implemente a logica dentro da tag <script>;
Qual é a melhor opção?
firstName = "John";
lastName = "Doe";
price = 19.90;
tax = 0.20;
fullPrice = price * tax;function toCelsius(fahrenheit) {
return (5 / 9) * (fahrenheit - 32);
}var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
var person = {firstName:"John", lastName:"Doe", age:50};let firstName = "",
lastName = "",
price = 0,
discount = 0,
fullPrice = 0,
myArray = [],
myObject = {}
flag: true;Utilize as boas práticas de programação JS
Bootstrap é um framework web com código-fonte aberto para desenvolvimento de componentes de interface e front-end para sites e aplicações web usando HTML, CSS e JavaScript, baseado em modelos de design para a tipografia, formulários, botões, tabelas, navegação, modais, carrosséis de imagem, e vários outros componentes, melhorando a experiência do usuário (UX) em um site amigável e responsivo.
Wikipedia
são conjuntos de componentes que provêm uma estrutura básica de elementos reutilizáveis, tendo uma arquitetura consistente de funcionalidade genérica sob a qual a aplicação será construída.
Há duas maneiras para começar a usar Bootstrap em seu próprio Web site.
Rede de fornecimento, entrega e distribuição de conteúdo
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
</body>
</html>jQuery é fácil de aprender.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
</body>
</html>jQuery é fácil de aprender.
Todos os navegadores modernos suportam o XMLHttpRequestobjeto.
O XMLHttpRequestobjeto pode ser usado para trocar dados com um servidor da web nos bastidores. Isso significa que é possível atualizar partes de uma página da web, sem recarregar a página inteira.
[
{
"nome": "Pacote Maceió + Maragogi + Porto de Galinhas",
"desconto": "50%",
"valor": "R$999"
},
{
"nome": "Pacote Orlando + Miami - 2021",
"desconto": "50%",
"valor": "R$1299"
}
]Realizar um web-scraping na pagina do Hub (https://www.hurb.com/br) e montar uma lista com as promoções da pagina principal
[
{
"nome": "Pacote Maceió + Maragogi + Porto de Galinhas",
"desconto": "50%",
"valor": "R$999"
},
{
"nome": "Pacote Orlando + Miami - 2021",
"desconto": "50%",
"valor": "R$1299"
}
]Consultar o API de promoção do Hub do servidor
https://server-node-example.herokuapp.com/promotios-hub
e montar uma pagina para apresentar as promoções com os dados de retorno da chamada ajax.
Back-end
Cliente
Servidor
(implantação)
(implantação)