对于网页页面布局来说,使用定位进行布局十分的方便。

  绝对定位(使用绝对定位应当将父元素设置为相对定位,否则元素绝对定位的基准会一直寻找外层非静态定位元素):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box0{ width: 200px; height: 200px; position: relative;background: #cfa }
.box0-1,.box0-2{ width: 50px; height: 50px; }
.box0-1{ position:absolute; left: 50px; top: 50px; background: #567 }
.box0-2{ position:absolute; left: 50px; top: 50px; background: #5a2}
</style>
</head>
<body>
<div class="box0">
<div class="box0-1">0-1</div>
<div class="box0-2">0-2</div>
</div>
</body>
</html>

  结果如下:

0-1
0-2

  如果不使用定位,要实现这样的效果,需要使用CSS属性为:

.box0{  width: 200px; height: 200px;background: #cfa; overflow: hidden }
.box0-1,.box0-2{ width: 50px; height: 50px; }
.box0-1{ margin: 50px 0 0 50px; }
.box0-2{ margin: 0 50px 0 100px; }

  使用边距和浮动是一个计算的过程,需要把握好每一个像素之间的关系。而使用绝对定位就是单纯的找位置,只要量得住,那就找的准,直接粗暴。需要注意的是,绝对定位的元素脱离了标准文档流,其本身的位置并不会保留,所以不能和浮动同时使用。并且也不建议和margin一起使用。

  可以使用绝对定位将元素进行垂直方向的居中,需要配合CSS3的transform属性。

div {
width: 100%;
height: 100px;
position: absolute;
top: 50%;
left:;
transform: translateY(-50%);
}

  translateY函数是在元素Y方向上进行位移,使用百分比是是依照元素盒模型高度为100%的。这种定位可以用于元素高度不确定的情况,当然能使用弹性盒模型更加方便。

  对于相对定位来说,由于元素本身的位置并不会消失,所以配合浮动更加好用,否则使用绝对定位更方便。

  如下(便于观察,两个小块设置100的上外边距,此时原本位置应从下方3/4开始):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box1{ width: 200px; height: 200px; background: #abc }
.box1-1,.box1-2{ width: 50px; height: 50px; margin-top: 100px; float: left; position: relative; }
.box1-1{ top: 50px; left: 50px; background: #a2c; }
.box1-2{ bottom: 50px; right: 50px; background: #22c; }
</style>
</head>
<body>
<div class="box1">
<div class="box1-1">1-1</div>
<div class="box1-2">1-2</div>
</div>
</body>
</html>

  结果如下:

1-1
1-2

  相对定位的相对,就是指没有设置定位值,元素所在的位置,根据代码顺序,后者会对前者内容进行覆盖。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box2{ width: 200px; height: 200px; background: #ca9 }
.box2-1{ width: 50px; height: 50px; position: fixed; }
.box2-1{ top: 50px; left: 50px; background: #4b3; }
</style>
</head>
<body>
<div class="box2">
<div class="box2-1">我被固定了</div>
</div>
</body>
</html>

  结果自己找吧:

我被固定了

  结果不是根据父级元素定位的,显示不出(和上一篇的旋转一样)暂时不知道为什么。

  总之,不同的定位方式有不同的作用,使用定位的目的是让代码简洁直观,所以具体使用哪一种应当根据实际情况而定。

CSS定位使用方法的更多相关文章

  1. 【java + selenium3】窗口基本操作及8大定位元素方法总结(一)

    一.窗口基本操作 1. 关于窗口的设置都是由window对象提供的: 获取window的对象方法: driver.manage().window(); //1.获取 window 对象 Window ...

  2. 简单CSS定位瀑布流实现方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)

    Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...

  4. WebDriver定位元素方法

    如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.na ...

  5. CSS垂直水平居中方法整理

    CSS定位中常常用到垂直居中,比如覆盖层上的弹框. 兼容性比较好的方法: <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transition ...

  6. 总结Selenium自动化测试方法(三)WebDriver定位元素方法

    三.WebDriver定位元素 推荐使用的webdriver是firefox,因为他的firebug更能可以帮助定位页面元素使用 # create a new Firefox session cls. ...

  7. CSS定位(postion)和移动(float)

    5.定位和移动:Positioning(定位)CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧 ...

  8. CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位

    其实前面的标准流和浮动流都很理解,就是定位不太好理解,特别是相对定位和绝对定位,很多刚开始学的同学不好区分.因此这里,小强老师和大家一起分享CSS定位的学习. 通过我们前面的学习,我们网页布局方法: ...

  9. CSS实现三角形方法一--rotate+relative

    方法说明:两个正方形,一个小的,一个大的,将大的正方向进行旋转,然后移动到小的正方形的合适位置,覆盖小正方形的一部分,使小正方形剩余部分为三角形,再把大正方形的背景色改为浏览器窗口的颜色. 用到知识: ...

随机推荐

  1. Cocos2D场景中对象引用为nil时的判断

    如果该对象在SpriteBuilder中属性中设置了name,则检查是否 [self.scene getChildByName:@"theNameOfTheNode" recurs ...

  2. AngularJS进阶(二十六)实现分页操作

    JS实现分页操作 前言 项目开发过程中,进行查询操作时有可能会检索出大量的满足条件的查询结果.在一页中显示全部查询结果会降低用户的体验感,故需要实现分页显示效果.受前面"JS实现时间选择插件 ...

  3. 怎样使用projectproperty sheet(.vsprops)来管理工程

    怎样使用projectproperty sheet(.vsprops)来管理工程 IDE:VS2005 前言 Project Property Sheet的意思是项目属性表,在大型项目中基本上都会使用 ...

  4. 【一天一道LeetCode】#8. String to Integer (atoi)

    一天一道LeetCode系列 (一)题目 Implement atoi to convert a string to an integer. Hint: Carefully consider all ...

  5. 【58】Spring总结之注解(2)

    启用注解配置: 1.context:annotation-config 该配置表示启用注解. 2.context:component-scan base-package="." 该 ...

  6. MinHash 原理

    最小哈希原理介绍 MinHash是基于Jaccard Index相似度(海量数据不可行)的算法,一种降维的方法A,B 两个集合:A = {s1, s3, s6, s8, s9}  B = {s3, s ...

  7. JDBC详解(汇总)

    from:http://www.cnblogs.com/lee/archive/2007/08/25/869656.html:http://blog.csdn.net/lovesomnus/artic ...

  8. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  9. leetCode(66)-Excel Sheet Column Title

    题目: Given a positive integer, return its corresponding column title as appear in an Excel sheet. For ...

  10. TCP浅谈为什么3次握手

    <计算机网络>中的例子是这样的,"已失效的连接请求报文段"的产生在这样一种情况:客户发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连 ...