首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有溢出自动的flex模型垂直对齐

具有溢出自动的flex模型垂直对齐
EN

Stack Overflow用户
提问于 2014-11-04 04:15:09
回答 3查看 294关注 0票数 5

灵活的盒子模型使得垂直对齐变得非常容易。然而,我一直遇到的一个问题是,当我将视口调整为“太小”大小时,内部框将在顶部溢出,尽管该元素驻留在overflow: auto元素中。换句话说,您仍然可以滚动到底部(与overflow: auto预期的一样),但它不能反过来工作。

代码语言:javascript
复制
#con {
  width: 300px;
  height: 100px;
  background: yellow;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
}
#center {
  background: green;
  color: white;
}
代码语言:javascript
复制
<div id="con">
    <div id="center">
        Invisible<br/>
        2<br/>
        3<br/>
        4<br/>
        5<br/>
        6<br/>
        7<br/>
        8<br/>
        9<br/>
        10
    </div>
</div>

现在,我有点明白了为什么这会发生在规范上,但是我不知道解决这个问题的最好方法是什么。How 您可以使用柔性盒模型对齐中心的东西,但是如果元素不适合,则让元素溢出

EN

回答 3

Stack Overflow用户

发布于 2014-11-04 16:44:33

这可能是一个选项:http://jsfiddle.net/jge6ppaz/

代码语言:javascript
复制
.concon
{
    width:300px;
    height:100px;
    display:flex;
    overflow: auto;
    flex:0 0 auto;
    flex-direction:column;
    background: yellow;
    justify-content:center;
}

.con {
  display: flex;
  flex:0 0 auto;
  flex-direction:column;
  max-height:100%;
  box-shadow:inset 0 0 20px red;
}

.center {
  background: green;
  color: white;
  flex:0 0 auto;
  align-self:center;
}

以及标记:

代码语言:javascript
复制
<div class="concon">
    <div class="con">
        <div class="center">
            contents here
        </div>
    </div>
</div>
票数 2
EN

Stack Overflow用户

发布于 2014-11-04 17:03:21

因此,事实证明这是Overflow: auto causes vertically centered items to be cut off using Flexbox的翻版(由cimmamon自己在聊天中发现),然而,由于这个问题的角度不同(2009年与2012年的柔性盒版本),我不打算把这个问题标记为一个重复。

引用链接的答案:

Flexbox的美妙之处在于它提供了许多不同的方式来实现特定的布局。Flexbox的一个被低估的特性是,顶部和底部边距的自动值实际上可以达到它听起来的效果,而这正是您在这里所需要的,而不是对齐内容/对齐项。

所以我们只需要:

代码语言:javascript
复制
#con {
  width: 300px;
  height: 100px;
  background: yellow;
  display: flex;
  overflow: auto;
}
#center {
  background: green;
  color: white;
  margin: auto;
}
代码语言:javascript
复制
<div id="con">
    <div id="center">
        Invisible<br/>
        2<br/>
        3<br/>
        4<br/>
        5<br/>
        6<br/>
        7<br/>
        8<br/>
        9<br/>
        10
    </div>
</div>

票数 2
EN

Stack Overflow用户

发布于 2014-11-04 05:12:52

Fiddle

http://jsfiddle.net/s3bjkqj4/1/

CSS

代码语言:javascript
复制
#con {
  width: 300px;
  height: 100px;
  background: yellow;
display: inline-flex;

  overflow: auto;
}
#center {
  background: green;
  color: white;      
  width:80px;
  text-align:center;
  margin:0 auto;
}

我不确定这是你想要的吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26727663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档