CSS自学笔记(7):CSS定位

很多时候,我们需要对一些元素进行自定义排序、布局等,这是就需要用到CSS的定位属性了,用这些属性对一些元素进行自定义排序、布局等操作,可以改变浏览器默认的死板的排序。

CSS定位的功能很容易理解,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。

CSS的定位(position)属性有四种不同的定位类型,从而影响元素框的声称方式。

CSS 内边距属性

属性 描述 备注
static 元素框正常生成
  • 块级元素生成一个矩形框,作为文档流的一部分。

  • 行内元素则会创建一个或多个行框,置于其父元素中。
relative 元素框偏移某个距离 元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute 元素框从文档流完全删除,并相对于其包含块定位
  • 包含块可能是文档中的另一个元素或者是初始包含块。

  • 元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。
  • 元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed 元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。  

CSS的定位机制:普通流,浮动,定位

1.普通流

普通流中的元素框的位置是由(X)HTML中的位置决定的。

块级元素从上到下依次排列。

框之间的垂直距离有框的margin属性计算得到,行内元素在一行中水平布局。

2.定位

定位有相对定位绝对定位之分。

相对定位,就是要定位的元素会(相对于普通流中的位置)偏移某个距离,元素仍保持其未定位以前的形状,它原本所占用的空间继续保留。移动元素可能会覆盖其他元素。

#box_relative {
  position: relative;
  left: 30px;
  top: 20px;
}

绝对定位,就是将要定位的元素框从普通流中完全删除,并相对与其包含块(可能是文档中另一个元素或者是初始包含块)定位。该元素原先在普通流中所占用的空间会关闭。

#box_relative {
  position: absolute;
  left: 30px;
  top: 20px;
}

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

注:绝对定位与普通流无关,所以它可以覆盖页面上的其他元素,这时可以通过设置z-index属性来控制这些框的堆放次序。

3.浮动

浮动,可以左右移动元素框,只得到它的边缘碰到包含框或者另一个浮动框为止。浮动的框脱离了普通流。

如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”

在CSS中,我们可以通过float属性来完成浮动效果。

浮动的效果可以用在很多元素中

div{
  float:right;
  width:120px;
  margin:0 0 15px 20px;
  padding:15px;
  border:1px solid black;
  text-align:center;
}

使段落的首字符浮动于左侧,并向这个字符添加样式

span{
  float:left;
  width:0.7em;
  font-size:400%;
  font-family:algerian,courier;
  line-height:80%;
}

也可以用浮动效果来完成一列具有超链接的菜单

ul{
  float:left;
  width:100%;
  padding:0;
  margin:0;
  list-style-type:none;
}
a{
  float:left;
  width:7em;
  text-decoration:none;
  color:white;
  background-color:#06C;
  padding:0.2em 0.6em;
  border-right:1px solid white;
}


CSS自学笔记(7):CSS定位

时间: 2024-12-30 13:11:42

CSS自学笔记(7):CSS定位的相关文章

CSS自学笔记(10):CSS3盒子模型

CSS3为CSS技术的升级版本.最新版本. 就CSS而言,它是一个模块,是一个庞大而又复杂的模块,但是在CSS3中,将这一个庞大的模块分解为一个个容易理解的同时又很精简的小模块,同时CSS3中又添加了一些新的模块,所以CSS3朝着模块化的方向发展. CSS3中比较重要的模块有:选择器.盒子模型.背景和边框.文字特效.2D/3D转换.动画.多列布局.用户界面. CSS3的选择器常用的和CSS选择器差不多. CSS3 盒子模型 盒子模型是CSS3很重要的一个模型,它是指元素以何种方式显示以及元素间如

CSS自学笔记(11):CSS3背景和边框

CSS3 背景 在CSS3中新增了多个关于背景的属性,可以让我们对背景有了更多更好的操作,减少用第三方工具对背景图片进行修改美化. CSS3中主要是通过定义backgrounp中的各个属性来控制背景(高宽,位置,透明度----). 关于背景的部分常用属性有(*为CSS3中新增属性): 值 描述 background-color 规定要使用的背景颜色. background-position 规定背景图像的位置. background-size* 规定背景图片的尺寸. background-rep

