Margin no CSS

Front-end

23/07/2015

Não conseguir entender o por que das definições de centralização.

Um elemento com os margins em auto, centraliza, não entendi.


        margin-left:auto;
	margin-right:auto;

Gabriela Monte

Gabriela Monte

Curtidas 0

Melhor post

Jothaz

Jothaz

24/07/2015

Eu não entendi bem sua pergunta, mas vamos lá.

Sim elementos com "margin-left:auto" e "margin-right:auto" ficam centralizados, vale ressaltar que dependendo da versão do browser isto não funciona.

É uma convenção dos criadores da especificação do CSS, poderia ser qualquer palavra, mas os criadores decidiram utilizar "auto".
GOSTEI 1

Mais Respostas

Randrade

Randrade

23/07/2015

Felizmente as CSS prevêm o valor auto para a propriedade margin. Esse valor, que significa margem automática, quando definido à esquerda e à direita centra automaticamente o elemento ao qual foi aplicada a margem.

Funciona assim: CSS possui um mecanismo nativo que dimensiona o DIV com a largura especificada (no nosso caso 760px) e coloca margens esquerda e direita IGUAIS. Por exemplo: se a tela tem largura de 1024px, CSS calcula 1024px - 760px = 264px e coloca margens laterais de 264px / 2 = 132px CENTRANDO A PÁGINA. Isso é válido para qualquer que seja a resolução.
-- Maujor/


Resumindo: Ao setar a margin como auto, ele pega as margens e divide pelos elementos, ou seja. Se você colocar a margin-left: auto e a margin-right: auto, ele divide a tela em tamanhos iguais, neste caso centralizando. Agora, você pode utilizar isso dentro de outro elemento, com finalidade de abaixar, subir, ir para direita, esquerda. Você utiliza de acordo com suas necessidades.
GOSTEI 1
Gabriela Monte

Gabriela Monte

23/07/2015

Obrigada aos Senhores!

Eu fiz um pequeno teste utilizar o "center" e não deu certo, não sei se por que o "center" não é destinado a essas "tags", mas para mim era o mais lógico de lembrar.
Se não funcionar, entendi a palavra de vocês.
GOSTEI 0
Randrade

Randrade

23/07/2015

O center centraliza o elemento. Porém, não em relação à tela, e sim em relação o "tamanho do elemento pai".
Ele funciona normalmente, mas pode ser que o tamanho dele não seja a tela toda, assim, mudando apenas um pouco, e não indo ao centro.
E o center não funciona em todas as tags. Sem falar que agora com o HTML5, deixaram de "aceitar" (ainda funciona, mas não é recomendável) esse atributo.

O Jothaz deu uma excelente dica uma vez para olhar isso. Coloque borda, ou background nos elementos, assim você verá visualmente o tamanho deles e suas posições.

Dê uma olhada neste exemplo que eu fiz. Nele você verá a diferença do center para o margin: auto.
GOSTEI 1
Gabriela Monte

Gabriela Monte

23/07/2015

Entendendo um pouco agora, vou práticar mais!
GOSTEI 0
Marcelo Pastore

Marcelo Pastore

23/07/2015

W3Schools ajuda bastante:

[url]http://www.w3schools.com/cssref/pr_margin-left.asp[/url]
GOSTEI 0
Gabriela Monte

Gabriela Monte

23/07/2015

W3Schools ajuda bastante:

[url]http://www.w3schools.com/cssref/pr_margin-left.asp[/url]


Bem mais detalhado, obrigada.
GOSTEI 0
Gabriela Monte

Gabriela Monte

23/07/2015

Jothaz, eu de novo, sobre a sua citação, se alguns elementos não funcionam em algumas versões de browsers, o que podemos fazer para saber se o problema é nele ou no código?

Sim elementos com "margin-left:auto" e "margin-right:auto" ficam centralizados, vale ressaltar que dependendo da versão do browser isto não funciona.
GOSTEI 0
Jothaz

Jothaz

23/07/2015

Jothaz, eu de novo, sobre a sua citação, se alguns elementos não funcionam em algumas versões de browsers, o que podemos fazer para saber se o problema é nele ou no código?

Sim elementos com "margin-left:auto" e "margin-right:auto" ficam centralizados, vale ressaltar que dependendo da versão do browser isto não funciona.


