Compreendendo o problema automático da margem de posicionamento absoluto
Ao aplicar "posição: absoluta" a um elemento com "margem esquerda: automática" e " margin-right: auto", você pode notar que as margens parecem não ter efeito. Esse comportamento difere de “posição: relativa”, onde as margens funcionam conforme o esperado. Para entender essa discrepância, vamos nos aprofundar na mecânica subjacente.
Quando um elemento é posicionado de forma absoluta, ele é removido do fluxo normal do documento. Isto significa que ele não interage mais com os elementos vizinhos e seu tamanho é determinado apenas pelas suas dimensões explícitas ou pelo tamanho do seu contêiner. Como resultado, se a largura do elemento não for definida explicitamente, o valor calculado pelo navegador será 'auto', que na maioria dos casos é 0.
Neste cenário, aplicando "margin-left: auto" e "margin-right: auto" tenta criar espaço ao redor do elemento definindo as margens esquerda e direita para metade da largura do elemento. No entanto, como a largura calculada do elemento é 0, o valor da margem calculada também se torna 0. É por isso que as margens parecem não ter efeito.
Em contraste, quando "posição: relativa" é usada, o elemento permanece no fluxo normal do documento. Seu tamanho é determinado pelo seu conteúdo e pelo espaço que ocupa dentro do fluxo. Quando "margin-left: auto" e "margin-right: auto" são aplicados, as margens são calculadas com base na largura real do elemento, que neste caso é diferente de zero. Portanto, as margens são aplicadas corretamente, resultando na centralização do elemento dentro do elemento que o contém.
Para centralizar um elemento absolutamente posicionado, você pode especificar sua largura e altura e então usar "position: absoluto; esquerda: 50 %; transformar: traduzir(-50%, -50%);" para centralizá-lo em seu contêiner. Este método posiciona com precisão o elemento no local desejado, mesmo quando as margens estão definidas como 'auto'.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3