码迷,mamicode.com
首页 > 其他好文 > 详细

使用 flex 布局竖直排列时,竖直换行后子元素未撑开父元素的问题解决

时间:2021-04-22 16:19:56      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ons   自动   red   one   ima   div   题解   ref   question   

使用 flex 布局竖直排列时,竖直换行后子元素未撑开父元素的问题解决

现有 html 结构如下:

<div class="wrap">
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
    <li>11</li>
    <li>12</li>
  </ul>
  <div class="item"></div>
</div>

wrap 为外层盒子,内有 ul 列表和一个 item 盒子

样式如下:

.wrap {
  display: flex;
}
.item {
  width: 50%;
}
ul {
  height: 200px;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  border: 1px solid red;
}
ul li {
  list-style: none;
  width: 50px;
  border: 1px solid #000;
}

ul 列表为 flex 布局,并且设置竖直排列和自动换行

结果如图,li 子元素并未撑开父元素,但是如果横向排布是正常的

技术图片

解决方法

stackoverflow,找到的 css 解决方法:

ul {
  flex-direction: row;
  writing-mode: vertical-lr;
}
ul li {
  writing-mode: horizontal-tb;
}

因为使用横向布局时可以正常撑开父元素,所以使用flex-direction: row;横向布局,再通过给父元素writing-mode: vertical-lr;,子元素writing-mode: horizontal-tb;,曲线实现竖向布局。

结果如下:

技术图片

附:stackoverflow上的回答示例https://jsfiddle.net/gcob492x/3/

使用 flex 布局竖直排列时,竖直换行后子元素未撑开父元素的问题解决

标签:ons   自动   red   one   ima   div   题解   ref   question   

原文地址:https://www.cnblogs.com/ccti7/p/14687477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!