У меня есть такой код:Возможно ли вертикально выровнять различные текущие относительные или статические позиционированные элементы внутри флюида?
<div id="virtual-studio" class="banner-box">
<a href="some_url" target="_blank">
<img src="some.png" alt="some_alt" class="logo">
</a>
<div class="banner-text">
<img src="some.png" alt="" />
</div>
<a href="some_url" target="_blank" class="see-more-button">
<img src="some.png" alt="some_alt" />
</a>
</div>
и здесь стили к этому знамени коробки:
.banner-box {
display: inline-block;
width: 26%;
max-width: 26%;
min-height: 100%;
max-height: 100%;
height: 100%;
margin: 0 auto;
}
.banner-box a {
display: block;
clear: both;
width: 100%;
top: 0;
margin: 0 auto;
padding: 0;
}
.logo {
position: relative;
display: block;
clear: both;
margin: 0 auto;
}
.banner-text {
display: block;
clear: both;
width: 100%;
margin: 0 auto;
}
.banner-text img {
position: relative;
display: block;
clear: both;
margin: 0 auto;
}
.see-more-button {
display: block;
clear: both;
width: 100%;
bottom: 0;
margin: 0 auto;
padding: 0;
}
.see-more-button img {
position: relative;
display: block;
clear: both;
margin: 0 auto;
}
Есть три таких коробки, выровнены по горизонтали - левый, средний, правый - и они 'внутри коробки большего размера с именем #content, который находится в другой коробке с именем #container.
Весь мой макет должен быть 100% -ной жидкостью - я не использовал пиксели нигде - просто проценты.
Я хотел бы структурировать эти три изображения, чтобы они были выровнены по вертикали внутри коробки, в стиле «верхний-средний-нижний», но без необходимости фиксировать хотя бы один элемент фиксированного размера.
Каждый элемент в макете должен иметь процентный размер. Также изображения, которые я использую, должны быть текучими.
Вот весь .html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="style.css">
<link href="http://fonts.googleapis.com/css?family=Open+Sans:300italic,300,400italic,400,600italic,600,700italic,700,800italic,800" rel="stylesheet" type="text/css">
</head>
<body>
<div id="wrapper">
<div id="header">
<div>
<img src="some.png" alt="some-alt" />
</div>
</div>
<div id="container">
<div id="content">
<div id="virtual-studio" class="banner-box">
<a href="some-url.com" target="_blank">
<img src="some.png" alt="some-alt" class="logo">
</a>
<div class="banner-text">
<img src="some.png" alt="some-alt" />
</div>
<a href="some-url.com" target="_blank" class="see-more-button">
<img src="some.png" alt="some-alt" />
</a>
</div>
<div id="mu-interactive" class="banner-box">
<a href="some-url.com" target="_blank">
<img src="some.png" alt="some-alt" class="logo">
</a>
<div class="banner-text">
<img src="some.png" alt="some-alt" />
</div>
<a href="some-url.com" target="_blank" class="see-more-button">
<img src="some.png" alt="some-alt" />
</a>
</div>
<div id="mu-animation" class="banner-box">
<a href="some-url.com" target="_blank">
<img src="some.png" alt="some-alt" class="logo">
</a>
<div class="banner-text">
<img src="some.png" alt="some-alt" />
</div>
<a href="some-url.com" target="_blank" class="see-more-button">
<img src="see-more.png" alt="some-alt" />
</a>
</div>
</div>
<div id="shadows">
<img src="shadows.png" alt="Shadows" />
</div>
</div>
<div id="footer">
<img src="footer-line.png" alt="Footer.png" />
<div id="contact">
<p><span>company</span> co.</p>
<p>mail: <span>contact@mail.com</span></p>
</div>
</div>
</div>
</body>
</html>
и .css:
/*@import url("http://fonts.googleapis.com/css?family=Open+Sans:300italic,300,400italic,400,600italic,600,700italic,700,800italic,800");
*/
/** {
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
/*-moz-box-sizing: border-box; /* Firefox, other Gecko */
/*box-sizing: border-box; /* Opera/IE 8+ */
/*}*/
html {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
/*-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;*/
}
body {
/*position: relative;*/
width: 100%;
height: 100%;
margin: 0;
padding: 0;
text-align: center;
/*font-size: 15px;*/
font: 1em 'Open Sans', Arial, Helvetica, sans-serif;
/*font: "Arial Black", Gadget, sans-serif;*/
}
img {
max-width: 100%;
height: auto;
/*display: block;
clear: both;
position: relative;
margin: 0 auto;*/
}
#wrapper {
position: absolute;
margin: 10% 15%;
}
#header {
/*position: relative;*/
display: block;
clear: both;
width: 100%;
height: 24%;
margin: 0 auto;
padding: 0 auto;
}
#header div {
/*position: relative;*/
display: block;
clear: both;
width: 100%;
height: 100%;
margin: 0 auto;
padding: 0 auto;
}
#header img {
position: relative;
display: block;
clear: both;
/*width: auto;
height: auto;*/
margin: 0 auto;
/*left: 0; right: 0; bottom: 0;*/
}
#container {
position: relative;
display: block;
width: 100%;
height: 70%;
margin: 0 auto;
padding: 7% 0 0 0;
text-align: center;
}
#content {
position: relative;
display: block;
width: 100%;
height: 85%;
margin: 0 auto;
padding: 0;
text-align: center;
}
.banner-box {
/*position: relative;*/
display: inline-block;
width: 26%;
max-width: 26%;
min-height: 100%;
max-height: 100%;
height: 100%;
margin: 0 auto;
}
.banner-box a {
/*position: relative;*/
display: block;
clear: both;
width: 100%;
/*min-height: 50%;
height: 50%;*/
top: 0;
margin: 0 auto;
padding: 0;
}
.logo {
position: relative;
/*display: inline-block;*/
display: block;
clear: both;
/*width: 100%;
height: 100%;*/
margin: 0 auto;
/*vertical-align: top;*/
}
.logo:hover {
cursor: pointer;
height: auto;
width: auto;
transform:scale(1.1);
-ms-transform:scale(1.1); /* IE 9 */
-moz-transform:scale(1.1); /* Firefox */
-webkit-transform:scale(1.1); /* Safari and Chrome */
-o-transform:scale(1.1); /* Opera */
}
.banner-text {
/*position: relative;*/
/*display: inline-block;*/
display: block;
clear: both;
width: 100%;
/*height: 25%;
min-height: 25%;*/
margin: 0 auto;
top: 50%;
/*padding: 5% 0;
/*font: 0/0 a;
vertical-align: middle;*/
}
.banner-text img {
position: relative;
display: block;
clear: both;
margin: 0 auto;
/*vertical-align: middle;*/
}
.see-more-button {
/*position: relative;*/
display: block;
clear: both;
width: 100%;
/*height: 25%;
min-height: 25%;*/
/*vertical-align: bottom;*/
bottom: 0;
margin: 0 auto;
padding: 0;
}
.see-more-button img {
position: relative;
display: block;
clear: both;
/*width: 100%;
/*height: 100%;*/
margin: 0 auto;
/*font: 0/0 a;*/
}
#virtual-studio {
/*position: relative;
display: inline-block;*/
float: left;
/*width: 290px;
margin: 0 auto;*//*margin: auto;
top: 0; left: 0; bottom: 0; right: 0;*/
}
/*#virtual-studio a {
}
#virtual-studio a img {
}*/
/*#mu-interactive {
/*position: relative;
display: inline-block;*/
/*float: left;*/
/*width: 290px;
margin: 0 auto;*//*margin: auto;
top: 0; left: 0; bottom: 0; right: 0;
}*/
/*#mu-interactive a {
}
#mu-interactive a img {
}*/
#mu-animation {
/*position: relative;
display: inline-block;*/
float: right;
/*width: 290px;
margin: 0 auto;*//*margin: auto;
top: 0; left: 0; bottom: 0; right: 0;*/
}
/*
#mu-animation a {
}
#mu-animation a img {
}/*
/*#virtual-studio a img:hover, #mu-interactive a img:hover, #mu-animation a img:hover {
width: 101%;
height: 101%;
}*/
#shadows {
/*position: relative;*/
display: block;
clear: both;
width: 100%;
height: 10%;
margin: 0 auto;
}
#shadows img {
position: relative;
display: block;
clear: both;
margin: 0 auto;
width: 100%;
/*height: 100%;*/
/*bottom: 15%;*/
/*height: 100%;
top: 0; right: 0; left: 0;*/
}
#footer {
position: relative;
display: block;
clear: both;
width: 100%;
height: auto;
margin: 0 auto;
padding: 0 0 0 0;
/*font-size: 1em;*/
/*top: 0; right: 0; left: 0;*/
}
#footer img {
position: relative;
display: block;
clear: both;
width: 95%;
/*height: auto;*/
margin: 0 auto;
/*padding: 2% 0 0 0;
/*top: 0; right: 0; left: 0;*/
}
#footer #contact {
position: relative;
margin: 1% 0 0 0;
}
#footer p {
display: block;
clear: both;
/*position: relative;*/
margin: 0 auto;
color: #AFBEA5;
text-align: center;
width: auto;
}
#footer span {
font-weight: bold;
color: #BDC9AF;
}
@media only screen
and (max-device-width: 320px) {
html {
background: url('some-background-320.png') no-repeat center center fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
}
}
@media only screen
and (min-device-width: 321px)
and (max-device-width: 480px) {
html {
background: url('some-background-480.png') no-repeat center center fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
}
}
@media only screen
and (min-device-width: 481px)
and (max-device-width: 768px) {
html {
background: url('some-background-768.png') no-repeat center center fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
}
}
@media only screen
and (min-device-width: 767px)
and (max-device-width: 1024px) {
html {
background: url('some-background-1024.png') no-repeat center center fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
}
}
@media only screen
and (min-device-width: 1025px)
and (max-device-width: 1680px) {
html {
background: url('some-background-1680.png') no-repeat center center fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
}
}
@media only screen
and (min-device-width: 1681px) {
html {
background: url('some-background-1920.png') no-repeat center center fixed;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: 100% 100%;
}
}
Я попытался использовать позицию: абсолютная; или изменить на дисплей: table-cell;, но ничего не получалось - может быть, я сделал ошибку где-то, при попытке это ..
При размещении изображения в абсолют, они рухнули из собственных контейнеров и даже от # баннерной коробки контейнера
Моя основная проблема заключается в том, что я не знаю, как заставить каждый элемент страницы вести себя как фиксированный размер, но все еще описывается через проценты. И, как структурировать этот контейнер # баннерной коробки, чтобы он растянулся на #content 100% высоты, а затем выровняйте эти изображения по вертикали внутри # banner-box.
Я бы предпочел не использовать линию JS, без фреймворков и основывать свой макет на 100% по процентам, поэтому я и ломаю голову над этой проблемой. Я бы хотел использовать только XHTML/CSS2 или HTML5/CSS3, но чтобы этот сайт работал на IE8 + и современных браузерах.
Но если не будет никакой возможности использовать даже пиксель, какой размер сетки (фиксированный размер сайта, а не сетка, например, Bootstrap .etc), был бы лучше для меня? 960px или 1024px?
Приветствия и извините, если мой простой & глупый (возможно), но для меня жесткий, проблема раздражает вас.
tl: dr, есть демо для нас? –
Обычно у вас будет больше шансов получить ответы, которые вы ищете, и ускорить их, сделав код коротким и точным. Попробуйте удалить любой код, который напрямую не участвует в той части, где возникла ваша проблема, или попробуйте сделать упрощенный аналогичный код, который проявляет ту же проблему для вас. – Joeytje50
Абсолютные контейнеры * вне потока нормального содержимого *, похожие на поплавки, поэтому неудивительно, что они рушится. Вы можете не использовать JS, но вам в значительной степени придется центрировать вертикально. В CSS нет надежного способа, если вы не ограничиваете его заранее определенными ограничениями. Кроме того, ** скопируйте соответствующий код в jsfiddle, чтобы люди могли настроить ваш код !!! *** –