CSS中有三种基本的定位机制:普通流,浮动和绝对定位。

 

1.相对定位:relative

如果对一个元素进行相对定位,它将出现在它所在的位置上,然后可以通过设置垂直或者水平位置,让这个元素“相对于”它原来的位置进行移动,这时元素依然占据原来的位置,但移动后会覆盖其他的元素,可以通过z-index属性来对其显示位置进行设置。

#mybox{

  position:relative;

  left:20px;

  top:20px;

}

2.绝对定位:absolute

相对定位实际上依然是存在文档流中,但绝对定位则会使元素脱离文档流,绝对定位的元素是相对于距离他最近得已定位的祖先元素确定的,如果元素没有已定位的祖先元素,那么它的位置是相对于初始包含块的。

绝对定位同样可以通过z-index来对其设置叠放层次。

3.固定定位:

顾名思义,固定在浏览器某一位置。

4.浮动:float

浮动的框可以左右移动,直至其碰到包含框或另一浮动框的边缘。浮动同样会使元素脱离文档流。

上面说浮动会使元素脱离文档流,文档流中的元素会将其当做不存在,实际上并非如此。当下一个元素存在文本内容时,文本内容会受到浮动元素的影响,会移动留出空间,实际上。创建浮动框使文本围绕图像。即浮动元素旁边的行框被缩短。

要想阻止浮动元素对行框的影响,可以对包含这些行框的元素应用clear属性,其值可以是left,right,both或None;它表示框的那些边不应该挨着浮动框,其实质是浏览器对这些元素添加了一个外边距,使其下降位置到浮动框下边。

通过更多例子来说明浮动和清理,假设有一个图片和文本,你想让图片在左,文本在右,两者被包含在一个div中。

.news{

  background-color:gray;

 border:1px solid black;

}

.news  img{

  float:left;

}

.news p{

 float:right;

 }

<div>

  <img src=""/>

  <p>some thing</p>

</div>

 由于浮动元素不占据空间,所以运行结果如下图:

解决办法通常有三种:

1.添加一个新的div空元素在news里面,并对其设置clear属性,浏览器会自动赋予外边距。如图:

缺点:添加无意义的元素。

 2.也可以对父元素添加overflow:hidden属性,该属性会自动清理包含的任何浮动元素。

缺点:可能会对原来的布局有所影响,例如增加滚动条或截断内容。

3.使用js代码动态控制。

CSS定位概述的更多相关文章

  1. CSS定位(CSS定位概述、相对定位、绝对定位、浮动)

    CSS 定位属性 CSS 定位属性允许你对元素进行定位. 属性 描述 position 把元素放置到一个静态的.相对的.绝对的.或固定的位置中. top 定义了一个定位元素的上外边距边界与其包含块上边 ...

  2. CSS 定位 (Positioning)概述

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

  3. CSS定位——浮动定位

    CSS定位机制Ⅱ——浮动定位 float属性:进行浮动定位   left,right clear属性:清除浮动   left,right,both  ㈠  float属性 1.概述 ⑴div实现横向多 ...

  4. web前端学习(三)css学习笔记部分(2)-- css定位+盒子操作

    3.CSS定位 3.1定位 1.CSS定位: 改变元素在页面上的位置 2.CSS定位机制 普通流:元素按照其在HTML中的位置顺序决定排布的过程 浮动 绝对布局 属性 描述 position 把元素放 ...

  5. css定位

    文档流 所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版 ...

  6. 常用的CSS定位,XPath定位和JPath定位

    CSS定位 举例 描述 div#menu id为menu的div元素 div.action-btn.ok-btn class为action-btn和ok-btn的div元素 table#emailLi ...

  7. div+css定位position详解

    div+css定位position详解 1.div+css中的定位position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位),有他们才造就了div+css布局 ...

  8. CSS 定位

    一.CSS 定位和浮动   它们代替了多年来的表格布局.   定位的思想很简单,相对于正常位置.相对于父元素.另一个元素甚至是浏览器窗口的位置.   浮动在 CSS1 中被首次提出.浮动不完全是定位, ...

  9. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

    加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...

随机推荐

  1. webpack多页面配置

    const path = require('path'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const Html ...

  2. 在原生Windows安装Keras

    既然要深入学习,就不能和时代脱节,所以选择了keras,资源相对比较丰富.由于Windows饱受歧视,各种文档都不推荐使用.但我又没有换系统的成本,所以还是凑合下,毕竟他们给出了方法,稍微折腾一下还是 ...

  3. artTemplate使用

    bower install artTemplate --save https://github.com/aui/artTemplate 快速上手 模板定义:   <div id="co ...

  4. FPGA定点小数计算中截位形式的探讨

    在FPGA设计过程中难免会碰到需要进行截位,那定点小数的计算过程中我们需要注意些什么呢? 首先,我们考虑如下计算式. sin cos 数据形式是 FIX_32_30 X Y Z 数据形式是 FIX_3 ...

  5. 有关wkwebview和UIwebview获取html中的标签方法

    wkwebview方法如下: [webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id r ...

  6. Android Studio升级3.2.1后的合并XML出错的解决方案

    升级到3.2.1版本之后,遇到了合并XML出错的问题.错误内容大概如下: 当大家看到这个问题的时候,可能会有一行是可以点击的文件目录,点击到报错的地方. 如果没有可以点击的地方,也可以根据目录和 “行 ...

  7. Java初学者最佳的学习方法以及会遇到的坑(内含学习资料)!

    最近系统整理了一套java初学者最佳的学习方法以及会遇到的坑等,希望对你有所帮助. 目录: 一.学习java的前提 二.学习java的方法 三.学习java时的坑 四.学习java的路线(画重点) 一 ...

  8. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  9. 浅谈final关键字的用法

    1.final变量: 常和static一起使用,修饰成员变量或者本地变量.修饰后为常量,不可以再次初始化(再次引用),例如public static final String SUCCESS= &qu ...

  10. For、Foreach、和Parallel.For等简单的速度检测

    控制台代码  直接复制即可 static void Main(string[] args) { List<int> testData = new List<int>(); Ra ...