2016-06-16 45 views
0

如何正確隱藏此溢出內容?

$('.child_1').click(function(){ 
 
    $(this).toggleClass('left').siblings().toggleClass('left'); 
 
});
* {box-sizing: border-box;} 
 
.parent { 
 
    width: 500px; 
 
    position: relative; 
 
    border: 1px solid #ccc; 
 
    overflow: hidden; 
 
} 
 
.child_1 { 
 
    background-color: rgba(255,255,0,.6); 
 
    width: 100%; 
 
    float: left; 
 
    height: 100px; 
 
    z-index: 1; 
 
    transition: all .5s; 
 
} 
 
.child_1.left { 
 
    width: 30%; 
 
} 
 
.child_2 { 
 
    width: 70%; 
 
    padding-left: 15px; 
 
    left: 100%; 
 
    transition: all .5s; 
 
} 
 
.child_2.left { 
 
    left: 30%; 
 
} 
 
.child_2 > div { 
 
    background-color: rgba(0,255,255,.6); 
 
    height: 200px; 
 
} 
 

 
.child_2 > div > div { 
 
    overflow: hidden; 
 
} 
 
.relative { 
 
    position: relative; 
 
} 
 
.absolute { 
 
    position: absolute; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<p>Relative</p> 
 
<div class="parent"> 
 
    <div class="child_1"></div> 
 
    <div class="child_2 relative"> 
 
    <div>Content of child_2<div></div></div> 
 
    </div> 
 
</div> 
 
<hr /> 
 
<p>Absolute</p> 
 
<div class="parent"> 
 
    <div class="child_1"></div> 
 
    <div class="child_2 absolute"> 
 
    <div>Content of child_2<div></div></div> 
 
    </div> 
 
</div>
我遇到這樣的麻煩:

  1. 父DIV必須有隱躲的時候child_2被移出母體的child_2溢出;

  2. 父div不能有一個聲明的高度,因爲child_2的高度是未知的(認爲它在我的例子中給出)。

要隱藏child_2格,我已經嘗試了兩種方式:

  1. 第一種是相對定位child_2,而你可以看到,child_2的內容推到一個錯誤的位置;

  2. 第二個是絕對定位的child_2,但絕對定位的元素不能擴展父元素的高度,所以當父div被賦予一個隱藏的溢出值時,child_2的內容被切斷。

+0

能否請您提供更多的細節?我三次讀你的問題,沒有得到你的要求。 –

+0

@CharanKumar我編輯了我的問題。 – jasonxia23

回答

1

$(document).ready(function() { 
 
    $('.child_1').click(function(){ 
 
    $(this).toggleClass('left').siblings().toggleClass('left'); 
 
}); 
 
});
* {box-sizing: border-box;} 
 
.parent { 
 
    width: 500px; 
 
    position: relative; 
 
    border: 1px solid #ccc; 
 
    overflow: hidden; 
 
    height: 100px; 
 
} 
 
.child_1 { 
 
    background-color: rgba(255,255,0,.6); 
 
    width: 100%; 
 
    float: left; 
 
    height: 100px; 
 
    z-index: 1; 
 
    transition: all .5s; 
 
} 
 
.child_1.left { 
 
    width: 30%; 
 
} 
 
.child_2 { 
 
    width: 70%; 
 
    padding-left: 15px; 
 
    left: 100%; 
 
    transition: all .5s; 
 
} 
 
.child_2.left { 
 
    left: 30%; 
 
} 
 
.child_2 > div { 
 
    background-color: rgba(0,255,255,.6); 
 
    height: 200px; 
 
} 
 

 
.child_2 > div > div { 
 
    overflow: hidden; 
 
} 
 
.relative { 
 
    position: relative; 
 
} 
 
.absolute { 
 
    position: absolute; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
\t <link rel="stylesheet" type="text/css" href="sample.css"> 
 
</head> 
 

 
<body style="display:table"> 
 
    <p>Relative</p> 
 
    <div class="parent"> 
 
     <div class="child_1"></div> 
 
     <div class="child_2 relative"> 
 
      <div>1 
 
       <div></div> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <hr /> 
 
    <p>Absolute</p> 
 
    <div class="parent"> 
 
     <div class="child_1"></div> 
 
     <div class="child_2 absolute"> 
 
      <div>1 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
</body> 
 

 
</html>

我已經加入高度父格,然後溢出正常工作

+0

父div的高度無法聲明,因爲child_2的高度未知(儘管它在我的示例中給出)。 – jasonxia23

+0

爲了使溢出屬性有效,塊級容器必須具有邊界高度(高度或最大高度)或將空白設置爲nowrap。 – Shivani

+0

或者,您可以計算高度,並在您無法聲明時在腳本中動態設置。 –