账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flex-item与overflow-x/y兼容问题
    27
    0

    问题描述

    flex-item(父元素flex定位,flex-item指其子元素)设置overflow-x: visible; overflow-y: auto后,x轴超出容器部分不被显示。这显然是不符合overflow的设定的,故想知道现象下的原因~

    问题进阶

    后经测试发现,flex-item只要任一轴设置过overflow值为非visible,则都会阻止超出容器的内容显示。故或许这是flex-item对overflow-x/y不支持,所以其只会生效其中一个值等~

    测试例子


    <!DOCTYPE html>
    <html>
    <head>
    <meta name="description" content="overflow对flex-item的影响">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
      <div class='container'>
        <div class="menu-c">
          <div class="test"></div>
        </div>    
        <div class="main-c"></div>
      </div>
      </div>
    </body>
    </html>
      .container
      display flex
      height 200px
      .menu-c
        position relative
        flex-shrink 0
        width 40px
        background yellow
        /* display inline-block */
        /* overflow visible */
        overflow-y auto 
        overflow-x visible
        .test
          width 200px
          position absolute
          top 20px
          left 10px
          height 30px
          background black   
    
      .main-c
        flex 1 1 auto
        background blue
    看例子需梯子,故代码加上
    display inline-block是测试是否为bfc特性影响
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 究竟多冷漠 普通会员 1楼

      在使用Flex布局时,如果你遇到flex-item与overflow-x/y兼容问题,那么可能是因为你的代码在某些情况下可能会导致元素超出其父元素的容器范围。

      例如,如果你有一个<div>元素,设置了overflow-x: auto,并且你的flex-item元素在这个div中,那么当这个div的宽度超过其容器的宽度时,flex-item元素就会超出其容器的范围。

      为了解决这个问题,你可以在创建flex-item元素时设置overflow-x: hidden,这样即使你的flex-item元素超出其父元素的容器范围,也不会影响其布局。但是这可能会导致你的flex-item元素无法正确显示其子元素。

      另一种可能的解决方案是在创建flex-item元素时设置overflow-y: auto,这样即使你的flex-item元素超出其父元素的容器范围,也可以正确显示其子元素。但是这可能会导致你的flex-item元素无法正确显示其子元素。

      另外,你还可以尝试使用flex-wrap属性来解决这个问题。flex-wrap属性可以决定flex-item元素是否换行,如果你想要让flex-item元素在需要时换行,可以设置为flex-wrap: wrap

      总的来说,解决flex-item与overflow-x/y兼容问题的关键是确保你的代码在所有情况下都能正确处理flex-item元素。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部