Como centralizar uma IMG na horizontal no interior de DIV contêiner?
Boa noite.Estou montando um layout de 3 colunas, no qual as colunas esquerda e direita devem ter larguras fixas de 300px e a coluna central se ajustar no que sobra. Quanto ao layout está tudo OK, exatamente como preciso. Porém, no interior da DIV central, coloquei uma IMG, a qual quero que sempre ocupe 100% da altura dessa DIV e que ela fique centralizada no horizontal, não importando se a largura da DIV na qual esta IMG está contida tenha largura maior ou menor do que a largura da própria IMG. Quanto a ocupar 100% da altura está OK, não importa o como eu redimensione a janela do browser ela está se auto-ajustando como desejado. Porém, ela não está ficando centralizada na horizontal, como é o objetivo. Ela está ficando sempre alinhada à esquerda, exceto quando a largura da DIV é maior que a largura da IMG, aí neste caso sim a IMG está ficando perfeitamente centralizada da DIV contêiner, como é o objetivo. Agora, quando a largura da DIV é menor do que a largura da IMG, a IMG está ficando alinhada à esquerda, cortando partes da imagem somente no seu lado direito.Estou fazendo os testes em um desktop com resolução de 1920x1080 e a imagem que estou usando na IMG tem 1680x945px.Seguem os códigos HTML e CSS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!doctype html>
<html lang="pt-br">
<head>
<link type="text/css" rel="stylesheet" href="code/css/estudo.css">
</head>
<body>
<div id="main">
<div id="viewport_left" class="viewports">
</div>
<div id="viewport_center" class="viewports">
<img id="imagem_teste" src="imagem_teste_01.jpg">
</div>
<div id="viewport_right">
</div>
</div>
<div id="footer">
</div>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
* {
margin: 0;
padding: 0;
text-align: center;
overflow: hidden;
}
#main {
width: 100%;
margin: 0;
}
#viewport_left {
min-height: calc(100vh - 25px);
margin-bottom: 25px;
width: 324px;
background-color: #333333;
position: fixed;
left: 0;
top: 0;
}
#viewport_center {
min-height: calc(100vh - 25px);
width: calc(100vw - 650px);
margin-bottom: 25px;
border-left: 1px solid #FFFFFF;
border-right: 1px solid #FFFFFF;
background-color: red;
position: absolute;
left: 50%;
top: 50%;
margin-left: calc(((100vw - 648px) / 2)* -1);
margin-top: calc((100vh / 2)* -1);
display: table;
overflow: hidden;
}
#imagem_teste {
max-height: calc(100vh - 25px);
position: absolute;
width: auto;
height: auto;
}
#viewport_right {
min-height: calc(100vh - 25px);
margin-bottom: 25px;
width: 324px;
background-color: #333333;
position: fixed;
right: 0;
top: 0;
}
#footer {
position: fixed;
bottom: 0;
left: 0;
height: 24px;
width: 100%;
background-color: #333333;
border-top: 1px solid #FFFFFF;
text-align: center;
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
color: #FFFFFF;
}
Alguém sabe como posso corrigir este problema?Desde já agradeço a toda e qualquer ajuda e colaboração.Grato, Evair Peterson.Discussão (1)
Carregando comentários...