2016-07-18 3 views
1

div를 테두리로 사용하는 데 어려움이 있습니다. 나는 그것의 양쪽에 메인과 사이드 바 div를 가지고 있고 어느 쪽이 더 큰지에 따라 메인 div 나 사이드 바 div의 높이의 경계 div의 높이를 설정하려고합니다.Dynamic Border Div가 전혀 표시되지 않음

나는 비슷한 높이의 문제를 보려고했지만 그 (것)들을 일하게 만들 수 없다. This is the JsFiddle.


HTML

<div class="container"> 
     <div class="sidebar height"> 
      <div class="sidebar-inner"> 
       <img class="logo-sidebar" src="img/logo.jpg" /> 
       <img class="img-sidebar" src="img/pic1.jpg" /> 
      </div> 
     </div> 
     <div class="border"></div> 
     <div class="main border-inner height"> 
      <div class="main-inner"> 
       <img class="img" src="img/pic7.jpg" style="height: 300px;" /> 

      </div> 
     </div> 

CSS

.container { 
max-width: 926px; 
margin: 0 auto; 
background-color: #66AB98; 
color: #fff; 
overflow: hidden; 
} 

.sidebar { 
    float: left; 
    width: 26.1%; 
    padding-bottom: 2000px; 
    margin-bottom: -2000px; 
    display: block; 
} 

.sidebar-inner { 
    width: 96%; 
    margin: 30px 2%; 
} 

.main { 
    float: right; 
    width: 73%; 
    padding-bottom: 2000px; 
    margin-bottom: -2000px; 
    display: block; 
} 

.main-inner { 
    width: 96%; 
    margin: 30px 2%; 
} 

.border { 
    float: left; 
    width: .5%; 
    background-color: #000; 
    margin: 30px 0; 
} 

p { 
    text-indent: 30px; 
    font-size: 20px; 
    padding: 10px 0 10px 20px; 
} 

.img { 
    width: 500px; 
    display: block; 
    margin: 10px auto 0 auto; 
} 


/*--------------------- 
     Sidebar 
---------------------*/ 

.logo-sidebar { 
    width: 90%; 
    margin: 0 5%; 
    height: 500px; 
    display: block; 
} 

.img-sidebar { 
    width: 90%; 
    margin: 20px 5% 0 5%; 
    display: block; 
} 

jQuery를

$(document).ready(function() { 
    var height - main = $(".main").height(); 
    var height - sidebar = $(".sidebar").height(); 

    if (height - main > height - sidebar) { 
    $(".border").css("height", height - main); 
    } else if (height - main < height - sidebar) { 
    $(".border").css("height", height - sidebar); 
    } 
}); 
+0

왜 당신이 테두리로 사업부를 사용해야합니까? - 구체적인 문제를 명확히하거나 추가 세부 정보를 추가하여 필요한 것을 정확하게 강조하십시오. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. –

답변

0

귀하의 변수 이름이 유효하지 않습니다. JS에서 변수 이름은 빼기 연산자이므로 -을 포함 할 수 없습니다. 그를 제거하고 코드는 예를 들어, 작동 :

var mainHeight = $(".main").height(); 
var sidebarHeight = $(".sidebar").height(); 
$(".border").css("height", Math.max(mainHeight, sidebarHeight)); 

Working example

+0

정말 고마워요! 시간 낭비를 막아 줬습니다. :) – james

+0

괜찮습니다. 그것이 도움이된다면 upvote/대답을 받아들이는 것을 잊지 마십시요 :) –

0

을 :

또한
var mainHeight = $(".main").height(); 
var sidebarHeight = $(".sidebar").height(); 

if (mainHeight > sidebarHeight) { 
    $(".border").css("height", mainHeight); 
} else if (mainHeight < sidebarHeight) { 
    $(".border").css("height", sidebarHeight); 
} 

이처럼 if 문을 제거하고 Math.max()를 사용하여 코드를 간단하게 할 수 있습니다 왜 당신은 단지 CSS로 쉽게 할 수있는 동안, 당신은 왜 그런 간단한 작업을 위해 JavaScript를 사용하는지 이해할 수 없습니다.

.container { 
 
    max-width: 926px; 
 
    margin: 0 auto; 
 
    background-color: #66AB98; 
 
    position: relative; 
 
    color: #fff; 
 
    overflow: hidden; 
 
} 
 

 
.container:before { 
 
    position: absolute; 
 
    background: #000; 
 
    left: 26.25%; 
 
    content: ''; 
 
    width: 3px; 
 
    bottom: 28px; 
 
    top: 28px; 
 
} 
 

 
.sidebar { 
 
    float: left; 
 
    width: 26.1%; 
 
    padding-bottom: 2000px; 
 
    margin-bottom: -2000px; 
 
    display: block; 
 
} 
 

 
.sidebar-inner { 
 
    width: 96%; 
 
    margin: 30px 2%; 
 
} 
 

 
.main { 
 
    float: right; 
 
    width: 73%; 
 
} 
 

 
.main-inner { 
 
    width: 96%; 
 
    margin: 30px 2%; 
 
} 
 

 
.border { 
 
    float: left; 
 
    width: .5%; 
 
    background-color: #000; 
 
    margin: 30px 0; 
 
} 
 

 
p { 
 
    text-indent: 30px; 
 
    font-size: 20px; 
 
    padding: 10px 0 10px 20px; 
 
} 
 

 
.img { 
 
    width: 500px; 
 
    display: block; 
 
    margin: 10px auto 0 auto; 
 
} 
 

 

 
/*--------------------- 
 
Sidebar 
 
---------------------*/ 
 

 
.logo-sidebar { 
 
    width: 90%; 
 
    margin: 0 5%; 
 
    height: 500px; 
 
    display: block; 
 
} 
 

 
.img-sidebar { 
 
    width: 90%; 
 
    margin: 20px 5% 0 5%; 
 
    display: block; 
 
}
<div class="container"> 
 
    <div class="sidebar height"> 
 
    <div class="sidebar-inner"> 
 
     <img class="logo-sidebar" src="img/logo.jpg" /> 
 
     <img class="img-sidebar" src="img/pic1.jpg" /> 
 
    </div> 
 
    </div> 
 
    <div class="border"></div> 
 
    <div class="main border-inner height"> 
 
    <div class="main-inner"> 
 
     <img class="img" src="img/pic7.jpg" style="height: 300px;" /> 
 

 
    </div> 
 
    </div> 
 
</div>

+0

밀을 고맙습니다. 어떻게해야할지 모르겠습니다. 설명 할 수 있겠습니까 : 이전 부분은 그것이 무엇을하는지 잘 모르기 때문입니다. 감사! – james

+0

@james 우리는': before' 나': after'와 같은 의사 요소에서'position : absolute'를 가진'top'과'bottom' 속성을 가진 부모 요소에'position : relative'를 사용합니다. 이 방법으로 의사 요소는 부모의 높이에 따라 전체 높이가됩니다. 자식 요소가 사이드 바이든 주 콘텐츠이든 상관없이 부모 요소의 높이가 증가하므로 의사 요소의 높이도 커집니다. –

+0

정말 고마워요! 나는 종류가 지금 그것을 얻는다 :) – james

관련 문제