Isto depende do objetivo do site e do cenário.

Hoje temos uma grande quantidade de usuários que utilizam versões de browsers atualizados, mas existem os que não atualizam e algumas empresas (que por maiores que sejam) ainda usam o IE9 como o browser padrão. Para estas empresas é um requisito não funcional que a sua aplicação rode em qualquer versão dos browser.

Se você não se preocupar em perder alguns acessos e se não existe este requisito de rodar em qualquer versão você não precisa ser preocupar com isto.

Agora ser quer um site realmente universal é possível usar algumas formas para deixar suá página funcional independente da versão do browser. Pode-se usar Browserhacks, JavaScript ou CSS especifico para um determinado browser.

Depende do problema que você queira contornar.
GOSTEI 0
Gabriela Monte

Gabriela Monte

23/07/2015

Mas sempre pensando no usuario, devemos fazer algo que rode pelo menos nos principais browser; firefox, ie, chrome e opera. Vi alguns exemplos em CSS sobre isso.
GOSTEI 0
Jothaz

Jothaz

23/07/2015

Tudo se resume a custo x beneficio e prazo disponível para o desenvolvimento e claro os requisitos.
Como já disse algumas empresas definem como requisito não funcional que o projeto rode em qualquer versão de browsers, então não temos escapatória e devemos implemntar de uma foram que atenda aos requisitos.

Eu gosto de garantir que o meu site seja acessível a todos, então como já uma certa experiência sempre tento atender esta filosofia.

Agora depende do projetista do site e do objetivo. As vezes não se faz necessário invetir tempo e esforços nesta universalização do site.
GOSTEI 0
Gabriela Monte

Gabriela Monte

23/07/2015

Eu gosto de garantir que o meu site seja acessível a todos, então como já uma certa experiência sempre tento atender esta filosofia.


Pois queria isso, mas para simples mesmo, estatico!
GOSTEI 0
Jothaz

Jothaz

23/07/2015

Eu gosto de garantir que o meu site seja acessível a todos, então como já uma certa experiência sempre tento atender esta filosofia.


Pois queria isso, mas para simples mesmo, estatico!


Acho importantíssimo esta preocupação de construir uma web voltada para acessibilidade e inclusão. É uma característica de quem pretende se profissionalizar.

Porém como você esta iniciando seu aprendizado aconselho a absorver conhecimentos básicos e posteriormente se preocupar com esta abordagem cross browser.

Senão pode ser frustrante e cansativo.

Dedique a conhecer o máximo de CSS, lay-out fluído, responsividade, mascaras de entrada e uso de jQuery, depois de avançar nesta seara, então dedique um tempo para estudar a questão de lay-outs cross browsers. Acho que será mais produtivo.
GOSTEI 0
Gabriela Monte

Gabriela Monte

23/07/2015

Avançado mais um pouco a questão, o uso de frameworks para desenvolvimento de sites já ajuda?
GOSTEI 0
Jothaz

Jothaz

23/07/2015

Ajudam e mjuito.

Só acho que para quem esta começando é melhor começar do mais básico.

Estude e absorva os conceitos de .css, lay-out, manipulçaõ de controle, personalização de formulários e mascaras de entrada e construa algum site conceito e apresente para outras pessoal analisar.

Depois vá para jQuery, Bootstrap e responsividade.

Alguns links:

[url:descricao=Layout Fluido ou Líquido]http://www.designadaptavel.com.br/artigos/layout-fluido-ou-liquido[/url]

[url:descricao=Como criar um layout responsivo (adaptável) em HTML e CSS]http://www.todoespacoonline.com/post.php?id=2845[/url]

[url:descricao=Tudo sobre Layout Responsivo #02: Diferenças entre Layout Responsivo e Fluido]http://www.ferramentasblog.com/2012/05/tudo-sobre-layout-responsivo-02-diferencas-entre-layout-responsivo-e-fluido.html[/url]

Layout Fixo / Fluido de 3 colunas em 8 Minutos
GOSTEI 0
Gabriela Monte

Gabriela Monte

23/07/2015

Deixarei isso para mais tarde mesmo, aprender o básico e depois conhecer frameworks!

Obrigada pelas dicas Jothaz, tenha uma ótima tarde!
GOSTEI 0
POSTAR