css
主页 > 网页 > css >

css3 transform导致子元素固定定位变成绝对定位

2020-03-07 | 秩名 | 点击:
代码如下:

<!DOCTYPE html>
<html>
<head>
<style>
   body {
    background: #f60; // 橙色
   }
  .parent {
     position: fixed;
     width: 300px;
     height: 300px;
     right: 0;
     top: 0;
     background: #02bd00;  // 绿色
     transform: translateX(0);                 
  }
  .child {
     position: fixed;
     left: 0;
     right: 0;
     top: 0;
     bottom: 0;    
     background: rgba(0,0,0,0.2); // 黑色透明:蒙层
  }
</style>
</head>
<body>
 
<div class="parent">
  <div class="child"></div>
</div>
 
</body>
</html>

问题相对于没有遇到过的同学不太容易查找原因。贴个图看下效果(只有绿色部分有蒙层,但我们可能以为自己的写法没有问题。)

-[-/a>

其实我们想要的子元素全屏效果,需要设置transform: none;

-[-/a>

问题比较典型:父级元素设置有效的transform属性会导致子元素固定变成绝对元素, 此时会导致子元素和父级元素相同大小. 此时查看子元素的offsetTop和offsetLeft都是0,需要引起注意。

出现场景: 通常会在框架UI的基础上自定义增加样式时候出现。

原文链接:https://www.jb51.net/css/715491.html
相关文章
最新更新