Python Tema4 Parte6 BR v1
Python Tema4 Parte6 BR v1
Desenvolvimento Web
Bootstrap
1
IBM SkillsBuild | Introducción a Python
Índice
Introdução 3
Características da Bootstrap 5 4
Vantagens 4
Desvantagens 4
Holamundo em Bootstrap 4
Adaptação do conteúdo à tela 5
Viewport virtual 5
Páginas responsive 6
Movile first 6
Contêineres 6
Sistema de grade Bootstrap 7
Alinhamento horizontal das grades 9
Componentes do Boostrap 9
Cores contextuais 10
Botões 10
Imagens 11
Esboço 11
Alinhamento 12
Tabelas 12
Cards 13
Formulários 14
Carousel 16
Os botões 16
Elementos incapacitantes 18
Depuração 18
2
IBM SkillsBuild | Introducción a Python
Introdução
3
IBM SkillsBuild | Introducción a Python
• Defina o viewport.
Vantagens
• Incluir um elemento link apontando para o
É fácil e rápido escrever páginas que parecem Bootstrap CSS.
ótimas. • Incluir um elemento de script apontando para o
código JavaScript do Bootstrap.
Ela se adapta a diferentes dispositivos (responsive
design).
<body>
<div class="container">
<h1>Holamundo en Bootstrap 5</h1>
</div>
</body>
</html>
4
IBM SkillsBuild | Introducción a Python
• Técnica inicial: Viewport. Barras de rolagem Além disso, em um navegador móvel não há barras
horizontais e verticais, recomposição de de rolagem, elas ocupariam um espaço muito valioso.
elementos no viewport. Nem janelas, elas seriam muito pequenas.
• Primeiros smartphones Viewport virtual.
Para resolver este problema, surgiu o conceito de
• Telefones celulares atuais Design responsivo
viewport virtual, maior do que o viewport comum (a
baseado em grid.
tela).
5
IBM SkillsBuild | Introducción a Python
Páginas responsive
Em outras palavras: nenhum viewport virtual.
<meta name="viewport"
Um site moderno com um mínimo de qualidade é content="width=device-width, initial-
entendido como sendo responsivo. Ou seja, a página scale=1">
se adaptará ao tamanho da tela (desktop, tablet,
móvel, etc.), sem utilizar a barra de rolagem
horizontal, o que é muito desconfortável. A barra de
Também é possível desativar o zoom em dispositivos
rolagem vertical ainda é utilizada.
móveis com user-scalable=no
O projeto responsivo como o conhecemos hoje é
Os usuários só poderão fazer scroll e terão um visual
baseado no uso de uma grid. Em brasileiro, isto se
e uma sensação nativa.
traduz como caixa.
Um computador XXXXXXXXXXXX
Em uma Tablet XXXXXX Contêineres
XXXXXX
Em um telefone XXXX
Para ser responsivo, todos os elementos do
celular XXXX
Bootstrap devem estar dentro de um elemento de
XXXX
contêiner.
6
IBM SkillsBuild | Introducción a Python
</html>
<!doctype html>
<html lang="es-ES">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial- Se você quiser um container com a largura total (do
scale=1"> viewport), você tem que usar a expressão container-
fluid:
<link
href="https://cdn.jsdelivr.net/npm/bootst
[email protected]/dist/css/bootstrap.min.css" <div class="container-fluid">
rel="stylesheet" ...
integrity="sha384- </div>
1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjD
brCEXSU1oBoqyl2QvZ6jIW3"
crossorigin="anonymous">
<script
src="https://cdn.jsdelivr.net/npm/bootstr
[email protected]/dist/js/bootstrap.bundle.min.js"
Sistema de grade
integrity="sha384-
ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH
Bootstrap
9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script> A tela é dividida em filas e colunas. A interseção
<title>Ejemplo de container.</title>
entre uma linha e uma coluna é chamada de célula.
</head>
O conteúdo é colocado dentro de uma célula, e será
<body> sempre exibido dentro dessa célula. A largura de
<div class="container">
cada célula é medida em células.
<div class="row">
<div class="col-xl-2 bg-primary Em cada fila há até 12 células, que o projetista
text-white">.col</div> decide como distribuir entre as células.
<div class="col-xl-10 bg-dark
text-white">.col</div> Quando a tela tem resolução suficiente, as células da
</div> mesma linha são exibidas uma ao lado da outra
(layout normal).
<div class="row">
7
IBM SkillsBuild | Introducción a Python
Quando a resolução diminui, as células que estavam • Columnas .col-xl-N:Layout normal em telas muito
originalmente na mesma fila são exibidas umas em grandes ou extra grandes. Empilhados em telas
cima das outras (layout empilhado). grandes, médias, pequenas ou muito pequenas.
8
IBM SkillsBuild | Introducción a Python
largura, as grades que estavam originalmente em um • O resultado da utilização das diferentes classes
layout normal (horizontal) se empilharão de alinhamento horizontal. Neste caso, com duas
(verticalmente): colunas de 3 células cada.
• O uso da classe de borda com a cor de border-
primary.
Componentes do Boostrap
• btn
• table
• card
Alinhamento horizontal • carousel
• justify-content-start
• justify-content-center
• justify-content-end
• justify-content-around
• justify-content-between
• justify-content-evenly
9
IBM SkillsBuild | Introducción a Python
Cores contextuais
10
IBM SkillsBuild | Introducción a Python
Eles têm um efeito hover: eles destacam um botão Com o atributo disabled (atributo, não classe), o
quando o mouse está pairando sobre ele. botão é desativado.
11
IBM SkillsBuild | Introducción a Python
Alinhamento Tabelas
float-start: Esquerda
12
IBM SkillsBuild | Introducción a Python
Cards
13
IBM SkillsBuild | Introducción a Python
<div class="form-group">
<head>
<label for="pais" class="form-
<meta charset="utf-8">
label">País</label>
<meta name="viewport"
<input type="text" name="pais"
content="width=device-width, initial-
id="pais" value="España" class="form-
scale=1">
control"><br><br>
</div>
<link
href="https://cdn.jsdelivr.net/npm/bootst
<input type="submit">
[email protected]/dist/css/bootstrap.min.css"
</form>
rel="stylesheet"
integrity="sha384-
<hr>
1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjD
brCEXSU1oBoqyl2QvZ6jIW3"
<form>
crossorigin="anonymous">
<input type="radio" name="os"
<script
value="Linux" class="form-check-input"
src="https://cdn.jsdelivr.net/npm/bootstr
checked>Linux<br>
[email protected]/dist/js/bootstrap.bundle.min.js"
<input type="radio" name="os"
integrity="sha384-
value="MacOS" class="form-check-
ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH
input">MacOS<br>
9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
14
IBM SkillsBuild | Introducción a Python
15
IBM SkillsBuild | Introducción a Python
<div class="form-group">
<label for="mensaje" class="form- Carousel
label">Mensaje:</label>
<textarea name="mensaje"
O componente carousel exibe fotografias que rolam
id="mensaje" rows="10" cols="30"
class="form-control">Escriba horizontalmente, como um slideshow. Você pode
aquí su mensaje.</textarea> adicionar legendas ou qualquer outro texto a eles.
</div>
O elemento de nível superior do carousel é um div
<input type="submit">
com as classes carousel e slide. Ele tem um atributo
</form>
</div> de id cujo valor será referenciado pelos botões que
</body> ele contém:
</html>
<div id="carrusel01" class="carousel
slide" data-bs-ride="carousel">
Os botões
<!doctype html>
<html lang="es-ES">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-
scale=1">
<link
href="https://cdn.jsdelivr.net/npm/bootst
16
IBM SkillsBuild | Introducción a Python
[email protected]/dist/css/bootstrap.min.css" </div>
rel="stylesheet"
integrity="sha384- <div class="carousel-item">
1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjD <img
brCEXSU1oBoqyl2QvZ6jIW3" src="images/esparragos_manzana.jpg"
crossorigin="anonymous"> alt="Esparragos con manzana" class="d-
<script block w-100">
src="https://cdn.jsdelivr.net/npm/bootstr <div class="carousel-caption">
[email protected]/dist/js/bootstrap.bundle.min.js" <h3>Espárragos con
integrity="sha384- manzana</h3>
ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH </div>
9sENBO0LRn5q+8nbTov4+1p" </div>
crossorigin="anonymous"></script> <div class="carousel-item">
<img
<title>Carrusel en Bootstrap5 .</title> src="images/ensalada_centollo.jpg"
</head> alt="Ensala de centollo" class="d-block
w-100">
<body> <div class="carousel-caption">
<div class="container"> <h3>Ensalada de centollo</h3>
<div id="carrusel01" class="carousel </div>
slide" data-bs-ride="carousel"> </div>
<div class="carousel-item">
<!-- Indicators --> <img
<div class="carousel-indicators"> src="images/sushi_suelto.jpg" alt="Sushi
<button type="button" data-bs- suelto" class="d-block w-100">
target="#carrusel01" data-bs-slide-to="0" <div class="carousel-caption">
class="active"></button> <h3>Sushi suelto</h3>
<button type="button" data-bs- </div>
target="#carrusel01" data-bs-slide- </div>
to="1"></button> </div>
<button type="button" data-bs-
target="#carrusel01" data-bs-slide- <!-- Botones izquierda y derecha --
to="2"></button> >
<button type="button" data-bs- <button class="carousel-control-
target="#carrusel01" data-bs-slide- prev" type="button" data-bs-
to="3"></button> target="#carrusel01" data-bs-
</div> slide="prev">
<span class="carousel-control-
<!-- Fotos --> prev-icon"></span>
<div class="carousel-inner"> </button>
<div class="carousel-item <button class="carousel-control-
active"> next" type="button" data-bs-
<img target="#carrusel01" data-bs-
src="images/ensalada_reloj.jpg" slide="next">
alt="Ensalada reloj" class="d-block w- <span class="carousel-control-
100"> next-icon"></span>
<div class="carousel-caption"> </button>
<h3>Ensalada reloj</h3> </div>
</div>
17
IBM SkillsBuild | Introducción a Python
</div>
</body> Depuração
</html>
Se a página não se parece com a que estamos
procurando:
18