CSS实现多个容器保持相同宽度

这是一个小伙伴发来的demo

他想让上下这两层啊保持同样的宽度

所以他为了实现这个效果呢

写了一段JS代码

我们先来把这个JS代码

主持解开看一下

效果

就是这样大家看

那他的问题是

除了JS代码我们可不可以用CSS来实现

我们提到保持

相同的宽度或者高度的时候

我们首先会想到flex对吧

我们先来看这个例子

这是一个很简单的两个DIY

然后被套在了一个flex布局里面

我们来看一下啊

那这种布局

他默认就会保持同样的高度

大家看

为什么呢

那是因为哈

flex布局里面他默认有一个属性叫

align-items 他默认是stretch

所以呢他会保持一个相同的高度

如果我们把它改成

flex start

大家看

它就不会相同的高度了

所以我们如果想让两个层

保持同样的高度呢

可以借用flex这个特性

那同样的高度是这样同样的宽度呢

我们这样

把这个代码原封不动放到这个文件里

然后呢把方向改一下

我们用flags election等于cup

大家看这个方向虽然变了

但是他默认flex布局他是(横向)撑满的

他有点像block

所以重点来了

我们如果想让两个层保持同样的宽度

就不能用flex

要用inline-flex

大家再看

这会我在这再加东西他看

他就会保持相同的宽度了

所以呢我们再回到刚才这个例子(demo)

如果想让上下两个层保持同样的宽度

怎么处理呢

我们可以这样

把这两个层啊

单独的放到一个DIY里面

放到这里

然后把这个DIY

把它换成display

等于

line

flex 然后呢

flex direction等于column

我们再来看一下

打开就可以了我在这加一个 contenteditable

好 注意!

大家看 是不是就可以了

最后呢我们留一个小小的思考

就是为什么我们要在中间加一个DIY

而不是在最外层加上 inline-flex 这个属性

最后更新于