CSS自学笔记(3):CSS样式表的使用

当浏览器读到一个样式表时,浏览器会根据这个样式表来格式化html文档,从而表现出各式各样的网页. 想要浏览器读到样式表,有三种方法: 1.外部样式表 外部样式表可以理解为.CSS文件.当多个页面使用同一个样式的时候,外部样式表是一个很理想的选择. 在使用外部样式表的情况下,可以通过改变一个文件来改变整个站点的外观,无需在调整html文件,尤其是多个页面使用同一个样式的时候. 每个html页面使用标签<link>来连接外部样式表: <head> <link rel="

CSS自学笔记(5):CSS的样式

CSS中拥有各种各样的样式表,而基本的样式有背景,文本,字体,链接,列表,表格,轮廓. 一.CSS-背景 CSS中允许用纯色背景,也允许用图片来创建复杂的个性背景. p {background-color: #000;} 是用纯色作为背景.这时你可以定义其他属性,生成不同效果的背景. CSS中也可以用图片作为背景,这是就需要使用background-image属性了,如果属性值为一个URL值,并且图片文件存在,那么就可以看到用该图片做为背景的网页了 body {background-image:

CSS自学笔记(2):CSS语法

CSS的语法规则主要有两个分构成选择器和声明(声明问一条或者多条). selector {declaration1; declaration2; ... declarationN } 选择器(selctor)是指你要改变样式的html元素.选择器有很多种,常用的id选择器和类选择器. 声明(declaration)是一个属性和一个值组成(要注意书写). 属性(property)都有一个值,属性和其值用":"分开. selector {property: value} 上面CSS代码的基

CSS自学笔记(14):CSS3动画效果

在CSS3中也新增了一些能够对元素创建动画处理的属性.通过这些新增的属性,我们可以实现元素从一种样式变换成另一种样式时为元素添加动态效果,我们就可以取代网页中的动态图片.flash动画和JavaScript了. CSS3中新增的动画效果的属性以及主流浏览器支持情况 属性 浏览器支持 transition IE Firefox Chrome Safari(-webkit-) Opera @keyframes IE Firefox Chrome(-webkit-) Safari(-webkit-)

CSS自学笔记(13):CSS3 2D/3D转换

CSS3中新增了对元素进行2D和3D的转换效果,这样可以是开发人员很方便的做出视觉效果更好的网页来. 通过CSS3中属性的定义,我们可以对元素进行移动.缩放.拉伸.旋转等等,可以通过定义transform属性来实现转换效果. 浏览器支持 属性 浏览器支持 2D transform IE Firefox Chrome(-webkit-) Safari(-webkit-) Opera 3D transform IE Firefox Chrome(-webkit-) Safari(-webkit-)

CSS自学笔记(12):CSS3文字特效

在CSS3中新增了多个文本属性,同样有了这些属性我们在进行问题特效处理时,就尽可能少的用到其他软件去制作特效文字了. 在以前使用CSS进行web开发的时候,必须使用计算机上安装好的字体,如果有些用户的计算机上未安装该字体,可能会达不到开发人员的预期效果.而通过CSS3,开发人员可以使用他们喜欢的任意字体,只要将需要的字体文件放到web服务器上就OK了. 注:现在的主流浏览器不支持部分新增属性. 最简单的文本特效就是给文本添加阴影了. 可以给文本添加水平偏移值.垂直偏移值和模糊半径,也可以定义阴影

CSS自学笔记(9):CSS拓展(二)

CSS图片 当一个网页上有一张或多张图片,而且这些图片的尺寸比较大时,为了是网页布局更紧凑合理,我们可以将这些图片放到一个图片库里,可以有效的防止图片过大可能会对网页布局造成的不良影响. 通过CSS我们就可以实现这些操作,下面是一个简单的例子: 内马尔破门瞬间 街舞助兴 激情墨西哥 梅西的任意球来 源代码是: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 &