Advertisement
  1. Web Design
  2. HTML/CSS
  3. HTML

Criando uma estrutura em HTML com Skeleton

Scroll to top
Read Time: 12 min
This post is part of a series called From PSD to HTML With the Skeleton Boilerplate.
Adding Styles to Our Skeleton Page Build

() translation by (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Neste tutorial estaremos focando na codificação de um layout em PSD, usando o boilerplate responsivo Skeleton. Existem vários tutoriais sobre como codificar um design usando HTML e CSS, muitas vezes com um pouco de JavaScript, mais o principal objetivo deste tutorial é fazer acontecer usando a última versão do framework Skeleton (2.0.4). Ele teve grandes melhorias desde a ultima vez que falamos sobre ele.

Primeiramente, permita-me introduzir Skeleton, e em seguida começaremos a codificar.

O que é o Skeleton Boilerplate?

Skeleton é filho da imaginação do Dave Gamache. É um grid fluido, de doze colunas, com uma largura máxima padrão de 960px, tipografia básica e estilos mínimos para elementos comuns de HTML, como botões, links, inputs e áreas de texto.

Sua força reside no fato de que é um framework de CSS leve. Tendo pouco menos que 400 linhas de código, Skeleton foi criado para ser um ponto de partida, e não um framework cheio de design para UI como o Bootstrap, Foundation ou SemanticUI.

Porque usar o Skeleton?

Porque é simples de usar, e é um ótimo jeito de começar a construir seu próprio framework responsivo.

O que há de novo?

Dave Gamache introduziu e atualizou várias funções no Skeleton v2.0:

Começando

Durante este tutorial iremos codificar o design acima, criado por Samir Timezguida. Pelo caminho iremos:

  1. Baixar Skeleton e criar nosso próprio markup em HTML
  2. Puxar as imagens do PSD e escrever o CSS
  3. Adicionar JavaScript para dar mais interatividade

Vamos começar por baixar o Skeleton de www.getskeleton.com e pegar os arquivos PSD do código fonte.

Desenhando e Planejando

Você pode preferir uma abordagem diferente, mas eu gosto de começar desenhando o layout para visualizar cada secção.  Existem várias secções no layout:

  • Herói
  • Introdução
  • Criatividade
  • Trabalho
  • Ajuda
  • Clientes
  • Sobre
  • Vídeo
  • Porque Nós
  • Citação
  • Entre em contato
  • Contato
  • Roda-pé

Este é o desenho da estrutura de HTML desejada: 

Secções

Para cada secção criaremos um contêiner que preencherá a largura total da janela, com o nome da secção igual ao nome da classe. Dentro dele tomaremos vantagem do Skeleton, construindo o grid para fazer um container e uma quebra de linha. O HTML para cada secção será uma váriação do seguinte:

1
<section class="hero">
2
  <div class="container">
3
  
4
    <!-- html for this section goes here -->
5
    
6
  </div>
7
</section>

Agora está a hora de pegar cada secção e adicionar o markup. Não se preocupe com o estilo, fonte, e etc., por agora estamos concentrando apenas na estrutura em HTML

Menu

Para o menu, precisamos adicionar o ícone "hamburger" e uma lista não ordenada, completa com links internos. Cada link apontará para uma determinada secção.

Obs: os mais observadores podem reconhecer as classes fa fa-bars no elemento <i> para o ícone de navegação. Estes são típicos dos ícones Font Awesome, que implementaremos mais tarde durante o processo.

1
<nav class="navigation">
2
  <a href="#" class="menu-icon">
3
    <i class="fa fa-bars"></i>
4
  </a>
5
  <ul class="main-navigation" role="navigation">
6
    <li><a href="#hero">Home</a></li>
7
    <li><a href="#introduction">Introduction</a></li>
8
    <li><a href="#creativity">Creativity</a></li>
9
    <li><a href="#work">Work</a></li>
10
    <li><a href="#help">Help</a></li>
11
    <li><a href="#clients">Clients</a></li>
12
    <li><a href="#about">About</a></li>
13
    <li><a href="#video">Video</a></li>
14
    <li><a href="#why-us">Why us?</a></li>
15
    <li><a href="#quote">Quote</a></li>
16
    <li><a href="#contact">Contact</a></li>
17
  </ul>
18
</nav>

Heroi (Hero)

A secção herói, como vista no PSD, é composta por uma imagem esticada, um título e um subtítulo. Para a imagem do plano de fundo, iremos adicionar um contêiner diferente, para o título usaremos h1 e para o subtítulo, h2. Aqui, como pode ver, estou usando u-full-width, a nova classe do Skeleton.

1
<section id="hero" class="hero u-full-width">
2
  <div class="hero-image"></div>
3
  <div class="container centered">
4
    <div class="twelve columns">
5
      <h1 class="separator">We’ve got talent</h1>
6
      <h2>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
7
      Aenean commodo ligula eget dolor. Aenean massa.</h2>
8
    </div>
9
  </div>
10
</section>

Introdução

A introdução contém dois elementos; um título e um subtítulo. Preparamos o html para suportar a borda do título, adicionando uma classe separator, que adicionará  border-bottom e espaçamento.

1
<section id="introduction" class="introduction u-full-width">
2
  <div class="container">
3
    <div class="row">
4
      <div class="twelve columns">
5
        <h3 class="separator">Introduction</h3>
6
        <h4>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.</h4>
7
      </div>
8
    </div>
9
  </div>
10
</section>

Criatividade

Criatividade tem um plano de fundo de largura cheia e um botão. Você também pode ver a classe centered no h4; uma classe que criaremos no próximo tutorial para nos ajudar a centralizar elementos tanto na vertical quanto na horizontal.

1
<section id="creativity" class="creativity u-full-width featured-bg-image">
2
  <h4 class="centered">
3
    <button class="button inverted">Pure creativity</button>
4
  </h4>
5
</section>

Trabalho

Esta é a maior secção no site, e contém uma ou duas linhas adicionais; uma para links de filtros, e outro para itens do trabalho.

1
<section id="work" class="work u-full-width">
2
  <div class="container">
3
    <div class="row">
4
      <div class="twelve columns">
5
        <h3 class="separator">Some of our work</h3>
6
      </div>
7
    </div>
8
    <div class="row">
9
      <!-- work filters -->
10
    </div>
11
    <div class="row">
12
      <!-- work items -->
13
    </div>
14
  </div>
15
</section>

O filtro contém uma lista não ordenada com links internos, que filtrará os itens de trabalho.

1
<ul class="work-filters u-full-width">
2
  <li class="active">
3
    <a href="#">All</a>
4
  </li>
5
  <li>
6
    <a href="#">Branding</a>
7
  </li>
8
  <li>
9
    <a href="#">Web design</a>
10
  </li>
11
  <li>
12
    <a href="#">Mobile</a>
13
  </li>
14
  <li>
15
    <a href="#">UI</a>
16
  </li>
17
  <li>
18
    <a href="#">Illustrations</a>
19
  </li>
20
</ul>

Os itens de trabalho em si ter'ao quatro colunas de largura, contendo a imagem do trabalho, o nome do trabalho e ua descrição.

Você pode ver também que estou usando outra classe, vertical-centered, que centralizará o item no eixo vertical. A descrição para cada item também tem uma borda em baixo. Para conseguir isso, reutilizaremos a classe separator que vimos anteriormente, enquanto adicionamos uma classe extra para adicionarmos os outros estilos.

1
<ul class="work-items u-cf">
2
  <li class="four columns">
3
    <img src="http://placehold.it/400">
4
    <div class="work-detail">
5
      <div class="vertical-centered">
6
        <h3>Branding</h3>
7
        <p class="separator orange">MTV AMA logo</p>
8
      </div>
9
    </div>
10
  </li>
11
  <li class="four columns">
12
    <img src="http://placehold.it/400">
13
    <div class="work-detail">
14
      <div class="vertical-centered">
15
        <h3>Web Design</h3>
16
        <p class="separator orange">Dribbble redesign</p>
17
      </div>
18
    </div>
19
  </li>
20
  <li class="four columns">
21
    <img src="http://placehold.it/400">
22
    <div class="work-detail">
23
      <div class="vertical-centered">
24
        <h3>Mobile UI</h3>
25
        <p class="separator orange">Google Mail</p>
26
      </div>
27
    </div>
28
  </li>
29
  <li class="four columns">
30
    <img src="http://placehold.it/400">
31
    <div class="work-detail">
32
      <div class="vertical-centered">
33
        <h3>Illustrations</h3>
34
        <p class="separator orange">Flat icons</p>
35
      </div>
36
    </div>
37
  </li>
38
  <li class="four columns">
39
    <img src="http://placehold.it/400">
40
    <div class="work-detail">
41
      <div class="vertical-centered">
42
        <h3>Web design</h3>
43
        <p class="separator orange">Inbox by google</p>
44
      </div>
45
    </div>
46
  </li>
47
  <li class="four columns">
48
    <img src="http://placehold.it/400">
49
    <div class="work-detail">
50
      <div class="vertical-centered">
51
        <h3>UI</h3>
52
        <p class="separator orange">Skeleton skin got a new UI</p>
53
      </div>
54
    </div>
55
  </li>
56
</ul>

Ajuda

A secção de ajuda tem a mesma estrutura que a secção criatividade, mas os diferenciaremos adicionando nomes de classes diferentes.

1
<section id="help" class="help u-full-width featured-bg-image">
2
  <h4 class="centered">
3
    <button class="button inverted">We’re here to help!</button>
4
  </h4>
5
</section>

Clientes

Esta secção contém uma lista não ordenada com imagens dos clientes. Estou usando placehold.it para reservar o espaço.

1
<section id="clients" class="clients u-full-width">
2
    <div class="container">
3
      <div class="row">
4
        <h3 class="separator">Our clients</h3>
5
      </div>
6
      <ul class="clients u-full-width u-cf">
7
        <li>
8
          <img src="http://placehold.it/200x50" alt="Google Client">
9
        </li>
10
        <li>
11
          <img src="http://placehold.it/200x50" alt="Samsung Client">
12
        </li>
13
        <li>
14
          <img src="http://placehold.it/200x50" alt="Flickr Client">
15
        </li>
16
        <li>
17
          <img src="http://placehold.it/200x50" alt="Foursquare Client">
18
        </li>
19
        <li>
20
          <img src="http://placehold.it/200x50" alt="Pinterest Client">
21
        </li>
22
      </ul>
23
    </div>
24
  </div>
25
</section>

Sobre

Aqui temos duas linhas diferentes, uma para o texto de introdução, e outra para as pessoas.

1
<section id="about" class="about u-full-width">
2
  <div class="container">
3
    <div class="row">
4
      <!-- introduction -->
5
    </div>
6
    <div class="row">
7
      <!-- people list -->
8
    </div>
9
  </div>
10
</section>

A linha da introdução contém um título e um subtítulo, como vimos na secção de introdução.

1
<div class="twelve columns">
2
  <h3 class="separator">About us</h3>
3
  <h4>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.</h4>
4
</div>

A lista de pessoas é uma lista não ordenada contendo quatro itens, a última sendo para contratação. Cada item na lista tem três colunas de largura e contém uma imagem, um link, e o nome e a posição do individuo.

1
<ul class="people-list">
2
  <li class="three columns people-list-item">
3
    <img src="http://placehold.it/300">
4
    <div class="people-hover">
5
      <a href="#"><i class="fa fa-external-link"></i></a>
6
      <div class="people-detail">
7
        <h3>JOHN</h3>
8
        <p>CEO/Founder</p>
9
      </div>
10
    </div>
11
  </li>
12
  <li class="three columns people-list-item">
13
    <img src="http://placehold.it/300">
14
    <div class="people-hover">
15
      <a href="#"><i class="fa fa-external-link"></i></a>
16
      <div class="people-detail">
17
        <h3>Wiliam</h3>
18
        <p>CTO/Founder</p>
19
      </div>
20
    </div>
21
  </li>
22
  <li class="three columns people-list-item">
23
    <img src="http://placehold.it/300">
24
    <div class="people-hover">
25
      <a href="#"><i class="fa fa-external-link"></i></a>
26
      <div class="people-detail">
27
        <h3>Clare</h3>
28
        <p>Designer</p>
29
      </div>
30
    </div>
31
  </li>
32
  <li class="three columns people-list-item blank-feature">
33
    <div class="vertical-centered">
34
      <h3 class="separator">WE ARE HIRING</h3>
35
      <button class="button">Apply</button>
36
    </div>
37
  </li>
38
</ul>

Video

A secção de vídeo contém apenas um botão e a imagem de fundo. Nos tutoriais que vem, faremos isso uma janela modal apontando à um vídeo do Youtube.

1
<section id="video" class="video u-full-width featured-bg-image">
2
  <h4 class="centered">
3
    <a href="http://www.youtube.com/embed/EVpyXNiHVbE?autoplay=1" class="button inverted circle">
4
      <i class="fa fa-play"></i>
5
    </a>
6
  </h4>
7
</section>

Porque nós

Continuando, a secção "Porque nós" é composta por duas secções individuais; uma para uma breve introdução e outra para serviços atuais.

1
<section id="why-us" class="why u-full-width">
2
  <div class="container">
3
    <div class="row">
4
      <!-- introduction section -->
5
    </div>
6
    <div class="row">
7
      <!-- services section -->
8
    </div>
9
  </div>
10
</section>

A secção de introdução tem doze colunas de largura e contém um título dentro de um elemento <h3> e uma breve descrição cercado pelo elemento <h4> Como você verá abaixo, o titulo também tem a classe separator para criar o efeito da borda mencionado anteriormente.

1
<div class="twelve columns">
2
  <h3 class="separator">Why choose us</h3>
3
  <h4>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.</h4>
4
</div>

Na secção de serviços, cada item da lista contém uma imagem e uma descrição.

1
<ul class="services">
2
  <li class="four columns">
3
    <div class="service-image">
4
      <img src="http://placehold.it/300x150">
5
    </div>
6
    <h5>App Design</h5>
7
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
8
    ilabore et dolore.</p>
9
  </li>
10
  <li class="four columns">
11
    <div class="service-image">
12
      <img src="http://placehold.it/300x150">
13
    </div>
14
    <h5>Responsive Layout</h5>
15
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
16
    ilabore et dolore.</p>
17
  </li>
18
  <li class="four columns">
19
    <div class="service-image">
20
      <img src="http://placehold.it/300x150">
21
    </div>
22
    <h5>Pixel Perfect design</h5>
23
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
24
    ilabore et dolore.</p>
25
  </li>
26
</ul>

Citação

Esta secção recebe a mesma estrutura de html que a secção criatividade, mas com um texto diferente para o botão centralizado.

1
<section id="quote" class="quote featured-bg-image u-full-width">
2
  <h4 class="centered">
3
    <button class="button inverted">Get a quote now.</button>
4
  </h4>
5
</section>

Entre em contato

Só faltam mais dois! Esta secção oferece uma pequena linha do tempo para o formulário. É construído com uma estrutura em html com qual você já deve estar familiarizado, com um título e uma descrição, com um separador entre eles.

1
<section id="contact" class="contact u-full-width">
2
  <div class="container">
3
    <div class="row">
4
      <div class="twelve columns">
5
        <h3 class="separator">Get in touch</h3>
6
        <h4>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt illum sed veritatis at, ipsam quo vitae minima. Animi unde doloremque iste, incidunt nihil, est vero aliquam, nemo id ab totam.</h4>
7
      </div>
8
    </div>
9
  </div>
10
</section>

Contato

O formulário de contato tem duas colunas, uma para a localização e links de perfis sociais, e outro contendo o formulário que permite o usuário entrar em contato com a firma.

Novamente, estou usando markup para suportar Font Awesome, que veremos como integrar no proximo tutorial.

A primeira coluna tem quatro colunas de largura e a segunda tem oito. Aqui você realmente vê o poder do Skeleton, porque estamos usando linhas e colunas uma dentro da outra. O formulário tem tamanhos diferentes dentro dele; os primeiros dois inputs tem seis colunas de largura, e estão dentro de um container de oito colunas de largura.

1
<section class="container contact-us u-full-width u-max-full-width">
2
  <div class="row">
3
    <div class="four columns contact-us-details">
4
      <h3>Our Location</h3>
5
      <h5>
6
      174 Mimosa ST. NW  <br />
7
      Casablanca, MA 20370 <br />
8
      (212) 123 456 7 <br />
9
      Samir Timezguida</h5>
10
      <ul class="social-links">
11
        <li>
12
          <a href="http://twitter.com/wdtuts" target="_blank">
13
            <i class="fa fa-twitter"></i>
14
          </a>
15
        </li>
16
        <li>
17
          <a href="https://www.facebook.com/webdesigntutsplus" target="_blank">
18
            <i class="fa fa-facebook"></i>
19
          </a>
20
        </li>
21
        <li>
22
          <a href="https://plus.google.com/117485987435498566293" target="_blank">
23
            <i class="fa fa-google-plus"></i>
24
          </a>
25
        </li>
26
      </ul>
27
    </div>
28
    <div class="eight columns contact-us-form">
29
      <form>
30
        <div class="row">
31
          <div class="six columns">
32
            <input class="u-full-width" type="text" placeholder="Name" id="nameInput">
33
          </div>
34
          <div class="six columns">
35
            <input class="u-full-width" type="email" placeholder="Email" id="emailInput">
36
          </div>
37
        </div>
38
        <textarea class="u-full-width" placeholder="Message" id="messageInput"></textarea>
39
        <input class="button u-pull-right" type="submit" value="Send">
40
      </form>
41
    </div>
42
  </div>
43
</section>

Roda-pé

Nosso roda-pé contém algum texto dentro de um container de doze colunas.

1
<section class="footer u-full-width">
2
  <div class="container">
3
    <div class="row">
4
      <div class="twelve columns">
5
        <h5>&copy 2015 WebDesign Tuts+.</h5>
6
      </div>
7
    </div>
8
  </div>
9
</section>

Isso é tudo por enquanto!

Esse tutorial demonstrou exatamente para que serve o Skeleton: usamos seu markup para criar a estrutura de uma página na web. No próximo tutorial pegaremos esta estrutura e adicionaremos estilo para deixá-lo com um visual único. Até a próxima

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.