文章目录

  • 1 position 属性的作用
  • 2 static 属性值
  • 3 relative,absolute,fixed
    • 3.1 relative 属性值
    • 3.2 absolute 属性值
    • 3.3 fixed 属性值

1 position 属性的作用

position属性用来指定一个元素在网页上的位置,一共有4种定位方式,即position属性主要有4个值。

static
relative
fixed
absolute

2 static 属性值

static是position属性的默认值。如果省略position属性,浏览器就认为该元素是static定位。

这时,浏览器会按照源码的顺序,决定每个元素的位置,这称为"正常的页面流"(normal flow)。每个块级元素占据自己的区块(block),元素与元素之间不产生重叠,这个位置就是元素的默认位置。


注意,static定位所导致的元素位置,是浏览器自主决定的,所以这时top、bottom、left、right这四个属性无效。

3 relative,absolute,fixed

relative、absolute、fixed这三个属性值有一个共同点,都是相对于某个基点的定位,不同之处仅仅在于基点不同。所以,只要理解了它们的基点是什么,就很容易掌握这三个属性值。

这三种定位都不会对其他元素的位置产生影响,因此元素之间可能产生重叠。

3.1 relative 属性值

relative表示,相对于默认位置(即static时的位置)进行偏移,即定位基点是元素的默认位置。


它必须搭配top、bottom、left、right这四个属性一起使用,用来指定偏移的方向和距离。


div {
position: relative;
top: 20px;
}
上面代码中,div元素从默认位置向下偏移20px(即距离顶部20px)。

3.2 absolute 属性值

absolute表示,相对于上级元素(一般是父元素)进行偏移,即定位基点是父元素。

它有一个重要的限制条件:定位基点(一般是父元素)不能是static定位,否则定位基点就会变成整个网页的根元素html。另外,absolute定位也必须搭配top、bottom、left、right这四个属性一起使用。

/*
HTML 代码如下

*/

#father {
positon: relative;
}
#son {
position: absolute;
top: 20px;
}

上面代码中,父元素是relative定位,子元素是absolute定位,所以子元素的定位基点是父元素,相对于父元素的顶部向下偏移20px。如果父元素是static定位,上例的子元素就是距离网页的顶部向下偏移20px。

注意,absolute定位的元素会被"正常页面流"忽略,即在"正常页面流"中,该元素所占空间为零,周边元素不受影响。

3.3 fixed 属性值

fixed表示,相对于视口(viewport,浏览器窗口)进行偏移,即定位基点是浏览器窗口。这会导致元素的位置不随页面滚动而变化,好像固定在网页上一样。


它如果搭配top、bottom、left、right这四个属性一起使用,表示元素的初始位置是基于视口计算的,否则初始位置就是元素的默认位置。

div {
position: fixed;
top: 0;
}
上面代码中,div元素始终在视口顶部,不随网页滚动而变化。

【响应式Web前端设计】CSS 定位详解相关推荐

  1. 【响应式Web前端设计】一文学会使用Bootstrap!

    文章目录 1 概念 2 Bootstrap简介 3 布局容器 4 导航栏(navbar) 4.1 基本 4.2 响应式 5 垂直表单-基本表单 6 栅格系统 7 标签页 8 响应式工具 请先学习该文 ...

  2. 【响应式Web前端设计】css如何设置边框的圆角样式?border-radius属性设置圆角样式(图 文)

    border-radius包含5种设置圆角样式方式: border-radius :同时设置4个边框的圆角样式. border-top-left-radius :设置左上角边框的圆角样式. borde ...

  3. 【响应式Web前端设计】css中:overflow:hidden解决塌陷

    overflow:hidden是当元素内的内容溢出的时候使它隐藏溢出的部分,即超出部分隐藏. 1.我们给一个父元素,里面有两个子元素 2.样式如下:给父元素设置背景颜色,子元素设置边框,两个字元素向左 ...

  4. 【响应式Web前端设计】CSS浮动(float,clear)讲解

    首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流.如下图: 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为d ...

  5. 【响应式Web前端设计】CSS后代选择器和子代选择器

    文章目录 子代选择器:>号 后代选择器:空格 文章目录 子代选择器:>号 后代选择器:空格 子代选择器:>号 .father>div{border: 2px solid blu ...

  6. 【响应式Web前端设计】:link、:hover、:active和:visited的区别

    :link.:hover.:active和:visited的区别? :link表示鼠标点击之前,也称为原始状态 :hover表示鼠标悬停状态 :active表示鼠标点击状态 :visited表示鼠标点 ...

  7. 【响应式Web前端设计】HTML DOM padding 属性

    定义和用法 padding 属性设置元素的内边距. padding 属性定义元素边框与元素内容之间的空间. 该属性可采取 4 个值: 如果规定一个值,比如 div {padding: 50px} - ...

  8. 【响应式Web前端设计】Register Demo

    <!DOCTYPE html> <html> <head><meta charset="utf-8"><title>用户 ...

  9. 【响应式Web前端设计】Login Demo

    body{background: url('../img/1.png')no-repeat center center fixed;background-size: cover;padding: 20 ...

最新文章

  1. mxnet insightface特征提取
  2. mysql_close6_关于mysql_close()函数的10篇文章推荐
  3. 单例设计模式-懒汉式(线程不安全)
  4. C++ 的Tool工具收集
  5. 樊登讲亲密关系_看了《亲密关系》这本书,原来吵架是牺牲对方来保护自己
  6. Jenkins 学习总结(9)—— Jenkins 有哪些替代方案?
  7. centos6安装PHP5.4
  8. linux怎么重载mysql配置命令_在Linux系统中启动/停止/重新启动/启用/重新加载MySQL和MariaDB服务...
  9. ad17 linux 版本,Altium Designer这些不同版本的软件之间的区别有多大呢?
  10. 终结者2免费教程_如何在模拟器上玩(匹配的还是手机服)_适用最新客户端
  11. Matplotlib is currently using agg问题
  12. python编译 pyd 工具_windows平台 python生成 pyd文件
  13. ffmpeg--异常打印
  14. 2017CS231n李飞飞深度视觉识别笔记(二)——图像分类
  15. CBS,PCBS,ECBS,EPCBS
  16. Python关于人脸图片转换128/512维度向量的两种做法
  17. 树木根际微生物、树木-真菌互作研究方向博后和出站博后
  18. Arcgis开发系列2 - 修改arcgis infowindow 放大和缩小的模板
  19. SSL/TLS - 什么是SSL?
  20. 【儿童节】2018 下半年 Java 后端工程师的书单推荐

热门文章

  1. Android usb pc通信
  2. cnn中关于平均池化和最大池化的理解
  3. pyqt5 QMainWindow 居中
  4. caffe显示特征图
  5. linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全
  6. sublimelinter校验php,代码校验工具 SublimeLinter 的安装与使用
  7. java的函数传值_java 函数形参传值和传引用的区别[转]
  8. python文件指针放在文件的开头_将文件指针倒带到上一个lin的开头
  9. 启动jar包并生成日志的linux脚本
  10. matlab从flove,Matlab玩出新高度,变身表白女友神器_善良995的博客-CSDN博客