position:fixed窗口定位的不生效

问题1:position:fixed样式不生效

原因:当position:fixed的元素的最近一个父级元素有transform样式时(无论该父级元素是否有position属性),则该元素会以他的父级元素为参照物实现定位
解决办法:去掉父级元素的transform

<div :class="$style['content']">
  padding-top: 54px;
  width: 100%;
  height: 200px;
  background: yellow;
  transform: translateY(54px);
  <div :class="$style['modal']">
    position: fixed;
    top: 0;
    left: 50%;
    background: red;
    z-index: 999;
    color: #fff;
  </div>
</div>

.content {
     padding-top: 54px;
     width: 100%;
     height: 200px;
     background: yellow;
     transform: translateY(54px);
     .modal {
       position: fixed;
       top: 0;
       left: 50%;
       background: red;
       z-index: 999;
       color: #fff;
     }
   }

问题2:position:fixed的z-index不生效

从父原则:
通过用fixed absolute relative定位的元素。
其子元素和父辈元素比较z-index的时候,采用父元素的z-index值去比较。同辈之间采用自己的z-index比较。

原因:当dom标签添加position:fixed样式后,改标签的z-index会以最近一个有定位属性position的父级元素的z-index值为基准进行比较
解决办法:去掉父级元素的z-index
示例: modal窗口定位,但modal的父级content有定位属性,且有z-index: 1,由于content的z-index比header的z-index小,导致modal即使z-index为999,也无法超过header的层级;当把content的z-index去掉之后,modal的层级则会超过header,盖在header上方

<div :class="$style['container']">
  <div :class="$style['header']">
    position: absolute;
    top: 0;
    width: 100%;
    height: 54px;
    background: blue;
    z-index: 2;
    color: #fff;
  </div>
  <div :class="$style['content']">
    position: absolute;
    top: 0;
    padding-top: 54px;
    width: 100%;
    height: 200px;
    background: yellow;
    z-index: 1;
    <div :class="$style['modal']">
      position: fixed;
      top: 0;
      left: 50%;
      background: red;
      z-index: 999;
      color: #fff;
    </div>
  </div>
</div>

.header {
     position: absolute;
     top: 0;
     width: 100%;
     height: 54px;
     background: blue;
     z-index: 2;
     color: #fff;
   }
   .content {
     position: absolute;
     top: 0;
     padding-top: 54px;
     width: 100%;
     height: 200px;
     background: yellow;
     z-index: 1;
     .modal {
       position: fixed;
       top: 0;
       left: 50%;
       background: red;
       z-index: 999;
       color: #fff;
     }
   }
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容