Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Duvidas com float e posicionamento de elementos

Professor e colegas, estou fazendo um exercício de construir uma página e etc,

Mas nao consigo ajustar algumas coisas.

  • Nao consigo ajustar o posicionamento do botao sair, para que com o zoom ele se mova.
  • Gostaria de um feedback
  • Obs a pagina nao está terminada ainda.

============html=====================

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>XZ News</title>
        <link rel="stylesheet" href="exer_cap7.css">
    </head>
    <body>
        <div class="main">
          <header>
                <div class="dashboard">
                    <p id="usuario_ativo">Usuário: Admin</p>
                    <p id="data_hora">25/01/2007 19:32:00 PM</p>
                 </div>
                 <div class="banner">
                     <p class="nome_logo">XZ News</p>
                     <div class="botao_sair"> 
                         <img src="http://www.iconarchive.com/download/i42603/oxygen-icons.org/oxygen/Actions-dialog-close.ico" alt="sair">
                         <p>Sair</p>
                     </div>
                 </div>
                 <nav class="menu_dashboard">
                     <ul class="list_menu_dash">
                         <li>DESTINATÁRIOS |</li>
                         <li>NEWSLETTER |</li>
                         <li>NEWSLETTER URGENTE |</li>
                     </ul>
                     <p class="linha_menu_dashboard"></p>
                 </nav>
          </header>
              <div class="content">
              </div>
        </div>
    </body>
</html>

==========css============================

body {
    margin: 0 auto;
}
/* dashboard */
.dashboard{
    background: linear-gradient(-180deg, #808080 25%, black 99%);
    font-family: Verdana;
    font-style: bold;
    color: #fff;
}

.dashboard #usuario_ativo {
    color: #fff;
    display: inline;
    padding-left: 20px;
}

.dashboard #data_hora {
    color: #fff;
    text-align: right;
    padding-right: 20px;
    margin-top: -18px
}

/* banner */
.banner {
    background-color: purple;
    width: 100px;
    height: 50px;
    margin-top: -16px;
    padding-left: 0px;
    padding-right: 100%;
    padding-right: 100%;
}
.banner p {
    color: #fff;
}

