目录
一、浮动
1.浮动元素
2.浮动的详细内幕
3.实用行为
4.负外边距
5.浮动元素、内容和重叠
6.清除
二、定位
1.基本概念
2.定位的类型
3.包含块
4.偏移属性
5.宽度和高度
设置宽度和高度
限制宽度和高度
6.内容溢出和剪裁
溢出
7.内容剪裁
8.元素可见性
9.绝对定位
包含块与绝对定位元素
自动边偏移
10、非替换元素的放置和大小
11.替换元素的放置与大小
12、Z轴上的放置
13、固定定位
14、相对定位
首页 web前端 css教程 有关CSS浮动和定位定义和用法介绍

有关CSS浮动和定位定义和用法介绍

Aug 09, 2017 pm 03:51 PM
css 用法


一、浮动

1.浮动元素

1.对于浮动元素,有几点需要记住:
首先,会以某种方式将浮动元素从文档的正常流中删除,不过他还是会影响布局;
2.采取css的特有方式,浮动元素几乎“集自成一派”,不过他们还是对文档的其余部分有影响;
3.当一个元素浮动时,其他元素会“环绕”该元素。浮动元素周围的外边距不会合并。
4.不浮动:float:none用于防止元素浮动。

2.浮动的详细内幕

      在详细了解浮动的内容之前,首先我们要知道什么是包含块。
浮动元素的包含块时是其最近的块级祖先元素。
css提供了一系列的规则来控制浮动元素的摆放:

  • 浮动元素的左(或右)外边界不能超出其包含块的左(或右)内边界;

  • 浮动元素的左(或右)外边界必须是源文档中之前出现的左浮动(或右浮动)元素的右(或左)外边界,除非后出现浮动元素的顶端在先出现浮动元素的底端下面。

  • 左浮动元素的右外边界不会在其右边右浮动元素的做外边界的右边。

  • 一个浮动元素的顶端不能比其父元素的内顶端更高;

  • 浮动元素的顶端不能比之前所有的浮动元素或块级元素的顶端更高。

  • 如果源文档中一个浮动元素之前出现另一个元素,浮动元素的顶端不能比包含该元素所生成框的任何行框的顶端更高

  • 左(或右)浮动元素的左边(右边)有另一个浮动元素,前者的右外边界不能在其包含块的右(左)边界的右边(左边)

  • 浮动元素必须尽可能高的放置

  • 左浮动元素必须向左进尽可能远,右浮动元素则必须向右尽可能远。

3.实用行为

      首先,我们来看一下浮动元素比其父元素高时会有什么结果。
css2.1澄清了浮动元素行为的一个方面:浮动元素会延伸,从而包含其所有后代浮动元素。所以,通过将父元素置为浮动元素,就可以把浮动元素包含在其父元素内。

4.负外边距

      负外边距可能导致浮动元素移到其父元素的外面。通过设置负外边距,元素可能看上去比其父元素更宽,同样的道理,浮动元素也可能超过其父元素。
看上去,这个规则好像是和前面的相矛盾(浮动元素放在其父元素之外了);
但是仔细研究一下上一节的规则就可以发现,这个在技术上其实是允许的,一个浮动元素的外边界必须在父元素内,不过由于外边距为负,放置浮动元素的内容时就好像覆盖了自己的外边界一样。

5.浮动元素、内容和重叠

      还有一个有趣的问题,如果一个浮动元素与正常流中的内容发生重叠会怎么样?
css2.1指定以下规则:

  • 行内框与一个浮动元素重叠时,其边框,背景和内容都在浮动元素“之上”显示。

  • 块框与一个浮动元素重叠时,其边框和背景在该浮动元素“之下”显示,而内容在浮动元素“之上”显示。

6.清除

      有时候,我们可能并不总是希望内容流过浮动元素,某些情况下,可能要特意避免这种行为。例如:
      为了确保所有的h3元素不会放在左浮动元素的右边,可以设置h3{clear:left;}。这可以理解为“确保一个h3的左边没有浮动图像”;

二、定位

