直接上代码:

<div class="father">
    <div class="child">    
        <div></div>
    </div>
</div>

// css 这里我用了sass
.father {
    width: 200px; height: 400px; border: 1px solid red; overflow: auto;
    .child {
        background: #ccc;
        div {
            width: 400px; height: 900px;
        }
    }
}  

得到的效果
clipboard.png

这里本来想要的是 里面的child元素要随着它的子集div的宽度变化而自动撑满, 但是得到的效果 则是child元素宽度与father的宽度一致, 这里我分析是因为 width得到了它父元素的可视宽度. 于是想要的效果 卒!!!.
当然这里是可以用js来计算最里面的宽度然后给child赋值的. 我没有这样做是因为js的成本要比css的成本高很多.
然后到Stack Overflow上面搜索我想要的答案. 这里说一下, 程序上的问题还是要多上Stack Overflow查靠谱很多.

.father {
    width: 200px; height: 400px; border: 1px solid red; overflow: auto;
    .child {
        background: #ccc; 
        min-width: 100%; display: inline-block; // 这里加上这两个属性
        div {
            width: 400px; height: 900px;
        }
    }
} 

滚动条拖到最后面也是一样撑开.
clipboard.png

还有一种是 给child元素加上display:table; 属性也是可以的.


伍陆柒
1.2k 声望25 粉丝

如果觉得我的文章对大家有用的话, 可以去我的github start一下[链接]