2017-06-14 2 views
0

enter image description here Position fixiert Element überlappt in Fußzeile

<header class="entry-header"> 
 

 
\t \t <div class="right-side"> 
 
     
 
     <h1 class="entry-title">Desk</h1><p>$99</p><p>500x200x600</p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent molestie velit erat, nec porta diam fringilla vel. Nunc id euismod purus. Sed enim tellus, auctor a tempor eget, mattis sit amet massa. Etiam imperdiet elit eu faucibus vestibulum. Fusce ultrices ex quis turpis vulputate vehicula. Nulla laoreet vulputate nunc ac pretium. Pellentesque ac velit nec quam rhoncus sagittis eget porttitor lectus. Curabitur egestas vehicula lacinia. Proin ullamcorper, orci id dapibus viverra, libero ex imperdiet ex, quis lacinia dui dui vel est. Quisque condimentum nulla non elit rutrum, non mollis enim volutpat. Vestibulum mattis at magna sed porta. Cras venenatis ex dignissim nisl facilisis maximus. Integer efficitur vel augue vitae consequat. Sed ac fermentum lacus. Nulla facilisi.</p> 
 
    
 
\t \t 
 
\t \t \t <div class="before"> 
 

 
     <p>Before:</p> 
 

 
     <img class="beforeimage" src="img.jpg" alt="" /> 
 

 
\t \t \t </div><!-- end before --> 
 

 
\t \t </div><!--end right-side--> 
 
\t \t 
 
\t \t <!--repeater field--> 
 
\t \t <div class="left-side"> 
 
\t \t 
 
\t \t \t <ul class="slides"> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img1.jpg" alt="Featured Desk"> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img2.jpg" alt="Featured Desk"> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img3.jpg" alt=""> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img4.jpg" alt=""> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img5" alt=""> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t </ul> 
 

 
\t \t </div><!-- end left-side --> 
 

 
\t \t <!--end single furniture repeater--> 
 

 
\t \t \t 
 
</header><!-- .entry-header -->

Meine Seite ist in zwei Hälften geteilt. Das div, das die linke Seite umfasst, ist eine statische Position. Der div umfassende rechte Inhalt ist positionsfixiert. Das Problem, das ich habe, ist, wenn ich die Bildschirmbreite reduziere, die feste Position der rechten Seite überlappt in die Fußzeile. Es gibt auch eine div Surround links und rechts. Ich freue mich über jede Antwort/Vorschläge! Lassen Sie mich wissen, wenn mehr Kontext benötigt wird.

.left-side { 
 
\t display: flex; 
 
\t flex-direction: column; 
 
\t width: 50%; 
 
} 
 

 
.right-side { 
 
\t display: flex; 
 
\t flex-direction: column; 
 
\t margin-left: 50%; 
 
\t position: fixed; 
 
\t margin-right: $main-side-margins; 
 
}

+0

posten Sie Ihre html auch –

+0

Beitrag, den Sie vollständigen Code oder eine Demo erstellen Sie bitte –

+0

Sie sind nur für kleine Geräte das Problem haben. Verwenden Sie also die @ @ media-Abfrage für reaktionsschnelle und übergeordnete CSS. Bitte geben Sie den Code zum besseren Verständnis an. – acmsohail

Antwort

0

.entry-header { 
 
    \t position: reletive; 
 
    } 
 
    .left-side { 
 
    \t display: flex; 
 
    \t flex-direction: column; 
 
    \t width: 50%; 
 
    } 
 

 
    .right-side { 
 
    \t display: flex; 
 
    \t flex-direction: column; 
 
    \t margin-left: 50%; 
 
    \t position: fixed; 
 
    \t margin-right: $main-side-margins; 
 
    }
