CSS浮动和定位理论知识

  • 2017-12-28 21:08:18
  • 3,776 次阅读
  • 稿源:天马行空

浮动是CSS布局中重要理论,在网页中大部分采用浮动来达到分栏的效果。CSS网页布局采用两种方式,一种是浮动布局,另一种则是定位布局。

在浮动和定位之前,我们先了解什么是文档流?文档流是浏览器解析网页的一个重要概念,对于一个html网页,body元素下的任意元素,根据其前后顺序,组成组成一个个上下关系,这便是文档流。浏览器根据元素的顺序显示其在网页中的位置。文档流是浏览器的默认显示规则。

1.浮动定位

浮动定位是利用float属性的left和right值分别让对象向左或向右浮动。

元素在作浮动定位时,不论该元素本身是什么,只要其是浮动的,就会生成一个块级框,会像块级元素一样摆放和表现。

1)浮动定位应用场合

当需要网站具有较强的分辨率及内容大小的适应能力的时候,采用浮动定位。浮动定位是将布局浮在窗口之中,而非固定在窗口的某个位置,因此主要是针对非固定类型的网页进行设计。

①距中布局

对一个元素距中,是相对于它的左右两边而言。若浏览器窗口的宽度不固定,那么需要用div,采用针对左右margin的auto设置,以便让元素距中浮动。

②横向宽度百分比缩放

若有一个二列宽度自适应布局,当左列的宽度无法固定时,则右列的位置就无法固定,因此右列必须采用浮动到左列的右边贴近,才可以适应左列宽度的随时变化。

③需要借助margin,padding,border等属性

浮动布局能通过控制对象的边框,间距等精确地控制其之间的位置关系,由于每个对象的外边距不一样,导致身边的对象位置发生变化,因此有些看似固定布局的网站,在采用margin来控制对象占位的同时,也需要使用浮动定位。

另外还有其它各种情况的选用,但关键的一点,就是要布局能够灵活地变化,这是浮动布局初衷。从实际工作来看,大多情况下都围绕浮动布局进行设计,所以掌握浮动定位是CSS布局的重中之重。

2.绝定定位与相对定位

1)绝定定位

凡是采用position:absolute;之后,对象便开始进行绝对定位,其主要通过设置对象的top,right,bottom及left四个方向的边距值来实现。一旦对象被设置绝对定位,就完全脱离了文档流,独立于其它对象而存在。

绝对定位使元素位置与文档流无关,因此不占据空间。如下图:

absolute

绝对定位的元素是相对于最近的已定位的祖先元素,若不存在已定位的祖先元素,那它的位置就相对于最初的包含块。

由于绝对定位与文档流无关,因此可以覆盖页面上的其它元素;另外还可以通过设置z-index属性来控制这些框的堆放次序。

2)深度(z-index)

CSS允许我们通过设置对象的z-index属性,来对其重叠的先后顺序进行操作,也就是z轴的顺序。

以z-index的数值大小为准,大值对象的层级位于小值对象上面。如下代码:

absolutecode

3)相对定位

相对定位就是浮动定位与绝对定位的扩展方式。相对定位使得被设置元素保持与其原始位置相对,并不破坏其原始位置的信息。如下图所示:

relative

relativecode

如果对一个元素进行相对定位,可以通过设置水平或垂直位置,让这个元素相对于其起点进行移动。

在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

4)绝对定位与相对定位应用场合

①不规则网页设计

有些网页设计不会走分栏或块状布局的路线,而是随机地布置位置。在这种情况下,往往采用绝对定会或相对定位的各种组合方式来进行布局。

②在画面上的设计

若需要一个元素覆盖在整个画面上,但不希望破坏原有的结构,这时可以采用绝对或相对定位,使得某个或者某些对象覆盖于画面之上,比如门户网站常出现的广告,便是相对或绝对定位的设计

③交互式设计

下拉菜单一种常见的交互式设计,由于其菜单子项只在鼠标移上时才出现,因此是一种

需要覆盖在画面上方的设计。

另外一种情况,就是子菜单需要根据父级鼠标位置而变化,需要相对于鼠标所在的父级位置进行定位,这是一种相对定位。在这两种设计情况下,原则是当子菜单出现时,不破坏其它元素的布局,就需要其浮于画面之上,这时候便可以采用绝对或相对定位进行处理。

喜欢 1

文章评论 (0)

表情

大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头