programação

Campo de Busca Interativo em CSS

Para criar um campo de busca que apareça ao clicar em um ícone de busca utilizando CSS, você pode seguir uma abordagem que combina HTML, CSS e possivelmente JavaScript para criar a funcionalidade de mostrar e ocultar o campo de busca.

Vou guiar você através do processo de criação desse componente.

Estrutura HTML

Primeiro, precisamos definir a estrutura básica do nosso componente de busca no HTML. Vamos usar um ícone para representar a função de busca e um campo de entrada para o usuário digitar sua consulta. Aqui está um exemplo simples:

html
<div class="container"> <div class="search-icon"> <i class="fas fa-search">i> div> <div class="search-box"> <input type="text" placeholder="Digite sua busca"> div> div>

Neste exemplo, temos um contêiner que envolve tanto o ícone de busca quanto o campo de busca real. O ícone de busca está dentro de uma

com a classe search-icon, enquanto o campo de busca está dentro de outra

com a classe search-box.

Estilo CSS

Agora, vamos estilizar o componente usando CSS para que inicialmente o campo de busca esteja oculto e só apareça quando o usuário clicar no ícone de busca.

css
.container { position: relative; } .search-box { display: none; position: absolute; top: 100%; left: 0; } .search-box input { width: 200px; /* ajuste conforme necessário */ padding: 8px; border: 1px solid #ccc; border-radius: 4px; outline: none; } .search-icon { cursor: pointer; } .search-icon i { font-size: 20px; }

No CSS acima, definimos a classe .container como position: relative para que possamos posicionar o campo de busca absolutamente em relação a ela. Em seguida, ocultamos o campo de busca usando display: none e o posicionamos logo abaixo do ícone de busca usando position: absolute com top: 100% e left: 0.

Também estilizamos o campo de entrada para torná-lo visualmente agradável, com bordas arredondadas e uma largura fixa. O ícone de busca recebe um estilo básico para torná-lo clicável.

Adicionando Comportamento com JavaScript (Opcional)

Se desejar adicionar um comportamento interativo ao componente, como mostrar e ocultar o campo de busca ao clicar no ícone de busca, você pode usar JavaScript. Aqui está um exemplo simples usando JavaScript puro:

javascript
document.addEventListener("DOMContentLoaded", function() { const searchIcon = document.querySelector(".search-icon"); const searchBox = document.querySelector(".search-box"); searchIcon.addEventListener("click", function() { searchBox.style.display = searchBox.style.display === "block" ? "none" : "block"; }); });

Este script adiciona um ouvinte de eventos ao ícone de busca. Quando o ícone é clicado, ele verifica o estado atual do campo de busca. Se estiver visível, ele o oculta. Se estiver oculto, ele o torna visível.

Considerações Finais

Este é apenas um exemplo básico de como criar um campo de busca que aparece ao clicar em um ícone de busca usando HTML, CSS e JavaScript. Você pode personalizar e estilizar o componente conforme necessário para se adequar ao design do seu site ou aplicativo. Além disso, existem muitas outras maneiras de implementar essa funcionalidade, dependendo dos requisitos específicos do seu projeto.

“Mais Informações”

Claro, vamos aprofundar um pouco mais na criação do campo de busca com CSS.

Estrutura HTML

A estrutura HTML pode ser expandida para incluir elementos adicionais que possam ser úteis para melhorar a usabilidade e acessibilidade do campo de busca. Por exemplo, podemos adicionar rótulos para identificar claramente o propósito do campo de busca e usar atributos aria para tornar o componente acessível para usuários de tecnologias assistivas. Aqui está uma versão expandida da estrutura HTML:

html
<div class="container"> <div class="search-icon" role="button" aria-label="Abrir campo de busca"> <i class="fas fa-search">i> div> <div class="search-box" role="search" aria-hidden="true"> <label for="search-input" class="visually-hidden">Buscar:label> <input type="text" id="search-input" placeholder="Digite sua busca"> <button type="button" class="close-icon" aria-label="Fechar campo de busca"> <i class="fas fa-times">i> button> div> div>

Nesta versão, adicionamos um rótulo () associado ao campo de entrada utilizando o atributo for com o valor correspondente ao id do campo de entrada. Isso melhora a acessibilidade do componente, permitindo que os usuários saibam qual é o propósito do campo de busca.

Também incluímos um botão de fechar (

.container { position: relative; } .search-box { display: none; position: absolute; top: 100%; left: 0; background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 10px; border-radius: 4px; transition: display 0.3s ease; } .search-box input { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; outline: none; } .search-icon, .close-icon { cursor: pointer; } .search-icon i, .close-icon i { font-size: 20px; } .close-icon { position: absolute; top: 8px; right: 8px; background: none; border: none; padding: 0; cursor: pointer; }

Neste estilo CSS aprimorado, adicionamos uma transição suave para o campo de busca, usando transition: display 0.3s ease, o que cria uma animação suave ao mostrar e ocultar o campo de busca.

Também estilizamos o botão de fechar para que ele seja mais visível e fácil de clicar. Posicionamos ele absolutamente no canto superior direito do campo de busca e removemos estilos de fundo e borda para dar a ele uma aparência mais limpa.

Considerações Finais

Com estas melhorias na estrutura HTML e no estilo CSS, o campo de busca não só será funcional, mas também mais acessível e agradável de usar para os usuários. Além disso, ainda podemos adicionar mais funcionalidades, como sugestões de pesquisa ou filtros avançados, dependendo das necessidades específicas do projeto.

Botão Voltar ao Topo