网页设计之CSS实战(5) --- 元素定位

一、定位之理解

CSS 为定位和浮动提供了一些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成通常需要使用多个表格才能完成的任务。

允许元素框相对于某位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。

div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。

使用 display 属性改变生成的框的类型。这意味着,通过将 display 属性设置为 block,可以让行内元素(比如a 元素)表现得像块级元素一样。还可以通过把 display 设置为 none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。

即使没有进行显式定义,也会创建块级元素。把一些文本添加到一个块级元素(比如 div)的开头。

1、CSS 定位方式

CSS 有三种基本的定位:普通流、浮动和绝对定位。
普通流:元素的位置由元素在 HTML 中的位置决定。块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。
但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。

2、position 属性

position 属性值的含义:

  • static
    元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
  • relative
    元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
  • absolute
    元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
  • fixed
    元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

二、相对定位

通过设置垂直或水平位置,让这个元素“相对于”它的起点进行绘制。
例:将 top 设置为 50px,那么框将在原位置顶部下面 50 像素的地方。如果 left 设置为 50 像素,那么会在元素左边创建 50 像素的空间,也就是将元素向右移动。

#box_relative {
  position: relative;
  left: 50px;
  top: 50px;
}

在这里插入图片描述
注意:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

三、绝对定位

绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位的元素的位置相对于它在普通流中的位置。

绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。

#box_absol {
  position: absolute;
  left: 50px;
  top: 50px;
}

在这里插入图片描述

四、浮动

浮动的框可以向左右移动,直到它的外边缘碰到父框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,普通流中的块框就不与浮动框产生位置关系。
float 属性取值:

  • left 元素向左浮动。
  • right 元素向右浮动。
p {
  float: right;
  }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值