<header class="entry-header"> 
 

 
\t \t <div class="right-side"> 
 
     
 
     <h1 class="entry-title">Desk</h1><p>$99</p><p>500x200x600</p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent molestie velit erat, nec porta diam fringilla vel. Nunc id euismod purus. Sed enim tellus, auctor a tempor eget, mattis sit amet massa. Etiam imperdiet elit eu faucibus vestibulum. Fusce ultrices ex quis turpis vulputate vehicula. Nulla laoreet vulputate nunc ac pretium. Pellentesque ac velit nec quam rhoncus sagittis eget porttitor lectus. Curabitur egestas vehicula lacinia. Proin ullamcorper, orci id dapibus viverra, libero ex imperdiet ex, quis lacinia dui dui vel est. Quisque condimentum nulla non elit rutrum, non mollis enim volutpat. Vestibulum mattis at magna sed porta. Cras venenatis ex dignissim nisl facilisis maximus. Integer efficitur vel augue vitae consequat. Sed ac fermentum lacus. Nulla facilisi.</p> 
 
    
 
\t \t 
 
\t \t \t <div class="before"> 
 

 
     <p>Before:</p> 
 

 
     <img class="beforeimage" src="img.jpg" alt="" /> 
 

 
\t \t \t </div><!-- end before --> 
 

 
\t \t </div><!--end right-side--> 
 
\t \t 
 
\t \t <!--repeater field--> 
 
\t \t <div class="left-side"> 
 
\t \t 
 
\t \t \t <ul class="slides"> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img1.jpg" alt="Featured Desk"> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img2.jpg" alt="Featured Desk"> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img3.jpg" alt=""> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img4.jpg" alt=""> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t \t <li class="slide"> 
 

 
\t \t \t \t \t \t <img src="img5" alt=""> 
 

 
\t \t \t \t </li> 
 

 
\t \t \t 
 
\t \t \t </ul> 
 

 
\t \t </div><!-- end left-side --> 
 

 
\t \t <!--end single furniture repeater--> 
 

 
\t \t \t 
 
</header><!-- .entry-header -->

Nur position:relative für Ihre Header verwenden.

+0

Das schien nicht zu funktionieren. – awebdev

+0

bitte löschen, was willst du mit dem Layout? –

+0

Ich habe zwei Screenshots gepostet. Das habe ich gerade. – awebdev

0

Ich habe JavaScript hinzugefügt, um mein Problem zu lösen. Ich musste auch jQuery Waypoint verwenden. Was der JavaScript-Code tut, löst eine neue Klasse aus, die das rechte div "position: static" erzeugt, sobald der untere Teil des linken div in die Fensteransicht kommt. Dies verhindert, dass die rechte Seite jemals niedriger als die linke Seite wird, wodurch eine Überlappung in die Fußzeile verhindert wird. Ich habe den JS-Code und ein neues CSS angehängt.

.right-side-to-static { 
 
\t position: static !important; 
 
\t margin-top: 115%; 
 

 
\t @media only screen and (max-width: 1370px) { 
 
    \t \t margin-top: 100%; 
 
\t } 
 
\t 
 
\t @media only screen and (max-width: 1140px) { 
 
    \t \t margin-top: 75%; 
 
\t } 
 

 
\t @media only screen and (max-width: 890px) { 
 
    \t \t margin-top: 50%; 
 
\t } 
 

 
\t @media only screen and (max-width: 820px) { 
 
    \t \t margin-top: 40%; 
 
\t } 
 

 
\t @media only screen and (max-width: 730px) { 
 
    \t \t display: none; 
 
\t } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
const $rs = $('.right-side'); 
 
const $ls = $('.left-side'); 
 

 
let rsHeight = $('.right-side').height(); 
 
let lsHeight = $('.left-side').height(); 
 

 
let counter = 0; 
 

 
console.log(rsHeight); 
 

 
$ls.waypoint(function(direction){ 
 

 
    counter++ 
 

 
    if(counter > 2){ 
 
     console.log('bottom in view...'); 
 
     $rs.toggleClass('right-side-to-static'); 
 
    } 
 

 

 
    
 
},{ 
 
//bottom-in-view will ensure event is thrown when the element's bottom crosses 
 
//bottom of viewport. 
 
offset: 'bottom-in-view' 
 
});

Verwandte Themen