Высота: 100% не работает
Я хочу, чтобы карусель DIV (s7) расширялся до высоты всего экрана. Я понятия не имею, почему это не удается. Чтобы просмотреть страницу, вы можете перейти здесь.
body {
height: 100%;
color: #FFF;
font: normal 28px/28px'HelveticaWorldRegular', Helvetica, Arial, Sans-Serif;
background: #222 url('') no-repeat center center fixed;
overflow: hidden;
background-size: cover;
margin: 0;
padding: 0;
}
.holder {
height: 100%;
margin: auto;
}
#s7 {
width: 100%;
height: 100%: margin: auto;
overflow: hidden;
z-index: 1;
}
#s7 #posts {
width: 100%;
min-height: 100%;
color: #FFF;
font-size: 13px;
text-align: left;
line-height: 16px;
margin: auto;
background: #AAA;
}
<div class="nav">
<a class="prev2" id="prev2" href="#">
<img src="http://static.tumblr.com/ux4v5bf/ASslogxz4/left.png">
</a>
<a class="next2" id="next2" href="#">
<img src="http://static.tumblr.com/ux4v5bf/swslogxmg/right.png">
</a>
</div>
<div class="holder">
<tr>
<td>
<div id="s7">
{block:Posts}
<div id="posts">
Ответы
Ответ 1
Чтобы процентное значение работало для высоты, необходимо определить родительскую высоту. Единственным исключением является элемент root <html>
, который может составлять процентную высоту..
Итак, вы указали все свои высоты элементов, за исключением <html>
, поэтому вам следует добавить следующее:
html {
height: 100%;
}
И ваш код должен работать нормально.
* { padding: 0; margin: 0; }
html, body, #fullheight {
min-height: 100% !important;
height: 100%;
}
#fullheight {
width: 250px;
background: blue;
}
<div id=fullheight>
Lorem Ipsum
</div>
Ответ 2
Так как никто не упомянул об этом.
Современный подход:
В качестве альтернативы для установки высоты элементов html
/body
до 100%
вы также можете использовать длины в разрезе в процентах:
5.1.2. Длины в процентах по видовому экрану: vw, vh, vmin, vmax units
Длины в процентах в окне просмотра относятся к размеру исходного содержащего блока. Когда высота или ширина исходного содержащего блока изменяется, они соответственно масштабируются.
В этом случае вы можете использовать значение 100vh
(которое является высотой области просмотра) - (пример)
body {
height: 100vh;
}
Настройка a min-height
также работает. (пример)
body {
min-height: 100vh;
}
Эти устройства поддерживаются в большинстве современных браузеров - поддержка можно найти здесь.
Ответ 3
Вам также нужно установить высоту 100% в элементе html
:
html { height:100%; }
Ответ 4
В качестве альтернативы, если вы используете position: absolute
, тогда height: 100%
будет работать нормально.
Ответ 5
если вы хотите, например, левый столбец (высота 100%) и контент (высота авто)
вы можете использовать absolute:
#left_column {
float:left;
position: absolute;
max-height:100%;
height:auto !important;
height: 100%;
overflow: hidden;
width : 180px; /* for example */
}
#left_column div {
height: 2000px;
}
#right_column {
float:left;
height:100%;
margin-left : 180px; /* left column width */
}
в html:
<div id="content">
<div id="left_column">
my navigation content
<div></div>
</div>
<div id="right_column">
my content
</div>
</div>
Ответ 6
Вы должны попробовать с родительскими элементами;
html, body, form {
height: 100%;
}
Тогда этого будет достаточно:
#s7 {
height: 100%;
}
Ответ 7
Это может быть не идеальным, но вы всегда можете сделать это с помощью javascript.
Или в моем случае jQuery
<script>
var newheight = $('.innerdiv').css('height');
$('.mainwrapper').css('height', newheight);
</script>
Ответ 8
В источнике страницы я вижу следующее:
<div class="holder">
<div id="s7" style="position: relative; width: 1366px; height: 474px; overflow: hidden;">
Если вы поместите значение высоты в тег, он будет использовать это вместо высоты, определенной в файле css.
Ответ 9
Если вы абсолютно позиционируете элементы внутри div, вы можете установить верхнюю и нижнюю части прокладки на 50%.
Так что-то вроде этого:
#s7 {
position: relative;
width:100%;
padding: 50% 0;
margin:auto;
overflow: hidden;
z-index:1;
}