transform改变定位元素的包含块

2018-11-29 00:23| 作者: admin| 查看: 103| 评论: 0|来自: 蚂蚁部落

css3之前绝对定位元素的包含块规则可以参阅以下两篇文章:

(1).CSS absolute绝对定位一章节。

(2).CSS fixed固定定位一章节。

特别说明:一个元素会根据矩形盒计算自身定位和大小,此矩形盒就是包含块。

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
#relative {
  position: relative;
  width: 100px;
  height: 100px;
  background: green;
}
#absolute {
  position: absolute;
  width: 20px;
  height: 20px;
  top: 0;
  right: 0;
  background: blue;
}
#transform {
  background: red;
  width: 50px;
  height: 50px;
}
</style>
</head>
<body>
  <div id="relative">
    <div id="transform">
      <div id="absolute"></div>
    </div>
  </div>
</body>
</html>

上面的代码中,绝对定位的div元素是以外层相对定位的元素(准确的说是产生的包含块)为参考对象的。

再来看一段代码实例:

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
#relative {
  position: relative;
  width: 100px;
  height: 100px;
  background: green;
}
#absolute {
  position: absolute;
  width: 20px;
  height: 20px;
  top: 0;
  right: 0;
  background: blue;
}
#transform {
  background: red;
  width: 50px;
  height: 50px;
}
#transform {
  transform: scale(1);
}
</style>
</head>
<body>
  <div id="relative">
    <div id="transform">
      <div id="absolute"></div>
    </div>
  </div>
</body>
</html>

上面的代码为中间的div元素应用如下代码:

[CSS] 纯文本查看 复制代码
transform: scale(1);

所以内部绝对定位的div元素就会以中间的div元素为参考对象;对position:fixed定位也是同样的道理。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部