2017-02-15 3 views
0

В следующем HTML я вручную установил высоту среднего div 200px. Как настроить эту высоту автоматически, чтобы высота div соответствовала высоте видимой области в браузере? Можно ли это сделать с помощью чистого CSS или мне нужен JavaScript?Настройка высоты div на основе видимой области

<p>Scroll Up and Down this page to see the parallax scrolling effect.</p> 

<div class="parallax"></div> 

<div class="red"> 
Scroll Up and Down this page to see the parallax scrolling effect. 
This div is just here to enable scrolling. 
Tip: Try to remove the background-attachment property to remove the scrolling effect. 
</div> 

И CSS:

.parallax { 
    /* The image used */ 
    background-image: url("http://az-themes.bluxart.netdna-cdn.com/ibuki/wp-content/uploads/2014/06/blog-img.jpg"); 

    /* Set a specific height */ 
    height: 200px; 

    /* Create the parallax scrolling effect */ 
    background-attachment: fixed; 
    background-position: center; 
    background-repeat: no-repeat; 
    background-size: cover; 

} 

.red { 
    height:1000px; 
    background-color:red; 
    color:white; 
    font-size: 40px; 
} 

Wokring пример можно найти here.

+1

Использование 100vh (единица измерения В.Х. является высота окна просмотра), как высота в CSS. 100 говорит, что он равен 100 и высоте просмотра. У вас также есть vw для ширины. – creativekinetix

+0

Поддержка браузера 'vh': http://caniuse.com/#feat=viewport-units – Sebastian

+0

Это довольно широко поддерживается. Даже в IE вы теряете только часть vmax. Существуют и другие ошибки, связанные с печатью и 3D-преобразованиями, но я не думаю, что это большая проблема. – creativekinetix

ответ

4

Используйте блок vh для этого - так 200px становится 100vh, чтобы заполнить всю высоту экрана.

Но удостоверьтесь, что вы включили min-height, на время, когда ваш контент больше, чем может отображаться в окне просмотра.

Что касается совместимости этого:

http://caniuse.com/#feat=viewport-units

Firefox: Поддерживается начиная с Firefox 19 (2013)

Chrome: Поддерживается начиная с частично, так как Chrome 20 (2012), общей поддержки, так как Chrome 26 (2013)

Сафари: Поддерживается начиная с частично, так как Safari 6 (2012), общей поддержки, так как Safari 6.1 (2013)

IE: Частичная поддержка, так как IE 9 (2011)

Края: Частичная поддержка, так как Край 12 (2015)

Когда я говорю частичная поддержка, во всех этих случаях является то, что они не поддерживают vmax, которые вы все равно не используете для этого.

.parallax { 
 
    /* The image used */ 
 
    background-image: url("http://az-themes.bluxart.netdna-cdn.com/ibuki/wp-content/uploads/2014/06/blog-img.jpg"); 
 
    /* Set a specific height */ 
 
    height: 100vh; 
 
    /* Create the parallax scrolling effect */ 
 
    background-attachment: fixed; 
 
    background-position: center; 
 
    background-repeat: no-repeat; 
 
    background-size: cover; 
 
} 
 
.red { 
 
    height: 1000px; 
 
    background-color: red; 
 
    color: white; 
 
    font-size: 40px; 
 
}
<p>Scroll Up and Down this page to see the parallax scrolling effect.</p> 
 

 
<div class="parallax"></div> 
 

 
<div class="red"> 
 
    Scroll Up and Down this page to see the parallax scrolling effect. This div is just here to enable scrolling. Tip: Try to remove the background-attachment property to remove the scrolling effect. 
 
</div>

Вы также можете сделать это с помощью JQuery, используя .height(), чтобы получить высоту окна.

$(document).ready(function() { 
 

 
    wh = $(window).height(); 
 

 
    $(".parallax").css({ 
 
    "height": wh 
 
    }); 
 

 
});
.parallax { 
 
    /* The image used */ 
 
    background-image: url("http://az-themes.bluxart.netdna-cdn.com/ibuki/wp-content/uploads/2014/06/blog-img.jpg"); 
 
    /* Set a specific height */ 
 
    height: 100vh; 
 
    /* Create the parallax scrolling effect */ 
 
    background-attachment: fixed; 
 
    background-position: center; 
 
    background-repeat: no-repeat; 
 
    background-size: cover; 
 
} 
 
.red { 
 
    height: 1000px; 
 
    background-color: red; 
 
    color: white; 
 
    font-size: 40px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Scroll Up and Down this page to see the parallax scrolling effect.</p> 
 

 
<div class="parallax"></div> 
 

 
<div class="red"> 
 
    Scroll Up and Down this page to see the parallax scrolling effect. This div is just here to enable scrolling. Tip: Try to remove the background-attachment property to remove the scrolling effect. 
 
</div>

+1

Это здорово, но меня беспокоит совместимость, так как 'vh' кажется [новой функцией] (http: // caniuse.com/# feat = viewport-units) поддерживается только в нескольких браузерах. – Meysam

+0

@Meysam см. Мой комментарий к вашему вопросу, но я уточню свой ответ с более подробным объяснением этого. –

+0

Благодарим за помощь. Было бы здорово, если бы вы могли предложить идеи об альтернативных способах сделать это, если это вообще возможно. – Meysam

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