0

During overflow, when set display: flex; by default (i.e.flex-direction: row;), the width of the border box is the whole scrollWidth; while the height of the border box is only the clientHeight. One may check the blue-border by the following example. If we change the flex-direction as column, the situation exchanges.

My question is: by directly set CSS, is their anyway to make the height of the border box to the whole content (i.e. scrollHeight), while keep display: flex; and flex-direction: row?

I know we can use JavaScript to set it as scrollHeight, but I want to know can we do it with CSS. I already tried flex-shrink and flex-basis, they have no effect on the border box.

#parent {
    white-space: pre-wrap;
    background-color: aqua;
    overflow: auto;
    width: 200px;
    height: 150px;
    display: flex;
    /*flex-direction: column;*/
    }

#main {
    border: 5px solid blue;
    display: inline-block;
    /*flex-basis: 200px;
    flex-shrink: 0;*/
    }
<div id="parent">    
    <span id="main"> <span>sdfsdfdfd </span>
        sdfdsfsdfdsafadsfasdfafdfsdfsdffsfsdfdsfdsf 
        sdfsdaf
         sdfdsfa
           dsfsdfsd dsf
        dfas sdfdsfa
        dsfsdfsd
        dsfsdfsd
        dfs
        sdfsf
    </span> 
</div>
X Leo
  • 121
  • 3

0 Answers0