Desenvolvimento Frontend com CSS e Bootstrap

Aplicação Prática de CSS no Desenvolvimento Web

Neste artigo, exploramos a construção de interfaces web utilizando HTML estruturado combinado com estilização em CSS, além da introdução ao uso do framework Bootstrap para acelerar o desenvolvimento responsivo.

Construção de Interface: Cabeçalho com Menu Secundário

A construção começa com a definição de um cabeçalho superior fixo contendo links de navegação e opções de conta. A seguir, implementa-se uma barra secundária com logo, menu de produtos e área de busca.

<style>
body {
    margin: 0;
}
.container {
    width: 1226px;
    margin: 0 auto;
}
.header {
    background: #333;
    height: 40px;
}
.header a {
    color: #b0b0b0;
    line-height: 40px;
    display: inline-block;
    font-size: 12px;
    margin-right: 10px;
    text-decoration: none;
}
.header a:hover {
    color: white;
}
.sub-header {
    height: 100px;
    background-color: #f5f5f5;
}
.logo {
    float: left;
    width: 234px;
    height: 100px;
}
.logo img {
    width: 56px;
    height: 56px;
    margin-top: 22px;
}
.menu-list {
    float: left;
    line-height: 100px;
}
.menu-list a {
    display: inline-block;
    padding: 0 10px;
    color: #333;
    font-size: 16px;
    text-decoration: none;
}
.menu-list a:hover {
    color: #ff6700;
}
.search {
    float: right;
    height: 100px;
}
</style>

<div class="header">
    <div class="container">
        <div class="menu">
            <a href="#">Mi Store</a>
            <a href="#">MIUI</a>
        </div>
        <div class="account">
            <a href="#">Login</a>
            <a href="#">Register</a>
        </div>
        <div style="clear: both;"></div>
    </div>
</div>

<div class="sub-header">
    <div class="container">
        <div class="logo">
            <a href="#"><img src="images/logo-mi2.png" alt="Logo"></a>
        </div>
        <div class="menu-list">
            <a href="#">Smartphones</a>
            <a href="#">Tablets</a>
        </div>
        <div class="search"></div>
        <div style="clear: both;"></div>
    </div>
</div>

Seção de Destaques e Cards Informativos

Após o cabeçalho, é comum incluir uma seção de destaques com imagens rotativas e cards interativos. Utiliza-se posicionamento flutuante e controle de opacidade para melhorra a experiência do usuário ao passar o mouse.

.highlight-slider {
    height: 460px;
    overflow: hidden;
}
.news-section {
    margin-top: 14px;
}
.channel-grid {
    float: left;
    width: 228px;
    background-color: #5f5750;
    padding: 3px;
}
.grid-item {
    float: left;
    width: 76px;
    height: 82px;
    text-align: center;
}
.grid-item a {
    display: inline-block;
    color: #fff;
    font-size: 12px;
    padding-top: 18px;
    opacity: 0.7;
    text-decoration: none;
}
.grid-item a:hover {
    opacity: 1;
}
.grid-item img {
    display: block;
    margin: 0 auto 4px;
    width: 24px;
    height: 24px;
}

Uso Avançado de Pseudo-Classes CSS

As pseudo-classes como :hover e :after são essenciais para criar interações dinâmicas sem JavaScript. Um exemplo prático é a exibição condicional de conteúdo, como códigos QR ao passar o mouse sobre um link.

.app-link {
    position: relative;
}
.download-qrcode {
    position: absolute;
    top: 100%;
    right: 0;
    width: 100px;
    height: 100px;
    display: none;
    z-index: 10;
}
.app-link:hover .download-qrcode {
    display: block;
}
.app-link:hover .label {
    color: #ff6700;
}

Posicionamento com CSS: fixed, relative e absolute

O posicionamento absoluto permite ancorar elementos filhos dentro de contêineres relativos. Já o posicionamento fixo mantém elementos visíveis durante o scroll, ideal para botões de "voltar ao topo" ou modais.

.back-to-top {
    position: fixed;
    bottom: 50px;
    right: 10px;
    width: 60px;
    height: 60px;
    background-color: #fff;
    border: 1px solid #ccc;
    cursor: pointer;
}

.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0,0,0,0.7);
    z-index: 999;
}
.modal-content {
    position: fixed;
    top: 200px;
    left: 0; right: 0;
    width: 500px;
    height: 300px;
    margin: 0 auto;
    background-color: white;
    z-index: 1000;
}

Estilização de Bordas e Cores

Bordas podem ser usadas criativamente para indicar estados interativos. Por exemplo, adicionar uma borda lateral visível apenas no :hover, inicialmente transparente.

.nav-item {
    width: 500px;
    height: 50px;
    background-color: #5f5750;
    margin: 100px 0;
    border-left: 2px solid transparent;
    transition: border-color 0.3s ease;
}
.nav-item:hover {
    border-left: 2px solid red;
}

Introdução ao Bootstrap 3

Bootstrap simplifica significativamente o desenvolvimento frontend com classes pré-definidas para componentes comuns como botões, formulários, grades e painéis.

Componentes Essenciais do Bootstrap

  • Botões: btn btn-primary btn-success btn-danger
  • Grade Responsiva: .col-md-6 .col-sm-12
  • Contêineres: .container (fixo) e .container-fluid (total)
  • Painéis: .panel .panel-heading .panel-body
  • Navegação: .navbar navbar-default com suporte a dropdowns

Exemplo de Formulário de Login com Bootstrap

<div class="container" style="max-width: 400px; margin-top: 100px;">
    <div class="panel panel-default">
        <div class="panel-heading"><h3 class="text-center">Acesso ao Sistema</h3></div>
        <div class="panel-body">
            <form>
                <div class="form-group">
                    <label for="user">Usuário</label>
                    <input type="text" class="form-control" id="user" placeholder="Informe seu login">
                </div>
                <div class="form-group">
                    <label for="pass">Senha</label>
                    <input type="password" class="form-control" id="pass" placeholder="Digite sua senha">
                </div>
                <button type="submit" class="btn btn-primary btn-block">Entrar</button>
            </form>
        </div>
    </div>
</div>

Interface de Administração com Tabelas e Ícones

Para sistemas administrativos, Bootstrap oferece tabelas estilizadas (table-bordered table-hover) e paginação integrada. Complementando com Font Awesome, pode-se incluir ícones intuitivos nas ações.

<link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">

<!-- Dentro de uma célula de tabela -->
<td>
    <a href="#" class="btn btn-warning btn-xs"><i class="fa fa-edit"></i> Editar</a>
    <a href="#" class="btn btn-danger btn-xs"><i class="fa fa-trash"></i> Excluir</a>
</td>

Dependências JavaScript

Funcionalidades dinâmicas do Bootstrap (como dropdowns e modais) dependem do jQuery. É necessário carregar o jQuery antes do JavaScript do Bootstrap.

<script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>

Próximos Passos: Integração com JavaScript

Com HTML estruturado e CSS definindo aparência, o próximo passo é tornar a interface dinâmica com JavaScript — linguagem que manipula o DOM, responde a eventos e comunica-se com servidores. Bibliotecas como jQuery facilitam essa etapa com sintaxe concisa e compatibilidade entre navegadores.

Tags: CSS bootstrap HTML Frontend Development Web Design

Publicado em 9-24 07:54