• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > css 相对定位 绝对定位 浮动 分析

css 相对定位 绝对定位 浮动 分析

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含相对定位,绝对定位等相关知识,佚名 希望在学习及工作中可以帮助到您

CSS 相对定位

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

如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。

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

如下图所示:

CSS 相对定位实例

注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
那么我们就会想了怎么让框三把框二覆盖呢,很自然的想到把框3的z-index设为一个优先级高的值如100,但是这样并不能得到我们想要的结果,必须把框2的z-index设为优先级低的如-1,
我猜想是因为框2已经脱离了文档流,所以只设置框3的z-index对框2起不到作用,所以只能对框2操作了。大家也可以去试试代码如下在ie7下通过:
<html>
<head runat="server">
    <title>Untitled Page</title>
<style type="text/css">
        span
        {
            background-color: Red;
            width: 30px;
            height: 30px;
        }
        #box_relative
        {
            position: relative;
            left: 10px;
            top: 10px; background-color: gray;z-index:-1;
        }
    </style>
</head>
<body>
    <span></span><span id="box_relative"></span><span style="z-index:30"></span>
</body>
</html>

CSS 绝对定位

绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

普通流中其它元素的布局就像绝对定位的元素不存在一样:

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

如下图所示:

CSS 绝对定位实例

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

对于定位的主要问题是要记住每种定位的意义。所以,现在让我们复习一下学过的知识吧:相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。

注释:根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。

提示:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。

同样的道路如果想让框1,3在2之上的话也需要在框2上设置z-index,而且如果只在框1,3上设置的话无效。大家也可以去试试代码如下在ie7下通过:
<html>
<head runat="server">
    <title>Untitled Page</title>
<style type="text/css">
        span
        {
            background-color: Red;
            width: 30px;
            height: 30px;
        }
        #box_relative
        {
            position: absolute;
            left: 20px;
            top: 20px; background-color: gray;
        }
    </style>
</head>
<body>
    <span style="z-index:30"></span><span id="box_relative"></span><span style="z-index:30"></span>
</body>
</html>

CSS 浮动

请看下图,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘:

CSS 浮动实例 - 向右浮动的元素

再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。

如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

CSS 浮动实例 - 向左浮动的元素

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

CSS 浮动实例 2 - 向左浮动的元素

CSS float 属性

在 CSS 中,我们通过 float 属性实现元素的浮动。

如需更多有关 float 属性的知识,请访问参考手册:CSS float 属性。

行框和清理

浮动框旁边的行框被缩短,从而给浮动框留出空间,行框围绕浮动框。

因此,创建浮动框可以使文本围绕图像:

行框围绕浮动框

要想阻止行框围绕浮动框,需要对该框应用 clear 属性。clear 属性的值可以是 left、right、both 或 none,它表示框的哪些边不应该挨着浮动框。

为了实现这种效果,在被清理的元素的上外边距上添加足够的空间,使元素的顶边缘垂直下降到浮动框下面:

clear 属性实例 - 对行框应用 clear

这是一个有用的工具,它让周围的元素为浮动元素留出空间。

让我们更详细地看看浮动和清理。假设希望让一个图片浮动到文本块的左边,并且希望这幅图片和文本包含在另一个具有背景颜色和边框的元素中。您可能编写下面的代码:

.news {
  background-color: gray;
  border: solid 1px black;
  }

.news img {
  float: left;
  }

.news p {
  float: right;
  }

<div class="news">
<img src="news-pic.jpg" />
<p>some text</p>
</div>

这种情况下,出现了一个问题。因为浮动元素脱离了文档流,所以包围图片和文本的 div 不占据空间。

如何让包围元素在视觉上包围浮动元素呢?需要在这个元素中的某个地方应用 clear:

clear 属性实例 - 对空元素应用清理

不幸的是出现了一个新的问题,由于没有现有的元素可以应用清理,所以我们只能添加一个空元素并且清理它。

.news {
  background-color: gray;
  border: solid 1px black;
  }

.news img {
  float: left;
  }

.news p {
  float: right;
  }

.clear {
  clear: both;
  }

  


 

您可能想查找下面的文章:

  • css相对定位使用示例
  • css relative相对定位的top值在不同浏览器中使用js获取的差异
  • UL里的LI元素左浮动层一行显示时使其居中的方法
  • list-style-image无法准确定位通过(li的背景模拟或相对定位)解决
  • div+css相对定位和绝对定位用法实例详解
  • css 相对定位 绝对定位 浮动 分析

相关文章

  • 2017-08-06IE6,IE7下实现white-space:pre-wrap
  • 2017-08-06css在各种浏览器中的不同写法整理(IE与FF)
  • 2017-08-06css expression实现的图片自动缩放
  • 2017-08-06font-size定义为0在IE6下的妙用
  • 2017-08-06CSS 网站性能优化笔记
  • 2017-08-06CSS的background属性及CSS3的背景图片设置总结
  • 2017-08-06div style属性中设置其border无效是什么情况如何解决
  • 2017-08-06min-height和min-width两个最小高度和最小宽度兼容多浏览器版本
  • 2017-08-06bootstrap3.0教程之排版详细使用教程(标题、页面主体、强调、缩略语等用法)
  • 2017-08-06如何用css代码实现有立体效果的表格

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 前端必须要掌握的几个CSS3的属性详解
    • css3实现3D色子翻转特效
    • 学习DIV+CSS难不难 需要掌握哪些知识
    • CSS中的选择器种类总结及效率比较
    • css3高级选择器使用方法
    • 超出部分自动换行兼容多浏览器
    • css hack总结 图片整理版
    • CSS利用伪元素实现导航栏斜线分隔
    • CSS3制作Dropdown下拉菜单的方法
    • 格式png24透明底 多种解决png24格式图片在ie6中透明问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有