2015-11-07 3 views
0

У меня проблема с отзывчивым слайдером внутри обертки. Когда я изменяю размер окна браузера по вертикали (горизонтально настраивается на ширину обертки), оболочка меняет свои размеры, а ползунок выходит за его пределы. Я пытался решить это разными способами, но я не могу найти хорошее решение.Отзывчивый слайдер выходит за пределы обертки

CSS

* { 
    box-sizing: border-box; 
    padding: 0; 
    margin: 0; 
} 

body { 
    margin: 0 !important; 
    font-family: 'Lato', sans-serif; 
    background-color: #fff; 
    color: #161616; 
} 

#wrapper { 
    position: fixed; 
    width: 90%; 
    height: 75%; 
    margin-top: 5%; 
    margin-left: 5%; 
    background-color: #f2f2f2; 
} 

.logo{ 
    position:absolute; 
    width: 100px; 
    height: 94px; 
    margin-top: -26px; 
    margin-left: 50px; 
    background-image: url('images/logo.png'); 
    background-image: no-repeat; 
} 

.nav { 
    float: right; 
    margin-top: 35px; 
    margin-right: 35px; 
} 

.nav ul { 
    padding: 0; 
    margin: 0; 
    list-style: none; 
} 

.nav ul li { 
    float: left; 
} 

.nav ul li a { 
    color: #161616; 
    /*font-family: Verdana;*/ 
    text-decoration: none; 
    font-size: 14px; 
    letter-spacing: 2px; 

} 

.nav ul li a:hover { 
    color: #cccccc; 
} 

.nav ul li:nth-child(n+2) { 
    margin-left: 23px; 
} 


img { 
    max-width: 100%; 
} 
.cycle-slideshow { 
    position:relative; 
    display:block; 
    width: 60%; 
    max-width: 960px; 
    margin: 90px 20%; 
    overflow:auto; 
} 

.cycle-prev, .cycle-next { 
    position: absolute; 
    display:block; 
    top: 37%; 
    font-size: 200%; 
    color: #161616; 
    cursor: pointer; 
    z-index: 9999; 
} 

.cycle-prev { 
    left: 0; 
} 

.cycle-next { 
    right: 0; 
} 

.footer{ 
    position:fixed; 
    padding: 38px 0; 
    left: 5%; 
    bottom: 0; 
    width: 90%; 
    height: 85px; 
    font-size: 12px; 
    text-align: center; 
    letter-spacing: 1px; 
} 

HTML

<div id="wrapper"> 
    <header> 
     <div class="logo"></div> 
     <div class="nav"> 
      <ul> 
       <li><a href="#">First</a></li> 
       <li><a href="#">Second</a></li> 
       <li><a href="#">Third</a></li> 
      </ul> 
     </div> 
    </header> 
    <div class="cycle-slideshow"> 
     <span class="cycle-prev">&#10092;</span> 
     <span class="cycle-next">&#10093;</span> 
     <img src="images/bg.png" alt="Robak" /> 
     <img src="images/bg2.png" alt="Robak" /> 
    </div> 
    <div class="footer">Footer info.</div> 
</div> 

ответ

0

Вы работаете JQuery цикла плагин? Вы хотите изменить размер слайд-шоу, чтобы избежать вертикальной прокрутки при изменении размера окна? Что не так, если разрешить прокрутку страницы при уменьшении вертикального пространства.

Edit: Попробуйте это ...

http://codepen.io/robotslater/pen/YyJNER

