2016.3.14__CSS 定位__第六天

CSS定位

CSS 定位机制

CSS中一共有三种基本定位机制:普通流、浮动、绝对定位。

如果不进行专门指定,所有的标签都在普通流中定位。

块级元素从上到下一个接一个的排列,框之间的垂直距离是由框的垂直外边距计算出来。

行内框在一行中水平布置。可以使用水平内边距、边框和外边距来调整它们之间的间距。

position属性

通过position属性,我们可以选择4种不同类型的定位,这会影响元素框生成的方式。

包括4个属性值:staticrelativeabsolutefixed

  • static : 元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分;行内元素则会创建一个或多个行框,置于其父元素中。
  • relative : 元素框偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍然保留。
  • absoulte : 元素框从文档流中完全删除,并相对于其包含块定位。元素原先在正常文档流中所占的空间会关闭,就好像元素不存在一样。元素定位后生成一个块元素,而不论原来它在正常文档流中生成何种类型的框。
  • fixed : 元素框的表现类似将position设置为absoulte,不过其包含块是浏览器窗口。

代码展示

position: static;

staticposition属性的默认值,无特殊定位。均为正常定位。

position: reletive;

HTML代码:

<p class="p1">
    我是p1
</p>
<p class="p2">
    我是p2
</p>
<p class="p3">
    我是p3
</p>

CSS代码:

.p1 {
    position: relative;
    left: 30px;
}
.p2 {
    position: relative;
    right: 30px;
}

效果图:

解释:

  • position: relative;参考的是自己原来得位置。
  • 第一行文字设置postion为relative,这并不会造成什么反应,但是我们还给p1设置了left: 30px;,这就会使元素距离左侧产生30px的间距。
  • 同样,第二行文字设置right: 30px,会使元素距离右侧30px的间距,就产生了跑到屏幕外面的情况
  • 第三方没有做任何处理,正常显示
  • 注意,一定要设置好position: relative;,否则toprightbottomleft是不起作用的。

position: absoulte;

HTML代码:

啦啦啦啦啦
<h1 class="h1">我是h1大标题</h1>

CSS代码:

.h1 {
    position: absolute;
    top: 100px;
    left: 100px;
}

没有设置CSS样式的样子:

设置了CSS样式后的样子:

解释:

  • postion: absolute;参考的是自身的包含块,也就是自己的父视图
  • 当设置了position: absolute;属性之后,标签的位置就变得绝对了。这个时候我们设置toprightbottomleft其中的任何一个属性,都可以设置标签的位置。
  • 注意,一定要设置好position: absolute;,否则toprightbottomleft是不起作用的。

position: fixed;

HTML代码:

<p class="one">
    我是p one
</p>
<p class="two">
    我是p two
</p>

CSS代码:

.one {
    position: fixed;
    top: 100px;
    left: 30px;
}
.two {
    position: fixed;
    top: 50px;
    right: 30px;
}

效果展示:

解释:

  • position: fixed;参考系是浏览器的窗口
  • 当给标签设置了position: fixed;属性之后,这些标签就只会相对于浏览器窗口进行位置的设定,忽略网页的滚动
  • 同样,如果不设置postion: fixed;属性,而是直接设置toprightbottomleft都不会起作用

参考文章:http://www.w3school.com.cn/css/css_positioning.asp

关于界面排布优先级的问题 z-index

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style media="screen">
    div{
      width: 100px;
      font-size: 50px;
      position: absolute;
      height: 100px;
    }
    .a{
      background-color: red;

      left: 0;
      top: 0;
        /*设置优先级,数字越大,放置越靠前*/
      z-index: 3;
    }
    .b{
      background-color: blue;
      left: 40px;
      top: 40px;
      z-index: 2;
    }
    .c{
      background-color: green;
      left: 80px;
      top: 80px;
      z-index: 100;
    }
  </style>
</head>
<body>
<div class="a">1</div>
<div class="b">2</div>
<div class="c">3</div>
</body>
</html>

关于界面元素框偏移

偏移前:

偏移后:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    .wrap{
        width: 300px;
        height: 300px;
        border: 1px solid red;
        margin: 100px;
        padding: 100px;
        position: relative;
        padding-left: 0;
    }
    .inner{
        width: 200px;
        height: 200px;
        background-color: green;
        padding: 50px;
        position: relative;
    }
    .content{
        width: 50px;
        height: 50px;
        background-color: red;
        position: absolute;
        left: 0;
    }
    </style>
</head>
<body>
    <!--
    position:absolute;默认是相对于窗口进行定位
     -->
    <div class="wrap">
        <div class="inner">
            <div class="content"></div>
        </div>
    </div>
</body>
</html>
时间: 2024-10-18 23:56:28

2016.3.14__CSS 定位__第六天的相关文章

2016.3.14__CSS 盒模型_第四天