.nome_logo{
    font-family: Verdana;
    font-size: 16px;
    padding-top: 10px;
    padding-left: 16px;
}
.botao_sair {
    background: linear-gradient(-180deg, #808080 25%, black 99%);
    width: 43px;
    height: 23px; 
    margin-left: auto;
    margin-right: -500;
    margin-top: -35px;
    border-radius: 5px;
}

.botao_sair img {
    width: 20px;
    height: 20px;
    margin-top: 2px;
}

.botao_sair p {
    color: #fff;
    font-family: Arial;
    font-size: 12px;
    padding-left: 20px;
    padding-top: 2px;
    margin-top: -22px;
}
.menu_dashboard    {
    margin-left: 18px;
}

.list_menu_dash {
    list-style-type: none;
    margin: 0px;
    padding: 0px;

}

.list_menu_dash li {
    font-family: Arial;
    font-size: 10px;
    display: inline;
    opacity: 0.3;
}
.list_menu_dash li:hover{
    opacity: 1.0;
}


.linha_menu_dashboard {
     border-bottom: 1px dotted #000000;
     margin-top: 2px;
     margin-right: 26px;
}

.content {
    background-color: red;
    width: 72px;
    height: 40px;
}
10 respostas

Olá Eduardo.

Abrindo o que você fez tenho o seguinte resultado:

Imgur

Você pode me mostrar onde gostaria do botão sair, para eu ver qual a melhor forma para fazer?

Oi Fabricio,

Ele deve ficar a direita, embaixo daquela data.

O esperado era isso http://imageshack.com/a/img905/2023/x32cI6.png

Quando tenho uma div, por for tenho as margins que se distancia de outras divs, e dentro de cada uma existe o padding que a distancia relacionada ao conteudo e a margin ?

E todos estes valores se somam ao valor final da div e posterior ao elemento em sí ?

Body por exemplo...

Sinceramente eu confundo ainda esta questao de posicionamento de elementos...

(Confio na tua explicação, afinal aquela de Javascript eu nunca esqueço hahahah) Eu fiz isso:

html ``` <!DOCTYPE html>

Usuário: Admin

25/01/2007 19:32:00 PM

  • DESTINATÁRIOS |
  • NEWSLETTER |
  • NEWSLETTER URGENTE |

           <div class="botao_novo_usuario">
              <img src="http://files.softicons.com/download/toolbar-icons/splashy-icons-by-dat-nguyen/png/16/add_small.png" alt="adicionar">
              <p>Novo usuario</p>
           </div>

           <table>
              <thead>
                <th>ID</th>
                <th>Nome</th>
                <th>Email do usuário</th>
                <th>Data de criação</th>
                <th></th>
              <thead>
              <tbody>
                <tr>
                 <td>1</td>
                 <td>Eduardo Ungaratto</td>
                 <td>eduardo@xznews.com</td>
                 <td>21/01/2016</td>
                 <td><img src="http://4.bp.blogspot.com/-MmpM6bbv5e0/TjJ2BY11NQI/AAAAAAAAAqY/1XHL4UCXnUY/s1600/edit.gif" alt="edit">
                 <img src="http://files.softicons.com/download/toolbar-icons/splashy-icons-by-dat-nguyen/png/16/add_small.png" alt="adicionar">
                 <img src="http://icons.iconarchive.com/icons/dryicons/simplistica/16/delete-icon.png" alt="remover"></td>
                </tr>
                <tr>
                 <td>1</td>
                 <td>Eduardo Ungaratto</td>
                 <td>eduardo@xznews.com</td>
                 <td>21/01/2016</td>
                 <td><img src="http://4.bp.blogspot.com/-MmpM6bbv5e0/TjJ2BY11NQI/AAAAAAAAAqY/1XHL4UCXnUY/s1600/edit.gif" alt="edit">
                 <img src="http://files.softicons.com/download/toolbar-icons/splashy-icons-by-dat-nguyen/png/16/add_small.png" alt="adicionar">
                 <img src="http://icons.iconarchive.com/icons/dryicons/simplistica/16/delete-icon.png" alt="remover"></td>
                </tr>
              </tbody>
           <table>
           <div class="botoes">
                <div class="ativar_todos">
                  <p>Ativar todos</p>
                </div>
                <div class="desativar_todos">
                  <p>Desativar todos</p>
                </div>
             </div>
    </div>
</body>

``` css

``` body { margin: 0 auto; } /* dashboard */ .dashboard{ background: linear-gradient(-180deg, #808080 25%, black 99%); font-family: Verdana; font-style: bold; color: #fff; }

.dashboard #usuario_ativo { color: #fff; display: inline; padding-left: 20px; }

.dashboard #data_hora { color: #fff; text-align: right; padding-right: 20px; margin-top: -18px }

/* banner */ .banner { background-color: purple; width: 100px; height: 50px; margin-top: -16px; padding-left: 0px; padding-right: 100%; padding-right: 100%; } .banner p { color: #fff; }

.nome_logo{ font-family: Verdana; font-size: 16px; padding-top: 10px; padding-left: 16px; } .botao_sair { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 43px; height: 23px; margin-left: auto; margin-right: -500; margin-top: -35px; border-radius: 5px; }

.botao_sair img { width: 20px; height: 20px; margin-top: 2px; }

.botao_sair p { color: #fff; font-family: Arial; font-size: 12px; padding-left: 20px; padding-top: 2px; margin-top: -22px; }

.menu_dashboard { margin-left: 18px; }

.list_menu_dash { list-style-type: none; margin: 0px; padding: 0px;

}

.list_menu_dash li { font-family: Arial; font-size: 10px; display: inline; opacity: 0.3; } .list_menu_dash li:hover{ opacity: 1.0; }

.linha_menu_dashboard { border-bottom: 1px dotted #000000; margin-top: 2px; margin-right: 26px; margin-bottom: 10px; }

.botao_novo_usuario { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 60px; height: 15px; background-color: #000; margin-bottom: 0px; margin-top: 0px; margin-left: 18px; padding: 0px 7px 0px 18px; border-radius: 4px; } .botao_novo_usuario img { margin-left: -17px; }

.botao_novo_usuario p { color: #fff; font-size: 10px; font-family: Arial; height: 20px; margin-top: -18px; }

table { margin-top: 4px; margin-left: 18px; margin-right: auto; } table th { background-color: purple; font-family: Arial; font-size: 10px; color: white; }

table tr:nth-child(odd){ background-color: #D8C5DE; color: #fff; }

table tr:nth-child(even){ background-color: #E1DCE3; color: #fff; }

.ativar_todos { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 80px; height: 15px; background-color: #000; margin-bottom: 0px; margin-top: 0px; margin-left: 18px; padding: 0px 7px 0px 18px; border-radius: 4px; }

.desativar_todos { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 80px; height: 15px; background-color: #000; margin-bottom: 0px; margin-top: -25px; margin-left: 125px; padding: 0px 7px 0px 18px; border-radius: 4px; }

.ativar_todos p, .desativar_todos p{ color: #fff; height:20px; font-size: 10px }

.botoes { display: inline-block; width:250px; height: 40px; margin-left: 200px; } ```

agora formatado

html

``` <!DOCTYPE html>

Usuário: Admin

25/01/2007 19:32:00 PM

  • DESTINATÁRIOS |
  • NEWSLETTER |
  • NEWSLETTER URGENTE |

           <div class="botao_novo_usuario">
              <img src="http://files.softicons.com/download/toolbar-icons/splashy-icons-by-dat-nguyen/png/16/add_small.png" alt="adicionar">
              <p>Novo usuario</p>
           </div>

           <table>
              <thead>
                <th>ID</th>
                <th>Nome</th>
                <th>Email do usuário</th>
                <th>Data de criação</th>
                <th></th>
              <thead>
              <tbody>
                <tr>
                 <td>1</td>
                 <td>Eduardo Ungaratto</td>
                 <td>eduardo@xznews.com</td>
                 <td>21/01/2016</td>
                 <td><img src="http://4.bp.blogspot.com/-MmpM6bbv5e0/TjJ2BY11NQI/AAAAAAAAAqY/1XHL4UCXnUY/s1600/edit.gif" alt="edit">
                 <img src="http://files.softicons.com/download/toolbar-icons/splashy-icons-by-dat-nguyen/png/16/add_small.png" alt="adicionar">
                 <img src="http://icons.iconarchive.com/icons/dryicons/simplistica/16/delete-icon.png" alt="remover"></td>
                </tr>
                <tr>
                 <td>1</td>
                 <td>Eduardo Ungaratto</td>
                 <td>eduardo@xznews.com</td>
                 <td>21/01/2016</td>
                 <td><img src="http://4.bp.blogspot.com/-MmpM6bbv5e0/TjJ2BY11NQI/AAAAAAAAAqY/1XHL4UCXnUY/s1600/edit.gif" alt="edit">
                 <img src="http://files.softicons.com/download/toolbar-icons/splashy-icons-by-dat-nguyen/png/16/add_small.png" alt="adicionar">
                 <img src="http://icons.iconarchive.com/icons/dryicons/simplistica/16/delete-icon.png" alt="remover"></td>
                </tr>
              </tbody>
           <table>
           <div class="botoes">
                <div class="ativar_todos">
                  <p>Ativar todos</p>
                </div>
                <div class="desativar_todos">
                  <p>Desativar todos</p>
                </div>
             </div>
    </div>
</body>

```

css

``` body { margin: 0 auto; } /* dashboard */ .dashboard{ background: linear-gradient(-180deg, #808080 25%, black 99%); font-family: Verdana; font-style: bold; color: #fff; }

.dashboard #usuario_ativo { color: #fff; display: inline; padding-left: 20px; }

.dashboard #data_hora { color: #fff; text-align: right; padding-right: 20px; margin-top: -18px }

/* banner */ .banner { background-color: purple; width: 100px; height: 50px; margin-top: -16px; padding-left: 0px; padding-right: 100%; padding-right: 100%; } .banner p { color: #fff; }

.nome_logo{ font-family: Verdana; font-size: 16px; padding-top: 10px; padding-left: 16px; } .botao_sair { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 43px; height: 23px; margin-left: auto; margin-right: -500; margin-top: -35px; border-radius: 5px; }

.botao_sair img { width: 20px; height: 20px; margin-top: 2px; }

.botao_sair p { color: #fff; font-family: Arial; font-size: 12px; padding-left: 20px; padding-top: 2px; margin-top: -22px; }

.menu_dashboard { margin-left: 18px; }

.list_menu_dash { list-style-type: none; margin: 0px; padding: 0px;

}

.list_menu_dash li { font-family: Arial; font-size: 10px; display: inline; opacity: 0.3; } .list_menu_dash li:hover{ opacity: 1.0; }

.linha_menu_dashboard { border-bottom: 1px dotted #000000; margin-top: 2px; margin-right: 26px; margin-bottom: 10px; }

.botao_novo_usuario { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 60px; height: 15px; background-color: #000; margin-bottom: 0px; margin-top: 0px; margin-left: 18px; padding: 0px 7px 0px 18px; border-radius: 4px; } .botao_novo_usuario img { margin-left: -17px; }

.botao_novo_usuario p { color: #fff; font-size: 10px; font-family: Arial; height: 20px; margin-top: -18px; }

table { margin-top: 4px; margin-left: 18px; margin-right: auto; } table th { background-color: purple; font-family: Arial; font-size: 10px; color: white; }

table tr:nth-child(odd){ background-color: #D8C5DE; color: #fff; }

table tr:nth-child(even){ background-color: #E1DCE3; color: #fff; }

.ativar_todos { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 80px; height: 15px; background-color: #000; margin-bottom: 0px; margin-top: 0px; margin-left: 18px; padding: 0px 7px 0px 18px; border-radius: 4px; }

.desativar_todos { background: linear-gradient(-180deg, #808080 25%, black 99%); width: 80px; height: 15px; background-color: #000; margin-bottom: 0px; margin-top: -25px; margin-left: 125px; padding: 0px 7px 0px 18px; border-radius: 4px; }

.ativar_todos p, .desativar_todos p{ color: #fff; height:20px; font-size: 10px }

.botoes { display: inline-block; width:250px; height: 40px; margin-left: 200px; } ```

ele nao pegou :(((

Isto é o local onde você quer colocar o seu botão sair?

http://i.imgur.com/HdkK2RS.png

Se é isto eu tirei o botão do banner e coloquei em 1 div separada e apliquei o flutuamento do botão sair para o lado do xz news. E logo depois editei a margem da direita para ficar longe o bastante para ficar embaixo do horário. E por fim adicionei um padding para aumentar o tamanho do espaço do sair e aumentei a largura do width.

Código logo abaixo.

CSS

body {
    margin: 0 auto;
}
/* dashboard */
.dashboard{
    background: linear-gradient(-180deg, #808080 25%, black 99%);
    font-family: Verdana;
    font-style: bold;
    color: #fff;
}

.dashboard #usuario_ativo {
    color: #fff;
    display: inline;
    padding-left: 20px;
}

.dashboard #data_hora {
    color: #fff;
    text-align: right;
    padding-right: 20px;
    margin-top: -18px
}

/* banner */
.banner {
    background-color: purple;
    width: 100px;
    height: 50px;
    margin-top: -16px;
    padding-left: 0px;
    padding-right: 100%;
    padding-right: 100%;
}
.banner p {
    color: #fff;
}

.nome_logo{
    font-family: Verdana;
    font-size: 16px;
    padding-top: 10px;
    padding-left: 16px;
}
.botao_sair {
    background: linear-gradient(-180deg, #808080 25%, black 99%);
    width: 63px;
    height: 23px; 
    margin-left: auto;
    margin-right: 15px;
    margin-top: -35px;
    border-radius: 5px;
    margin-bottom: 15px;
    padding: 2px;
}
.botao_sair img {
    width: 20px;
    height: 20px;
    margin-top: 2px;
}

.botao_sair p {
    color: #fff;
    font-family: Arial;
    font-size: 12px;
    text-indent: 5px;
    padding-left: 20px;
    padding-top: 2px;
    margin-top: -22px;
}
.menu_dashboard    {
    margin-left: 18px;
}

.list_menu_dash {
    list-style-type: none;
    margin: 0px;
    padding: 0px;

}

.list_menu_dash li {
    font-family: Arial;
    font-size: 10px;
    display: inline;
    opacity: 0.3;
}
.list_menu_dash li:hover{
    opacity: 1.0;
}


.linha_menu_dashboard {
     border-bottom: 1px dotted #000000;
     margin-top: 2px;
     margin-right: 26px;
}

.content {
    background-color: red;
    width: 72px;
    height: 40px;
}

HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>XZ News</title>
        <link rel="stylesheet" href="exer_cap7.css">
    </head>
    <body>
        <div class="main">
          <header>
                <div class="dashboard">
                    <p id="usuario_ativo">Usuário: Admin</p>
                    <p id="data_hora">25/01/2007 19:32:00 PM</p>
                 </div>
                 <div class="banner">
                     <p class="nome_logo">XZ News</p>
                 </div>
                 <div class="botao_sair"> 
                         <img src="http://www.iconarchive.com/download/i42603/oxygen-icons.org/oxygen/Actions-dialog-close.ico" alt="sair">
                <p> Sair</p>
                 </div>
                 <nav class="menu_dashboard">
                     <ul class="list_menu_dash">
                         <li>DESTINATÁRIOS |</li>
                         <li>NEWSLETTER |</li>
                         <li>NEWSLETTER URGENTE |</li>
                     </ul>
                     <p class="linha_menu_dashboard"></p>
                 </nav>
          </header>
              <div class="content">
              </div>
        </div>
    </body>
</html>

Afinal isto ajuda?

Oi Eduardo,

Uma das maneiras de posicionar o botão no canto direito seria adicionando as seguintes regras no css:

.botao_sair {
    position: absolute;
    top: 45px;
    right: 20px;
    width: 60px;
    padding: 0 5px;
}

.banner {
    position: relative;
    width: auto;
}

.nome_logo {
    width: 100px;
}

Bons estudos!

Ola Ana e Instrutor Rodrigo,

Acabei errando e colocando o botao sair dentro de banner, olhando a sugestao da colega Ana e apliquei a sugestao dela, e posterior a do Instrutor por usar posicionamento e tudo se ajustou...

Alias o primeiro position: relative no caso é relativo a quem, ao dashboard ? Que está acima, ou ao seu pai mesmo ? (header) O segundo position: absolute foi para o botao permancer ao lado da div de banner ?

Obrigado pela ajuda e dicas :)

<div class="dashboard"> <p id="usuario_ativo">Usuário: Admin</p> <p id="data_hora">25/01/2007 19:32:00 PM</p> </div> <div class="banner"> <p class="nome_logo">XZ News</p> </div> <div class="botao_sair"> <img src="http://www.iconarchive.com/download/i42603/oxygen-icons.org/oxygen/Actions-dialog-close.ico" alt="sair"> <p>Sair</p> </div>

solução!

Oi Eduardo,

O position:absolute serve para mudarmos o posicionamento do elemento(por meio das propriedades top, left, right, bottom), e ele vai se basear no elemento pai que está com o position:relative.

Ou seja, no seu caso o elemento .botao_sair está com position:absolute e ele é filho do elemento .banner, logo ele vai se basear no elemento .banner.

Como não mexemos nas posições(top, left, right, bottom) do elemento .banner, ele continua no mesmo lugar, servindo apenas como referencia para seus elementos filhos que estiverem com o position:absolute.

Abraços!

Valeu Rodrigo, entendi :)

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software