简体   繁体   中英

Set width of child div in flex container

I have 4 divs with the class .piece-slide that horizontally scroll across the page within the the div #work , which is a flex element. Within the third .piece-slide div the 3 nested elements are absolutely positioned, this renders the width of the third .piece-slide div to 0, so now I want to programmatically set the width of the third .piece-slide div so that it covers the 3 nested elements.

For some reason I am unable to set this width through CSS. I have also tried through jQuery. It would be much appreciated if some pointed me in the right direction as how to rectify this. Here is a jsfiddle as well as the embedded code below.

 $("#third-div").outerWidth("100vw"); 
 #wrapper { display: flex; flex-direction: column; height: 100vh; } .content { flex: 1; } #work { height: 100%; overflow-x: scroll; display: flex; background-color: red; } .piece-slide { display: flex; align-items: center; position: relative; padding-right: 5em; box-sizing: border-box; border-right: 1px solid black; } .piece { width: 25vw; margin: 10px; } .piece img { max-width: 100%; } #third-div { /* D0ES NOT WORK */ width: 100vw; background-color: green; } #third-div a { position: absolute; } #third-div a:nth-child(1) { top: 0; left: 0; } #third-div a:nth-child(2) { top: 25vw; left: 25vw; } #third-div a:nth-child(3) { left: 60vw; } 
 <div id="wrapper"> <div class="content"> <div id="work"> <div class="piece-slide"> <a class="piece"> <img src="https://athlonecommunityradio.ie/wp-content/uploads/2017/04/placeholder.png"> </a> </div> <div class="piece-slide"> <a class="piece"> <img src="https://dummyimage.com/hd1080https://dummyimage.com/hd1080"> </a> <a class="piece"> <img src="https://dummyimage.com/hd1080https://dummyimage.com/hd1080"> </a> </div> <!-- THIRD DIV WHERE WIDTH SHOULD BE SET --> <div id="third-div" class="piece-slide"> <a class="piece" num="1"> Nested Element 1<img src="http://i.stack.imgur.com/yZlqh.png"> </a> <a class="piece" num="2"> Nested Element 2<img src="http://www.jennybeaumont.com/wp-content/uploads/2015/03/placeholder.gif"> </a> <a class="piece" num="3"> Nested Element 3<img src="http://suplugins.com/podium/images/placeholder-02.jpg"> </a> </div> <div class="piece-slide"> <a class="piece"> <img src="https://athlonecommunityradio.ie/wp-content/uploads/2017/04/placeholder.png"> </a> </div> </div> </div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

Try to remove

flex-direction: column;

from #wrapper .
Or change it to

flex-direction: row;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM