2015-05-05 4 views
0

Я хотел бы знать, есть ли способ создать полную высоту div с css.Полная высота div

Я пробовал абсолютное позиционирование, но это не так гибко, как хотелось бы, но это мой текущий метод.

Ящики для гибких дисков не являются вариантом из-за соображений совместимости.

.line{ 
    background-image: linear-gradient(red 0%, blue 100%); 
    width: 1px; 
    margin-right: -1px; 
    float: left; 
    height: 100px; /*Fixed height at the moment*/ 
} 

JS Fiddle example


Вот текущий метод я использую: абсолютное позиционирование.

Не каждая ширина коробки подходит для бутстрапа. (Я на самом деле есть один для каждого седловине в начальной загрузки)

.line{ 
    background-image: linear-gradient(red 0%, blue 100%); 
    width: 1px; 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 33.33333%; 
} 

Current Method JS Fiddle

+0

'Высота: 100%;' сделает его высота его родителя. Если родителем является тело, тогда добавьте 'html, body {height: 100%; } '. – Ruddy

+0

@Ruddy Для каждой родительской родительской точки или для фиксированной высоты потребуется «высота: 100%». Гибкие контейнеры высотой не могут быть такими. – AlexG

+0

Вы не дали нам всю необходимую нам информацию? Ваши вопросы не так понятны. Вы пытаетесь создать наложение или что-то еще? Создайте рабочую демонстрацию проблемы. – Ruddy

ответ

0

Вы можете использовать vh (текущий видовой экран)

CSS

.line{ 
    background-image: linear-gradient(red 0%, blue 100%); 
    width: 1px; 
    margin-right: -1px; 
    float: left; 
    height: 80vh; /*Full screen Height*/ 
} 

DEMO HERE

+0

будет работать только в том случае, если сайт не больше текущего окна просмотра. Что делать, если сайт в два раза превышает высоту? с высотой тела 3000px http://jsfiddle.net/nxgw3kdo/11/ – Aaron

+0

Я уже отвечаю на этот вопрос: http://stackoverflow.com/questions/30035083/css-custom-div-height/30035159?noredirect=1# комментарии48187269_30035159 –

+0

@ LuisP.A. «vh» также нецелесообразно, поскольку в основном это фиксированная высота в зависимости от высоты видового экрана. – AlexG

0

Я не уверен, что понял вашу проблему, но попробуйте следующий код?

.content{ 
    background-color: red; // color was for the test 
    height: 100%; 
    padding: 3px; 
} 
+0

Высота 100% будет работать только в том случае, если '.content' является абсолютным. – Aaron

+0

Вы просто меняете фоновый цвет на красный ... Редактирование: я знаю, что это для тестирования, но следующий код уже в моем первом скрипте. X) – AlexG

+0

Извините, это был только просмотр содержимого (тест). – carton

0
body { margin:0; /* This is used to reset any browser-default margins */ } 

div { 
    height:100vh; 
    background:#f00; 
    color:#fff; 
} 

Это применяется к сНу надеюсь, что это помогает ..

+0

это вообще не работает. Кроме того, «vh» в основном является фиксированной высотой в зависимости от области просмотра. – AlexG

0

.Строка должна быть полная высота контейнера, а не фиксированной высоты. Это в основном все. Я отредактирую свой пост с рабочим примером. - AlexG 5 мая в 9:26

Ваш текущий метод абсолютного позиционирования уже делает это. .line - 100% от высоты .row. Я думаю, вы просите высоты .line, чтобы взять полную высоту .panel-body. Если это правильное предположение, вам просто нужно переместить position:relative; от .row до .panel-body (См. Фрагмент).

Отрывок

.panel-body { 
 
    position:relative; 
 
    } 
 

 
.line1{ 
 
    background-image: linear-gradient(red 0%, blue 100%); 
 
    width: 1px; 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0; 
 
    left: 33.33333%; 
 
} 
 
.line2{ 
 
    background-image: linear-gradient(red 0%, blue 100%); 
 
    width: 1px; 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0; 
 
    left: 66.66666%; 
 
} 
 
.content{ 
 
    background-color: #EDFBFF; 
 
    height: 100px; 
 
    padding: 3px; 
 
} 
 
.container{ 
 
    margin-top: 20px; 
 
}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="container"> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h3 class="panel-title">Full height div</h3> 
 
     </div> 
 
     <div class="panel-body"> 
 
      <div class="row"> 
 
       <div class="col-xs-4"> 
 
        <div class="content" style="height: 150px;">line should fill 100% of the height automatically</div> 
 
       </div> 
 
       <div class="line1"></div> 
 
       <div class="col-xs-4"> 
 
        <div class="content" style="height: 200px;">absolute positioning is unpractical, but my current solution with "left: 50%;" for example. </div> 
 
       </div> 
 
       <div class="line2"></div> 
 
       <div class="col-xs-4"> 
 
        <div class="content" style="height: 300px;">flex is also not an option for compatibility reasons</div> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

Смежные вопросы