1.基本概念

      利用定位,可以准确的定义元素框相对于其正常位置应该出现在哪里,或者相对于父元素、另一个元素设置浏览器窗口本身的位置。

2.定位的类型

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

  • relative:
    元素框偏移某个距离。元素仍保持其未定位前的形状,他原本所占的空间仍保留。

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

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

3.包含块

对于浮动元素,其包含块的定义为最近的块级祖先元素。
对于定位,情况则比较复杂:
- “根元素”的包含块(也称初始包含块)由用户代理建立,在HTML中,根元素就是html元素,不过有些浏览器会使用body作为根元素。
- 对于一个非根元素,如果其position值是relative或static,包含块则由最近的块级框、表单元格或行内块祖先框的内容边界过程。
- 对于一个非根元素,如果其position值是absolute,包含块设置为最近的position值不是static的祖先元素。

4.偏移属性

      上面我们介绍了三种定位机制使用了四种属性来描述定位元素各边相对于其包含块的偏移。我们将这四个属性成为偏移属性,这对于完成定位是很重要的一部分。
- 对于top和bottom,相对于包含块的高度
- 对于right和left,相对于包含块的宽度
      这些属性描述了距离包含块最近边的偏移,所以又得名offset。

5.宽度和高度

设置宽度和高度

      如果想为定位元素指定一个特定的宽度,显然要用width属性,类似的,利用height,也可以为定位元素声明特定的高度。

限制宽度和高度

      可以使用min-width和min-height,为元素的内容区定义一个最小尺寸。
类似的,还可以使用属性max-width和max-height来限制元素的尺寸。

6.内容溢出和剪裁

溢出

      假设由于某种原因,一个元素固定为某个特定大小,但内容在元素中放不下,此时就可以利用overflow属性控制这种情况;
- visible:
默认值,表明元素的内容在元素框之外也能看见。一般的,这会导致内容超出其自己的元素框,但不会改变框的形状。
- hidden:  
元素的内容会在元素框的边界处裁剪,不会提供滚动接口使用户访问超出剪裁区域的内容;
- scroll:
元素的内容会在元素框的边界处裁剪,但是会提供一个滚动机制供用户使用。

7.内容剪裁

      如果一个绝对定位元素的内容溢出其内容框,而且overflow设置为要求裁剪该内容,通过使用属性clip可以改变剪裁区域的形状。
clip:rect(top,right,bottom,left);

8.元素可见性

      除了剪裁和溢出,还可以控制整个元素的可见性。
visibility:  
- visible 可见的
- hidden 不可见的。
- collapse  
- inherit
visibility:collapse 当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上,会呈现为 “hidden”。
visibility:hidden 当元素通过设置visibility处于“不可见”状态时,元素还是会影响文档的布局,就好像他还是可见一样。换句话说,元素还在那里,只是你看不见它。这与display:none有区别,后者不仅不可见。还会从文档中删除,所以对文档布局没有影响。

9.绝对定位

包含块与绝对定位元素

      元素绝对定位时,会从文档流中完全删除。然后相对于其包含块定位。这说明,绝对定位的元素可能覆盖其他元素,或者被其他元素覆盖。
      绝对定位元素的包含块是最近的position值不为static的祖先元素,创作人员通常会选择一个元素作为绝对定位元素的包含块,将其position指定为relative而且没有偏移。

自动边偏移

      元素的静态位置一词的大致含义是:元素在正常流中原本的位置。更确切的讲,“顶端”静态位置是从包含块的上边界到假想框的上外边距边界之间的距离。

10、非替换元素的放置和大小

      一般地,元素的大小和位置取决于其包含块。各个属性的值也会有一些影响,不过最主要的还是其包含块。

11.替换元素的放置与大小

      非替换元素和替换元素的定位规则大不相同。这是因为替换元素有固有的高度和宽度,因此其大小不会改变。
      确定替换元素位置和大小时,所涉及的行为用以下规则描述最为容易:
- 如果width设置为auto,width的实际使用值由元素内容的固有宽度决定。
- 在从左向右读的语言中,如果left的值为auto,要把auto替换为静态位置。从右向左同理;
- 如果left或right仍为auto,则将margin-left或margin-right的auto值替换为0;
- 如果此时margin-left和margin-right都还定义为auto,则将他们设置为相等的值,从而将元素在其包含块中居中;
- 在此之后,如果只剩下一个auto值,则将其修改为等于等式的余下部分。

12、Z轴上的放置

通过属性z-index进行控制

13、固定定位

      固定定位和绝对定位很类似,只不过固定元素的包含块是视窗。固定定位时,元素会完全从文档流中去除,不会有相对于文档中任何部分的位置。

14、相对定位

      理解起来最简单的定位机制就是相对定位。采取这种机制时,将通过使用偏移属性移动定位元素。

以上是有关CSS浮动和定位定义和用法介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

bootstrap怎么插入图片 bootstrap怎么插入图片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入图片有以下几种方法:直接插入图片,使用 HTML 的 img 标签。使用 Bootstrap 图像组件,可以提供响应式图片和更多样式。设置图片大小,使用 img-fluid 类可以使图片自适应。设置边框,使用 img-bordered 类。设置圆角,使用 img-rounded 类。设置阴影,使用 shadow 类。调整图片大小和位置,使用 CSS 样式。使用背景图片,使用 background-image CSS 属性。

Bootstrap列表如何移除默认样式? Bootstrap列表如何移除默认样式? Apr 07, 2025 am 10:18 AM

Bootstrap 列表的默认样式可以通过 CSS 覆盖来移除。使用更具体的 CSS 规则和选择器,遵循 "就近原则" 和 "权重原则",覆盖 Bootstrap 默认的样式。为避免样式冲突,可使用更具针对性的选择器。如果遇到覆盖不成功的情况,可调整自定义 CSS 的权重。同时注意性能优化,避免过度使用 !important,撰写简洁高效的 CSS 代码。

bootstrap按钮怎么用 bootstrap按钮怎么用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按钮?引入 Bootstrap CSS创建按钮元素并添加 Bootstrap 按钮类添加按钮文本

怎么建立bootstrap框架 怎么建立bootstrap框架 Apr 07, 2025 pm 12:57 PM

要建立 Bootstrap 框架,请按照以下步骤操作:通过 CDN 或安装本地副本安装 Bootstrap。创建一个 HTML 文档,将 Bootstrap CSS 链接到 <head> 部分。添加 Bootstrap JavaScript 文件到 <body> 部分。使用 Bootstrap 组件并自定义样式表以满足您的需要。

bootstrap怎么布局 bootstrap怎么布局 Apr 07, 2025 pm 02:24 PM

使用 Bootstrap 布局网站,需要使用网格系统,将页面划分为容器、行和列。首先添加容器,然后在其中添加行,并在行内添加列,最后在列中添加内容。Bootstrap 的响应式布局功能根据断点(xs、sm、md、lg、xl)自动调整布局,通过使用响应式类可以实现不同屏幕尺寸下的不同布局。

bootstrap导航栏怎么设置 bootstrap导航栏怎么设置 Apr 07, 2025 pm 01:51 PM

Bootstrap 提供了设置导航栏的简单指南:引入 Bootstrap 库创建导航栏容器添加品牌标识创建导航链接添加其他元素(可选)调整样式(可选)

bootstrap如何上传文件 bootstrap如何上传文件 Apr 07, 2025 pm 01:09 PM

可以通过 Bootstrap 实现文件上传功能,步骤如下:引入 Bootstrap CSS 和 JavaScript 文件;创建文件输入字段;创建文件上传按钮;处理文件上传(使用 FormData 收集数据,然后发送到服务器);自定义样式(可选)。

bootstrap怎么看日期 bootstrap怎么看日期 Apr 07, 2025 pm 03:03 PM

答案:可以使用 Bootstrap 的日期选择器组件在页面中查看日期。步骤:引入 Bootstrap 框架。在 HTML 中创建日期选择器输入框。Bootstrap 将自动为选择器添加样式。使用 JavaScript 获取选定的日期。

See all articles