CSS学习------CSS定位(position)与浮动(float)

position属性:用来对元素进行定位

定位的意义

定位允许你定义元素框相对于其正常位置应该出现的位置、

相对于父元素、

相对于另一个元素、

相对于浏览器窗口本身的位置。

定位分为:绝对定位和相对定位。

相对定位:

如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。

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

示例:

<html>
  <head>
  	<style type="text/css">
  	  div{
  	  	width: 50px;
  	  	height:50px;
  	  	background: #00ff00;
  	  	border:1px solid black;
  	  }
  	</style>
  </head>
  <body >
  	<div></div>
  	<div style="position:relative; left:15px; top:10px;background:#ff00ff"></div>
  	<div></div>
  </body>
</html>

结果:由结果可知,移动后其他图片位置不会变化。被定位元素相对于自己初始                                 的位置定位。

绝对定位:

设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

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

示例:

<html>
  <head>
  	<style type="text/css">
  	  div{
  	  	width: 50px;
  	  	height:50px;
  	  	background: #00ff00;
  	  	border:1px solid black;
  	  }
  	</style>
  </head>
  <body style="position:relative;">
  	<div></div>
  	<div style="position:absolute; left:15px; top:10px;background:#ff00ff"></div>
  	<div></div>
  </body>
</html>

结果:由结果可知,其他元素的位置移动,被定位元素相对于父元素定位。

总结:

    相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。

CSS浮动:

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

由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

浮动规则参见:http://www.w3school.com.cn/css/css_positioning_floating.asp

示例:使文字环绕图片(原理是:浮动框旁边的行框(这里是文字框)会被缩短)

<html>
  <meta charset="utf-8">
  <body>
  <div style="width: 150px; height:150px; background: #00ff00; border:1px solid black;">
      <div style="background:#ff00ff; width:50px; height:50px; float:left"></div>
      <p >这是一个浮动的示例,文字会环绕图片,图片设置左浮动,文字不设置浮动。</p>
  </div>
  </body>
</html>

要想阻止行框围绕浮动框,需要对该框应用 clear 属性

clear 属性规定元素的哪一侧不允许其他浮动元素。

clear取值:left,right,both,none,inherit

示例:

<html>
  <meta charset="utf-8">
  <body>
  <div style="width: 150px; height:200px; background: #00ff00; border:1px solid black;">
  	<div style="background:#ff00ff; width:50px; height:100px; float:left"></div>
        <p>这是没有设置clear的元素</p>
  	<p style="clear:left">这是一个浮动的示例,这里设置了clear,文字不会环绕图片</p>
  </div>
  </body>
</html>

clear还可以有很多使用方式!!!详见:参考链接中的“行框与清理”

position的另外几个属性:

static:元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

 fixed:元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身

其他的定位属性

   

overflow 设置当元素的内容溢出其区域时发生的事情。
clip 设置元素的形状。元素被剪入这个形状之中,然后显示出来。
vertical-align 设置元素的垂直对齐方式。
z-index 设置元素的堆叠顺序。(z-index:0 是默认,-1的级别更低)

overflow的取值:visible(默认),scroll,hidden,auto,inherit;

clip:用于定义一个剪裁矩形。

对于一个绝对定位元素,在这个矩形内的内容才可见。

出了这个剪裁区域的内容会根据 overflow 的值来处理。

剪裁区域可能比元素的内容区大,也可能比内容区小。

取值:rect(toprightbottomleft),auto;

小技巧:position设置为absolute,结合clip属性可以对图像进行切割。

img 
{
position:absolute;
clip:rect(0px 50px 200px 0px)
}

position设置为absolute,结合Z-index属性可以实现图像位于文字下方的效果

img.x
{
position:absolute;
left:0px;
top:0px;
z-index:-1
}

CSS学习------CSS定位(position)与浮动(float)

时间: 2024-12-28 09:38:48

CSS学习------CSS定位(position)与浮动(float)的相关文章

web前端css定位position和浮动float

最近做了几个项目:配资公司,ecmal商城等,客户对前台要求都很高.所以,今天来谈谈css的基础,以及核心,定位问题. div.h1或p元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框”.与之相反,span和h3等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”. 在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联. 块级元素的文本行也会发生类似的情况.假设有一个包含三行文本的段落.每行文本形成一个无名框.无法直接对无名块或行框应用样式,因为没有可以

CSS学习笔记——定位position属性的学习

今天学习之前剩下的一个问题:CSS的position属性.首先归纳出和position相关的问题: position作为一个属性,它一共有哪几个属性值? position常用的属性值有哪几个?分别有什么特点? 第一个问题:position作为一个属性,它一共有哪几个属性值? 对于position属性,他一共有5个值,分别是 static:默认值.没有定位,元素出现在正常的流中. relative:生成相对定位的元素,相对于其正常位置进行定位.正常位置也就是指如果没有position属性它会出现的

如何使用html的定位position和浮动float

语法: position:static (静态定位) |  absolute (绝对定位) |  fixed (固定定位) |  relative  (相对定位) 属性参数: static:静态定位,无特殊定位,对象遵循HTML定位规则(html的默认状态) absolute:绝对定位,对象脱离文档流,需要使用 left.top.right.bottom等属性进行精确地定位.可以运用z-index属性进行层叠.(使用绝对定位时如果出现元素飘动,没有在你指定的位置上,可以在元素的父级元素上使用相对

CSS定位机制:浮动 float及清除浮动的常用方法

CSS的定位机制 1.普通流(标准流) 默认状态,元素自动从左往右,从上往下排列 块元素的特征: 独占一行 可以设置宽高 如果不设置宽度,宽度默认为容器的100% 常见的块元素:div p h1-h6 ul ol li dl dt d 行内元素的特征: 与其他元素同行显示 不可以设置宽和高 宽和高就是文字或图片的宽高 常见的行内元素:span a b i u em 2.浮动 浮动基础 会使元素向左或向右移动,只能左右,不能上下 浮动元素碰到包含框或另一个浮动框,浮动停止 浮动元素之后的元素将围绕

从零开始学_JavaScript_系列(17)——CSS&lt;4&gt;(定位、遮罩、float、弹性布局flex)

部分可能不兼容低版本浏览器(比如IE) 部分图片来自网易云课堂,侵.私信.删 (60)定位 ①position ②值: static:默认,无定位 relative:相对定位,仍在文档流之中(其他的元素不变),参照物相对于原来的位置进行定位.会压在其他的元素上面.作用是为绝对定位元素提供参照物. absolute:绝对定位,脱离文档流(后续元素会在绝对定位元素的前序元素的后面),默认宽度是内容宽度,参照物是第一个定位的祖先/根元素(根元素是html元素),如果祖先没有定位元素,那么会导致其参照物

css 定位(position)与浮动(float)

html的文档流: 元素排版布局的过程:块级元素:从上至下:行内元素:从右至左. 脱离文档流: 方式:postion和float postion 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定. 不可以与float一起用. fixed 生成绝对定位的元素,相对于浏览器窗口进

CSS学习之定位

CSS相对定位        设置为相对定位(relative)的元素会偏移某个距离,元素仍保持其未定位前的形状,他原本所占的空间仍然保留 相对定位是一个非常容易掌握的概念,如果对一个元素进行相对定位,它将出现在它所在的位置上 ,然后可以通过设置垂直或者水平位置让这个元素相对于它的起点进行移动.如果将top 设置为20px, 那么框的位置就在顶部下方20px的地方,如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动. #box_relative {

总结一下CSS中的定位 Position 属性

在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位.元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定. relative:生成相对定位的元素,相对于其

CSS学习笔记一 如何清除浮动

<!<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=devic