6
respostas

Deixando a página produtos responsiva

Fala galerinha, então, fui dar aquele talento na página de Produtos e nada deu certo, no começo estava ficando um super espaço em branco a direita das imagens, mas era pq eu não tinha colocado a largura delas. Mas agora a página fica assim. Alguém pode me indicar onde estou errando? Segue meu código:

HTML

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>Produtos - Barbearia Alura</title>
    <link rel="stylesheet" href="reset.css">
    <link rel="stylesheet" href="style.css">
  </head>

  <body>
    <header>
      <div class="caixa">
        <h1><img src="logo.png" alt="logo da barbearia alura"></h1>
        <nav>
          <ul>
            <li><a href="index.html">Home</a></li>
            <li><a href="produtos.html">Produtos</a></li>
            <li><a href="contato.html">Contato</a></li>
          </ul>
        </nav>
      </div>
    </header>

    <main class="main">
      <ul class="produtos">
        <li>
          <h2>Cabelo</h2>
          <img src="cabelo.jpg" alt="silhueta de um penteado">
          <p class="produto-descricao">Cabelin na régua</p>
          <p class="produto-preco">R$ 20,00</p>
        </li>
        <li>
          <h2>Barba</h2>
          <img src="barba.jpg" alt="silhueta de uma barba">
          <p class="produto-descricao">Bigodin finin</p>
          <p class="produto-preco">R$ 15,00</p>
        </li>
        <li>
          <h2>Cabelo & Barba</h2>
          <img src="cabelo+barba.jpg" alt="silhueta de uma barba e um cabelo">
          <p class="produto-descricao">Bigodin finin, cabelin na régua</p>
          <p class="produto-preco">R$ 30,00</p>
        </li>
      </ul>
    </main>

    <footer>
      <img src="logo-branco.png" alt="logo da barbearia alura">
      <p class="copyright">&copy; Copyright Barbearia Alura 2019</p>
    </footer>
  </body>
</html>
6 respostas

CSS

/* CSS Elementos Genéricos */

body {
  font-family: 'Montserrat', sans-serif;
}

header {
  background: #BBBBBB;
  padding: 20px 0;
}

.main {
  width: 940px;
  margin: 0 auto;
}

.caixa {
  position: relative;
  width: 940px;
  margin: 0 auto;
}

nav {
  position: absolute;
  top: 110px;
  right: 0;
}

nav li{
  display: inline;
  margin-left: 15px;
}

nav a {
  text-transform: uppercase;
  color: #000000;
  font-weight: bold;
  text-decoration: none;
  font-size: 22px;
}

nav a:hover {
  color: #C78C19;
  text-decoration: underline;
}

footer {
  text-align: center;
  background: url("bg.jpg");
  padding: 40px 0;
}

.copyright {
  color: white;
  font-size: 14px;
  margin-top: 20px;
}


/* CSS da página Produtos */

.produtos {
  width: 940px;
  margin: 0 auto;
  padding: 50px 0;
}

.produtos li {
  display: inline-block;
  text-align: center;
  width: 30%;
  vertical-align: top;
  margin: 0 1.5%;
  padding: 30px 20px;
  box-sizing: border-box;
  border: 2px solid black;
  border-radius: 15px;
}

.produtos li:hover {
  border: 4px solid #C79C19;
}

.produtos li:active {
  border: 4px solid #088C19;
}

.produtos li:hover h2{
  font-size: 34px;
}

.produtos h2 {
  font-size: 30px;
  font-weight: bold;
}

.produto-descricao {
  font-size: 18px;
}

.produto-preco {
  font-size: 22px;
  font-weight: bold;
  margin-top: 10px;
}

/* CSS da página Contato*/

form {
  margin: 40px 0;
}

form label, form legend {
  display: block;
  font-size: 20px;
  margin-bottom: 10px;
}

.input-padrao {
  display: block;
  margin-bottom: 20px;
  padding: 10px 25px;
  width: 50%;
}

.checkbox {
  margin: 20px 0;
  cursor: pointer;
}

.enviar {
  width: 40%;
  padding: 15px 0;
  background-color: orange;
  color: white;
  font-weight: bold;
  font-size: 18px;
  border: none;
  border-radius: 10px;
  transition: 1s all;
}

.enviar:hover {
  background-color: darkorange;
  cursor: pointer;
  transform:scale(1.2);
}

table {
  margin: 20px 0 40px;
}

thead {
  background: #555555;
  color: white;
  font-weight: bold;
}

td, th {
  border: 1px solid black;
  padding: 8px 15px;
}

/* CSS da Home Page */

.banner {
  width: 100%;
}

.titulo-principal {
  text-align: center;
  font-size: 2em;
  margin: 0 0 1em;
  clear: left;
}

.principal {
  padding: 3em 0;
  background: #FEFEFE;
  width: 940px;
  margin: 0 auto;
}

.principal p {
  margin: 0 0 1em;
}

.principal strong {
  font-weight: bold;
}

.principal em {
  font-style: italic;
}

.utensilios {
  width: 120px;
  float: left;
  margin: 0 20px 0;
}

.mapa {
  padding: 3em 0;
  background: linear-gradient(#FEFEFE, #888888);
}

.mapa p {
  margin: 0 0 2em;
  text-align: center;
}

.mapa-conteudo{
  width: 940px;
  margin: 0 auto;
}

.beneficios {
  padding: 3em 0;
  background: #888888;
}

.conteudo-beneficios {
  width: 640px;
  margin: 0 auto;
}

.lista-beneficios {
  width: 40%;
  display: inline-block;
  vertical-align: top;
}

.itens {
  line-height: 1.5;
}

.itens:before {
  content: "\01FA92";
}

.itens:nth-child(2n) {
  font-weight: bold;
}

.imagem-beneficios {
  width: 60%;
  transition: 1s;
}

.imagem-beneficios:hover {
  box-shadow: 10px 10px 5px black;
  transform: scale(1.1);
}

.video {
  width: 560px;
  margin: 2em auto;

}

/* CSS Para mobile */

@media screen and (max-width: 480px) {
  .caixa, .principal, .conteudo-beneficios, .mapa-conteudo, .video{
    width: auto;
  }
  h1 {
    text-align: center;
  }
  nav {
    position: static;
  }
  .lista-beneficios, .imagem-beneficios, .produtos{
    width: 100%;
  }
  .produtos li {
    margin: 10px 0;
    display: inline-block;
    width: 100%;
  }
  .produtos li img{
    width: 100%;
  }
}

Fala ai João, tudo bem? Acredito que falta você definir um width: 100% na parte cinza da página, não sei se ela é um header, um nav ou ul.

Espero ter ajudado.

Fala Matheus, vish mano tentei, mas botar width 100% na parte cinza não fez diferença :T mas valeu pela ajuda

Fala João, nesse caso compartilha comigo o projeto completo, assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.

Aoba, tudo bem Matheus, como passou o natal? Coloquei o projeto no github aqui. Valeu demais pela atenção <3

Fala João, tudo bem? O problema está ocorrendo por conta de um width: 940px; em vários elementos, sendo: .caixa, .main e .produtos.

Você precisa deixar esses elementos flexíveis e não com medidas fixas para que a responsividade funcione melhor.

Espero ter ajudado.