1
resposta

Posicionamento de elementos - CSS

Bom dia/ tarde/ noite,

estou praticando HTML e CSS e tenho grande dificuldade em relação a posição dos elementos.

Sei que todo elemento é equivalente a um bloco, mas quando coloco a propriedade position em algum elemento o fluxo da pagina muda e sai tudo de ordem.

No caso desse código esta tudo agrupado no topo da pagina.

HTML

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <title>Treino html e css</title>
</head>
<body>
    <header>
        <div class="container">
            <h1>Logo</h1>
            <nav class="menu-opcoes">
                <ul>
                    <li><a href="#">Home</a></li>
                    <li><a href="#">sobre</a></li>
                    <li><a href="#">Agenda</a></li>
                    <li><a href="#">contato</a></li>
                </ul>
            </nav>
        </div>
    </header>
    <section class="principal">
        <div class="container">
            <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi tempora illum ad unde molestias, 
                fugiat nihil iure delectus eligendi odio et recusandae dolor, porro nostrum, autem quo maiores a 
                assumenda?
            </p>

        </div>
    </section>
</body>
</html>

CSS

@charset "UTF-8";

/** Geral **/
*{
    margin:0;
    padding: 0;
}

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

/** Header **/
header{
    border-top: 5px solid #c24e4b;
    background: rgba(30, 44, 53, 0.8);
    height: 95px;
    width: 100%;
    position: absolute; /** O header tem uma posição absoluta em relação a pagina web*/}

header .container{
    position: relative; }

h1 {
    font-size: 2em;
    margin: 0.67em 0;}

.menu-opcoes {
    position: absolute;
    right: 0;
    top: 10px;
    font-size: 1.2em;
    font-weight: lighter;}

.menu-opcoes ul{
    padding-left: 0;}

.menu-opcoes li{
    display: inline-block;
    margin: 5px;
    padding: 5px;
    box-sizing: border-box;}

.menu-opcoes a {
    color: #fff;
    text-decoration: none;}

.menu-opcoes a:hover {
    text-decoration: underline; }
/** FIM Header **/

/** Principal*/

.principal{

background: url(../imagens/principal.jpg);

}
1 resposta

Olá Fernando, blz?!

Sei que todo elemento é equivalente a um bloco
  • Nem todo elemento é bloco, alguns são linhas.
  • Tire o position: absolute do header que ele voltará para o fluxo normal.