Centralizar div na horizontal e vertical com float e clear

Postado por: Pedro Rogério em

Se você não ficou muito satisfeito com a primeira técnica que postei por aqui de como centralizar na horizontal e vertical com CSS, então vai ficar surpreendido com essa que dscobri recentemente, que faz o uso de float e clear para centralizar o elemento na horizontal e vertical.

Nesse exemplo, vamos utilizar uma div com o id “container”, esse será o elemento que iremos centralizar na página. Observem a seguinte marcação HTML:

<div id="distance"></div>
<div id="container">

    <h1>Centralizar div na horizontal e vertical com float e clear - crossbrowser</h1>
    <p>
        Esse box fica no meio do browser em relação a seu viewpoint.<br />
        O conteúdo não desaparece quando o viewpoint é redimensionado e fica menor que o box.
    </p>

</div>

Um HTML simples, composto por uma div para conter todos os nossos elementos, e por fora dessa div, uma outra, chamada de distance(você pode chamá-la como quiser), que será responsável por empurrar o nosso box, emconsequência o deixando sempre no centro do viewpoint do browser. As regras CSS são as seguintes:

html, body {
	height:100%;
}
body {
    text-align:center; /* Centralizar na horizontal no IE caso o site entre em Quirks mode */
}
#distance {
    width:1px;
    height:50%;
    background-color:#fc6;
    margin-bottom:-13.75em; /* Metade da altura do nosso box que ficará centralizado */
    float:left;
}
#container {
    margin:0 auto;
    position:relative; /* Coloca o container frente ao elemento com o id distance */
    text-align:left;
    height:27.5em;
    width:45em;
    clear:left;
    background-color:#ff9;
    border:1px solid #c93;
    border-top-color:#fff;
    border-left-color:#fff;
}

Como podem ver, deve ser definido que as tags html e body tenham uma altura de 100%. Depois definimos um height de 50% para nossa div “distance”, adicionamos float e um margin-bottom negativo, esse valor deve ser a metade da altura do elemento que você deseja centralizar, que no exemplo foi a div container. A utilização de clear é necessário para que o elemento fique centralizado na vertical. Vejam nesse exemplo o código em ação.

Esse exemplo foi retirado do site d-graff.

CSS Conditional comments

Postado por: Pedro Rogério em

Uma das operações mais comuns desenvolvidas pelos programadores em uma página web é detectar o tipo de navegador utilizado e versão para que o conteúdo seja entregue de forma conveniente ao usuário. Para isso podem ser utilizadas várias técnicas tanto do lado servidor como do lado cliente. Nesse tutorial você terá uma introdução aos conditional comments, uma forma simples de diferenciar folhas de estilo entre as diversas versões o Internet Explorer.

Benefícios de utilização

Os principais benefícios de utilização são:

Menor impacto do lado cliente
Quando o navegador encontra um comentário condicional que não diz respeito a ele, ele o considera como um simples comentário HTML e o conteúdo não é analisado, baixado, economizando recursos da máquina cliente.
Não é necessário o uso de Scripts
Conditional comments são utilizam nenhum tipo de Script ou DHTML, durante o carregamento da página ele é analisado e direcionado somente para o browser necessário.
Separa o código da lógica
Utilizando Conditional comments você separa seu código em pequenos segmentos, tornando mais fácil o entendimento e a manutenção.
Cross-browser
A utilização de Conditional comments não é restrita somente ao Internet Explorer, eles podem ser utilizados nos browsers que suportam comentários condicionais para personalizar o conteúdo e aqueles que também não suportam.

Continuar lendo »

Safari CSS Reference

Postado por: Pedro Rogério em

Webkit Icon

Quando se está aprendendo CSS, é de extrema importância pesquisar quais propriedades CSS são suportadas pelos browsers, isso lhe ajuda a entender milhares de incompatibilidades que podem ocorrer durante o desenvolvimento do projeto. Hoje, vou apresentar aqui a referência CSS suportada pelo Safari, cujo motor de renderiação é o Webkit, motor esse também utilizado pelo Google Chrome.

Nesse guia, você irá encontrar especificações do tipo:

  • Uma breve explicação dos termos utilizados.
  • Propriedades CSS suportadas.
  • CSS Rules
  • Funções proprietárias

Você também possui a opção de baixar o Guia em PDF aqui.

Pseudo-seletores: O bug do seletor e as chaves

Postado por: Pedro Rogério em

Em relação ao meu último post, sobre Drop Caps com CSS, um amigo me deu uma dica muito interessante por e-mail. Reparem que no tutorial anterior utilizamos o pseudo-seletor :first-letter para desenvolver o efeito de drop caps da seguinte forma:

p:first-letter {
    font-size: 4.2em;
    float: left;
    line-height: 0.6em;
    margin: 0.13em 0.13em 0.13em 0;
}

Reparem que existe um espaço entre o seletor e a abertura da chave, isso é obrigatório pois se esse espaço não for declarado, o efeito não funciona no IE6, parece brincadeira, mas é verdade, observem o código:

p:first-letter{
    font-size: 4.2em;
    float: left;
    line-height: 0.6em;
    margin: 0.13em 0.13em 0.13em 0;
}

Experimentem acessar esse exemplo com o Internet Explorer 6. Não sei dizer ao certo se esse bug atinge todos os pseudo-seletores, mas fica aí a dica.

Drop Caps com CSS

Postado por: Pedro Rogério em

Drop Caps são muito utilizados em livros, onde a primeira letra do parágrafo ocupa 2 ou mais linhas do texto, se destacando.

Para conseguir esse efeito é muito simples, observem a seguinte marcação HTML:

<p>
    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
    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
    reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</p>

Agora, no css, faremos o uso do pseudo-seletor :first-letter, onde iremos aplicar estilos a primeira letra do parágrafo:

p:first-letter {
    font-size: 4.2em;
    float: left;
    line-height: 0.6em;
    margin: 0.13em 0.13em 0.13em 0;
}

Como viram, não existe segredo, para um melhor entendimento do tutorial, é só dar uma olhada nesse exemplo.