首先对于之前的拖更表示抱歉,因公派,前往上海,所以耽误了几天,以后会尽量按时更新. 今天课程主要介绍盒模型的基本概念,同时告诉大家,盒模型具体元素的构成.在最后面会介绍一下定位. 今日课程预览 CSS 盒模型 概述 首先大家看到的是什么? 有月饼和月饼盒,对么? 所以,我们今天的课程就叫做"一个月饼盒引发的深思". 大家首先看到的是什么? 是不是一个盒子,很像我们中秋节的时候包装月饼的月饼盒子,对么? 其中两个月饼盒子之间的距离就是咱们要介绍的–>margin(外边距). 而咱们

同济大学刘儿兀教授揭秘室内定位大赛夺冠独家算法

同济大学刘儿兀教授揭秘室内定位大赛夺冠独家算法 2016-08-03 22:28 此前,泰伯网曾报道中国团队在2016微软全球室内定位技术大赛中荣获多项殊荣,其中,同济大学刘儿兀教授团队在室内定位技术大赛2D类摘得第一名桂冠.在这项代表室内定位技术最高水平的国际赛事中,刘教授究竟凭借哪些过硬的本领一路过关斩将,脱颖而出?前不久,泰伯网对刘教授进行了专访. 刘儿兀教授 众所周知,技术类赛事拼的是实力--刘儿兀教授认为其团队自主研发的室内定位技术正是其获胜的关键,但他也谦虚地表示,实际上第一名与第二

聊一聊前端模板与渲染那些事儿

欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面(不仅仅是代码): https://segmentfault.com/blog/frontenddriver 作为现代应用,ajax的大量使用,使得前端工程师们日常的开发少不了拼装模板,渲染模板.我们今天就来聊聊,拼装与渲染模板的那些事儿. 如果喜欢本文请点击右侧的推荐哦,你的推荐会变为我继续更文的动力 1 页面级的渲染 在刚有web的时候,前端与后端的交互,非常直白,浏览器端发出URL,后端返回一张拼好了的HTML串

使用 Raspberry Pi 上的传感器在 Node.js 中创建一个 IoT Bluemix 应用程序

先决条件 一个IBM Bluemix 帐号,一个 Raspberry Pi 2 或 3,一个 PIR 运动传感器 适用于本文的 Github 存储库 如果您是一位精明的 Bluemix 开发人员,您可能只想看看如何在 node.js 中与 IoT 建立连接,或者只想了解如何从此 github 存储库中拉取我的代码. git clone https://github.com/nicolefinnie/iot-nodejs-tutorial 以下是实现与 IBM IoT 平台连接在一起的 4 个 R

安装Exchange 2010&2016 共存时Arbitration邮箱重定位

接上篇文章,在尝试安装Exchange 2016与现存的Exchange 2010做混合部署的时候,上一篇文章中所提到的FederatedEmail 丢失如果是第一个步问题的话,今天给大家讲的就是第二个连环问题. 我们先看报错: 同样是来自在部署Mailbox role步骤出的错 细看上面截图中的内容,提到了 "systemMailbox", 提到了"arbitration", 所以怀疑这个报错和仲裁邮箱有关系. 再来看看系统报错日志,也是同样: Log Name:

我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)

一.面向对象基础 面向对象名词解释: 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写. 实例变量:定义在方法中的变量,只作

2016.3.16__HTML5新特性__第八天

HTML 5 + CSS 3 假设您认为这篇文章还不错,能够去H5专题介绍中查看很多其它相关文章. 今日代码非常冗杂,所以非常多内容直接摘自网上,假设造成您的不适.请留言告知. 非常感谢. 输入标签,通用标签和全局属性今日不做很多其它阐述,日后使用中遇到再另行说明. 1. HTML 5 新特性 今日课程预览 1.1 结构标签 1.1.1 <article> 标签 <article> 标签定义独立的内容. <article> 标签定义的内容本身必须是有意义的且必须是独立于

__x__(34)0908第五天__ 定位 position

position 定位 指将原始摆放到页面的任意位置. 继承性:no 默认值:static        没有定位,原始出现在正常的文档流中 可选值: static :    默认值,元素没有开启定位 relative :    开启元素的相对定位 absolute :    开启元素的绝对定位 fixed :    开启元素的固定定位,固定定位也是绝对定位的一种. 当开启 position 定位后,可以使用 left,top,right,bottom 进行偏移设置.   1. position

C++第六天笔记2016年02月23日(周二)A.M

1.    赋值运算符的重载: 什么情况下需要赋值运算符的重载? 当类中有指向对空间的指针变量时,需要重载赋值运算符以实现深拷贝. 浅拷贝问题: 当类中有指向对空间的指针变量时,前拷贝有可能会导致二次删除或内存泄露问题. 重载赋值操作符分5步:a=a; 1.1  判断是否为自赋值à自赋值则直接跳至第5步. 1.2  删除旧的堆空间(指针指向的旧的堆空间) 1.3  申请新的堆空间 1.4  内容拷贝 1.5  return* this; 浅拷贝: 1 #include <iostream> 2