* { 
 
    box-sizing: border-box; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
body { 
 
    margin: 20px; 
 
    font-family: 'Lato', sans-serif; 
 
    background-color: #fff; 
 
    color: #161616; 
 
} 
 

 
#wrapper { 
 
    position: absolute; 
 
    left: 30px; 
 
    right: 30px; 
 
    top: 30px; 
 
    bottom: 30px; 
 
    background-color: #f2f2f2; 
 
} 
 

 
.logo { 
 
    position: absolute; 
 
    width: 100px; 
 
    height: 94px; 
 
    margin-top: -26px; 
 
    margin-left: 50px; 
 
    background-image: url('images/logo.png'); 
 
    background-image: no-repeat; 
 
} 
 

 
.nav { 
 
    float: right; 
 
    margin-top: 35px; 
 
    margin-right: 35px; 
 
} 
 

 
.nav ul { 
 
    padding: 0; 
 
    margin: 0; 
 
    list-style: none; 
 
} 
 

 
.nav ul li { 
 
    float: left; 
 
} 
 

 
.nav ul li a { 
 
    color: #161616; 
 
    /*font-family: Verdana;*/ 
 
    
 
    text-decoration: none; 
 
    font-size: 14px; 
 
    letter-spacing: 2px; 
 
} 
 

 
.nav ul li a:hover { 
 
    color: #cccccc; 
 
} 
 

 
.nav ul li:nth-child(n+2) { 
 
    margin-left: 23px; 
 
} 
 

 
img { 
 
    max-width: 100%; 
 
} 
 

 
.cycle-slideshow { 
 
    position: absolute; 
 
    display: block; 
 
    top: 90px; 
 
    left: 20%; 
 
    right: 20%; 
 
    bottom: 30px; 
 
    overflow: auto; 
 
} 
 

 
.cycle-prev, 
 
.cycle-next { 
 
    position: absolute; 
 
    display: block; 
 
    top: 37%; 
 
    font-size: 200%; 
 
    color: #161616; 
 
    cursor: pointer; 
 
    z-index: 9999; 
 
} 
 

 
.cycle-prev { 
 
    left: 0; 
 
} 
 

 
.cycle-next { 
 
    right: 0; 
 
} 
 

 
.cycle-slideshow > div { 
 
    width: 100%; 
 
    height: 100%; 
 
    background: #eee; 
 
    background-size: auto 100%; 
 
    background-position: center center; 
 
    background-repeat: no-repeat; 
 
    position: absolute; 
 
} 
 

 
.footer { 
 
    position: absolute; 
 
    left: 0; 
 
    bottom: 0; 
 
    right: 0; 
 
    font-size: 12px; 
 
    text-align: center; 
 
    letter-spacing: 1px; 
 
    line-height: 30px; 
 
    z-index: 9999999; 
 
}
<div id="wrapper"> 
 
    <header> 
 
    <div class="logo"></div> 
 
    <div class="nav"> 
 
     <ul> 
 
     <li><a href="#">First</a></li> 
 
     <li><a href="#">Second</a></li> 
 
     <li><a href="#">Third</a></li> 
 
     </ul> 
 
    </div> 
 
    </header> 
 
    <div class="cycle-slideshow" data-cycle-slides="> div"> 
 
    <span class="cycle-prev">&#10092;</span> 
 
    <span class="cycle-next">&#10093;</span> 
 

 
    <div style="background-image:url(http://s3.freefoto.com/images/9912/01/9912_01_1095_web.jpg)"></div> 
 
    <div style="background-image:url(http://www.keenthemes.com/preview/conquer/assets/plugins/jcrop/demos/demo_files/image2.jpg)"></div> 
 
    </div> 
 
    <div class="footer">Footer info.</div> 
 
</div>

+0

Да, точно - это JQuery цикл плагин. Конечно, я бы хотел избежать вертикальной прокрутки при изменении размера окна. Когда я уменьшаю размер окна браузера по вертикали, я хотел бы сделать это так же, как слайдер, согласованный по горизонтали. Но я не могу найти какое-либо решение, и когда я уменьшаю окно по вертикали, слайдер выходит за пределы оболочки. – Daminski

+0

Существует не такой тип поддержки вертикального изменения размера, как горизонтальное изменение размера. Если вы абсолютно позиционируете элементы, вы можете использовать CSS для реагирования на высоту окна. Предоставлен ли HTML весь контент на странице или есть ли контент ниже слайд-шоу? Если да, то это только слайд-шоу, который вы хотите сохранить выше складки? –

+0

Да, под слайд-шоу вы можете найти нижний колонтитул с некоторым текстом. Нижний колонтитул должен быть прямо там, только под слайдером и оберточным фоном .., который содержит - логотип, навигатор, слайдер и нижний колонтитул. – Daminski

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