hoyong

导航

定位布局

一. 定位布局

35.[HTML5第一季] 第27章 CSS传统布局[下]

Position属性

描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit 规定应该从父元素继承 position 属性的值。

 

//绝对定位,脱离文档流,以窗口文档左上角0,0 为起点
header {
  position: absolute;
  top: 100px;
  left: 100px;
}


所谓脱离文档流的意思,就是本身这个元素在文档流是占位的。如果脱离了,就不占有文档的位置,好像浮在了空中一般,有了层次感。


由于绝对定位脱离了文档流,出现层次概念。那么每个元素到底在那一层,会不会冲突覆盖。

这时通过z-index 属性来判定它们的层次关系。

描述
auto 默认。堆叠顺序与父元素相等。
number 设置元素的堆叠顺序。

 

//设置在100 层上
header {
  z-index: 100;
}


//以窗口参考定位,脱离文档流,会随着滚动条滚动而滚动
header {
  position: fixed;
  top: 100px;
  left: 100px;
}

 

//相对定位,不脱离文档流,占位偏移
header {
  position: relative;
  top: 100px;
  left: 100px;
}

 

这三种分别都在各自的情况下使用,均比较常用。但还有一种情况,就是:

1.既要脱离文档流(这样元素之间不会相互冲突);

2.以父元素,比如body 或其他父元素为参考点(这样可以实现区域性绝对定位);

3.还必须是绝对定位。

 

//第一步,将需要设置参考点的父元素设置为相对,且不设置坐标
body {

  /*此父元素设置一个没有Top和left的相对定位, 叫作设置参考点*/
  position: relative;
}
//第二步,如果父元素设置了参考点,子元素的绝对定位将以它为基准
header {
  position: absolute;
  top: 0px;
  left: 0px;
}

1.固定布局
//CSS 部分
body {
  width: 960px;
  margin: 0 auto;
  position: relative;
}


header {

  width: 960px;
  height: 120px;
  background-color: olive;
  position: absolute;
  top: 0;
  left: 0;
}
aside {
  width: 200px;
  height: 500px;
  background-color: purple;
  position: absolute;
  top: 120px;
  left: 0;
}

section {
  width: 760px;
  height: 500px;
  background-color: maroon;
  position: absolute;
  top: 120px;
  /*left: 200px;*/
  right: 0;
}
footer {
  width: 960px;
  height: 120px;
  background-color: gray;
  position: absolute;
  top: 620px;
}

posted on 2019-04-16 10:07  hoyong  阅读(93)  评论(0编辑  收藏  举报