CSS 定位详解
绝对定位与相对定位解密CSS定位属性
绝对定位与相对定位解密CSS定位属性
CSS定位属性是网页设计中非常重要的一部分,它可以帮助我们控制元素在页面中的位置。其中,绝对定位和相对定位是两种常用的定位方式。本文将解密绝对定位和相对定位的含义、应用以及它们之间的区别。
一、绝对定位
绝对定位是相对于最近的非静态定位(position为static以外的值)的父级元素来定位的。这意味着,当我们将一个元素设置为绝对定位时,它会从文档流中脱离,并根据其父级元素的位置进行定位。使用绝对定位时,我们需要通过top、right、bottom、left这四个属性来指定元素的位置。
1.1 示例代码:
```css
.absolute-position {
position: absolute;
top: 100px;
left: 200px;
}
```
1.2 应用场景:
- 当我们想要将一个元素放置在页面的固定位置时,可以使用绝对定位。例如,将一个广告条放在页面的右上角。
- 当我们需要在一个相对定位的元素内部进行布局时,可以使用绝对定位。例如,将一个提示框放置在某个容器内的指定位置。
二、相对定位
相对定位是相对于元素自身在文档流中的位置来定位的。使用相对定位时,我们可以通过top、right、bottom、left这四个属性来指定元素相对于其正常位置的偏移量。
2.1 示例代码:
```css
.relative-position {
position: relative;
top: 20px;
left: -10px;
}
```
2.2 应用场景:
- 当我们想要微调一个元素的位置时,可以使用相对定位。例如,将一个图片稍微往下、往右移动一些像素。
selenium css定位方法
selenium css定位方法
Selenium是一个用于自动化Web应用程序测试的工具,它支持
多种定位元素的方法,其中包括CSS定位方法。CSS定位方法是使
用CSS选择器来定位页面元素的一种方式,它可以通过元素的属性、层级关系、文本内容等来定位元素。
在Selenium中使用CSS定位方法,可以通过以下方式实现:
1. 通过class属性定位元素:
可以使用".classname"的方式来定位具有特定class属性值
的元素,例如:
driver.findElement(By.cssSelector(".classname"));
2. 通过id属性定位元素:
可以使用"#id"的方式来定位具有特定id属性值的元素,例如:
driver.findElement(By.cssSelector("#id"));
3. 通过标签名定位元素:
可以直接使用标签名来定位元素,例如:
driver.findElement(By.cssSelector("input"));
4. 通过属性定位元素:
可以使用属性选择器来定位具有特定属性值的元素,例如:driver.findElement(By.cssSelector("[name='username']"));
5. 通过层级关系定位元素:
可以使用空格来表示层级关系,例如:
driver.findElement(By.cssSelector("div input"));
6. 通过组合定位元素:
可以组合多个条件来定位元素,例如:
driver.findElement(By.cssSelector("input[name='username']") );
8种元素定位方式
8种元素定位方式
在进行网页设计的时候,定位是一个非常重要的环节,它关系到网页的美观度以及用户的使用体验。现在,我们来详细介绍一下8种元素定位方式。
1.静态定位:静态定位是元素在标准文档流中的默认位置。如果需要对元素进行微调,可以使用top、bottom、left、right来调整元素的位置。
2.相对定位:相对定位是以元素本身为基础进行定位,而不是以文档流为基础。通过top、bottom、left、right属性可以对元素进行微调。
3.绝对定位:绝对定位是基于父级元素中的位置进行定位的,跟文档流完全脱离。通过使用top、bottom、left、right属性以及z-index可以调整元素的层级关系和位置。
4.固定定位:固定定位是相对于浏览器窗口来定位的,当用户滚动页面时,这个元素不会随着滚动而改变其位置,而是固定在屏幕的某个位置。
5.浮动定位:浮动元素会脱离文档流,可以向左或向右浮动,直到它的外边缘碰到包含块或者另一个浮动元素的边缘为止。
6.粘性定位:粘性定位是CSS3新增的一种定位方式,它类似于相对定位和固定定位的混合形式。在滚动到某一位置时,元素会固定在那个位置,直到再次滚动。
7.网格布局:网格布局是CSS3中一种全新的布局方式,可以将元素按照网格进行排列。通过设置网格行和列以及元素所占的区域,可以达到灵活的布局效果。
8.flex布局:flex布局是CSS3中另一种全新的布局方式,它可以将元素排列在一个弹性盒子中。通过flex-direction、justify-content、align-items、flex-wrap等属性可以调整弹性盒子中元素的位置和布局方式。
CSS定位方式
CSS定位方式
CSS定位方式
一、定位属性
元素框是指包含每个元素的矩形框。元素内容与元素框共同形成了元素块。
定位是指设定元素块位置和大小。
上表中前6个属性是实际的定位属性,后面的4个有关属性用来设置元素框,或对元素框中的内容进行控制的属性。其中,position 属性是最主要的定位属性。
2.position定位
语法格式:
Position: static | absolute | fixed | relative
3.Absolute:参照浏览器的左上角,配合left、right、bottom 和top进行定位。如果没有设置这四个值,则默认依据父级的坐标原点为原始点。
Position:absolute
4.Relative:相对于某个元素的原始起点进行移动。
与绝对定位的区别:绝对定位的坐标原点为上级元素的原点,与上级元素有关;相对定位的坐标原点为本身偏移前的原点,与上级元素无关。
5.Fixed:固定定位。是绝对定位的特殊形式,固定定位的容器不会随着滚动条的拖动而变化位置。在视线中,固定定位的容器位置不会改变。
固定定位的参照位置不是上级元素块而是浏览器窗口。
使用固定定位的元素可以脱离页面,无论页面如何滚动,始终处在页面的同一位置上。
6.Z-index:层叠顺序。从深度上设定元素层叠的次序,其方法是每个元素指定一个数字,数字较大的元素将叠加在数字较小的元素之上。
z-index: auto | number
●Auto表示遵循父对象的定位
●Number是一个无单位的整数值,可以为负值。
该属性只作用在position的属性值为relative或absolute的对象,不能作用在窗口组件上。
CSS中的三种基本的定位机制
CSS中的三种基本的定位机制
CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
⼀、普通流
除⾮专门指定,否则所有框都在普通流中定位。普通流中元素框的位置由元素在(X)HTML中的位置决定。块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin 计算得到。⾏内元素在⼀⾏中⽔平布置。
⼆、定位
1、相对定位
被看作普通流定位模型的⼀部分,定位元素的位置相对于它在普通流中的位置进⾏移动。使⽤相对定位的元素不管它是否进⾏移动,元素仍要占据它原来的位置。移动元素会导致它覆盖其他的框。
<html>
<head>
<style type="text/css">
.box1{
background-color: red;
width:100px;
height:100px;
}
.box2{
background-color: yellow;
width:100px;
height:100px;
position: relative;
left: 20px;
}
.box3{
background-color: blue;
width:100px;
height:100px;
position: relative;
right: 20px;
}
</style>
</head>
<body>
<div class="box1">box1</div>
<div class="box2">box2</div>
css选择器定位方法
css选择器定位方法
CSS选择器是一种用于定位HTML元素的方法。通过使用不同的选择器,我们可以选择页面上的特定元素,然后对其进行样式设置或其他操作。本文将介绍一些常用的CSS选择器方法。
1. 元素选择器
元素选择器是最基本的选择器,它可以选择HTML页面中的特定元素。例如,要选择所有的段落元素,可以使用p选择器。要选择所有的标题元素,可以使用h1到h6选择器。
2. 类选择器
类选择器是通过为元素添加class属性来选择特定元素的方法。例如,要选择所有class为"container"的元素,可以使用.container 选择器。这样,所有具有"container"类的元素都会被选中。
3. ID选择器
ID选择器是通过为元素添加id属性来选择特定元素的方法。与类选择器类似,但是ID选择器是唯一的,每个页面上只能有一个相同的ID。要选择特定的ID元素,可以使用#id选择器。
4. 子元素选择器
子元素选择器可以选择某个元素的直接子元素。例如,要选择某个div元素下的所有段落元素,可以使用div > p选择器。
5. 后代元素选择器
后代元素选择器可以选择某个元素的所有后代元素。例如,要选择某个div元素下的所有段落元素,无论嵌套多少层,可以使用div p 选择器。
6. 相邻兄弟选择器
相邻兄弟选择器可以选择某个元素后面的紧邻元素。例如,要选择某个元素后面的紧邻段落元素,可以使用+选择器。
7. 伪类选择器
伪类选择器可以选择元素的特定状态或位置。例如,:hover伪类选择器可以选择鼠标悬停在元素上时的状态。:nth-child(n)伪类选择器可以选择元素的第n个子元素。
掌握CSS选择器精确定位HTML元素
掌握CSS选择器精确定位HTML元素
CSS选择器是前端开发中非常重要的一部分,它能够帮助我们准确地定位HTML元素,并对其进行样式的设置和修改。掌握CSS选择器的精确定位技巧,对于开发人员来说至关重要。在本文中,我们将介绍一些常用的CSS选择器及其使用技巧,帮助您更好地掌握CSS选择器的精确定位。
1. 基本选择器
基本选择器是最简单也是最常用的选择器,包括元素选择器、类选择器、ID选择器和通配符选择器。
- 元素选择器:通过元素名来选择HTML元素,例如"p"选择所有的段落元素,"h1"选择所有的一级标题元素。
- 类选择器:通过类名来选择HTML元素,以"."开头,例如
".container"选择所有具有container类的元素。
- ID选择器:通过id属性来选择HTML元素,以"#"开头,例如"#logo"选择id为logo的元素。
- 通配符选择器:选择所有的HTML元素,以"*"表示,例如"*"选择所有的元素。
2. 层次选择器
层次选择器能够根据元素之间的层次关系来选择HTML元素,包括后代选择器、子元素选择器和相邻兄弟选择器。
- 后代选择器:选择某个元素的后代元素,使用空格分隔,例如"div p"选择所有的段落元素,它们都是某个div元素的后代。
- 子元素选择器:选择某个元素的直接子元素,使用">"符号,例如"ul > li"选择所有的li元素,它们都是某个ul元素的直接子元素。
- 相邻兄弟选择器:选择某个元素的下一个相邻兄弟元素,使用"+"符号,例如"h1 + p"选择紧接在h1元素后面的第一个段落元素。
元素定位之cssselector(选择器定位)
元素定位之cssselector(选择器定位)CSS选择器是一种用来选择HTML元素的方法,它通过指定元素的一
些特征、属性和层次关系来定位元素。其中,CSS选择器中最强大的定位
方法之一是CSS选择器定位(CSS Selector Locators),也称为CSS选
择器定位。
CSS选择器定位有以下几种常用的方法:
2. 类选择器(Class Selector):通过选择元素的class属性值来
定位元素。在HTML中,可以通过在元素的class属性值前添加`.`(英文
句点)来指定类选择器。例如,通过`.header`选择所有class属性值为
`header`的元素。
3. ID选择器(ID Selector):通过选择元素的id属性值来定位元素。在HTML中,可以通过在元素的id属性值前添加`#`(井号)来指定
ID选择器。例如,通过`#logo`选择id属性值为`logo`的元素。
5. 子元素选择器(Child Selector):通过选择元素的直接子元素
来定位元素。子元素选择器使用`>`符号来表示。例如,通过`div > p`选
择所有直接子元素为`<p>`的`<div>`元素。
6. 后代元素选择器(Descendant Selector):通过选择元素的后代
元素来定位元素。后代元素选择器使用空格来表示。例如,通过`div p`
选择所有后代元素为`<p>`的`<div>`元素。
7. 兄弟元素选择器(Adjacent Sibling Selector):通过选择元素
CSS教程之定位
CSS之定位
总体介绍下:
CSS有3中定位机制,普通流【各元素按照HTML文档的顺序依次显示】,浮动,绝对定位。
1.相对定位position = relative.
顾名思义:相对与自己定位。
相对定位,元素设置left,top,bottom,right会相对与自己原来的位置,移动自己的位置。不管是否移动,它所占据的空间仍然是原来的空间【一定占据了原来的空间】。移动元素可能会覆盖其他的元素。
2.绝对定位position = absolute.
定位相对于它的祖先定位。
仔细观察上图,定位是你根据它的祖先,不是它原来的位置。
祖先:包含绝对定位元素的最近一层设置position:relative;position:absolute的元素;没有就根据文档定位,完全脱离文档流,不占据一点空间【相对定位是占据空间的】,所以可以设置z-index【这个属性知道用处吧】属性。
由于相对定位和绝对定位配合使用,用处太大,写几个例子给你看看。
帮助理解的小例子:
例子1:
/*********************************效果图**************************************/
以前是不是想在导航条某个位置显示下时间。Now you can do it !
/*****************************************************************************/ <div id="nav">
<div id="date">
css中元素定位方法
css中元素定位方法
在CSS中,元素的定位方法主要有以下几种:
1.静态定位:这是元素的默认定位方式,元素按照正常的文档流进行排列。使用position: static
属性设置。
2.相对定位:元素相对于其正常位置进行定位,因此“left:20px”会使元素向右移动20px。相对定位
的元素不会脱离文档流,因此会占据空间。使用position: relative属性设置。
3.绝对定位:元素相对于最近的已定位父元素(即设置了position: absolute或position: relative
的父元素)进行定位。如果没有已定位的父元素,那么元素相对于初始包含块(通常是html元素)进行定位。绝对定位的元素会脱离文档流,不占据空间。使用position: absolute属性设置。
4.固定定位:元素相对于浏览器窗口进行定位,即使在滚动页面时,它也不会移动。固定定位的元
素不脱离文档流,但会根据其设置的偏移量从正常位置偏移。使用position: fixed属性设置。
以上四种定位方式各有特点,可以根据具体需求选择使用。
CSS 定位
CSS 定位
CSS 定位概述
CSS 定位(Positioning) 属性允许你对元素进行定位。
CSS 定位和浮动
CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。
定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。
另一方面,CSS1 中首次提出了浮动,它以Netscape 在Web 发展初期增加的一个功能为基础。浮动不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。
一切皆为框
div、h1 或p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。
您可以使用display 属性改变生成的框的类型。这意味着,通过将display 属性设置为block,可以让行内元素(比如 元素)表现得像块级元素一样。还可以通过把display 设置为none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。
但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:
css中relative用法
一、概述
在CSS中,position属性用于定位元素的位置,而其中的relative值则是其中的一种定位方式。相对定位的元素会根据其在标准流中的初
始位置进行移动,但不会影响其他元素的位置。在接下来的内容中,
我们将详细介绍CSS中relative的用法。
二、使用方法
1. 在CSS代码中,使用relative定位一个元素可以通过以下步骤实现:```css
.element {
position: relative;
top: 30px;
left: 20px;
}
```
这段代码将使class为element的元素向下偏移30像素,向左偏移
20像素。
2. 理解相对定位的相关规则:
相对定位的元素会根据其在标准流中的初始位置进行移动。在移动后,元素所占据的空间仍然保留在原来的位置,其他元素不会填充这个空间。
三、相对定位的特点
1. 相对定位的元素移动后,依然占据原始空间,不影响其他元素的布局。
2. 相对定位是相对于元素在文档流中的初始位置进行定位,而不是相对于其他元素。
3. 相对定位的移动会触发重绘,但不会触发重排,因此性能消耗相对较小。
四、相对定位的应用场景
1. 调整元素的位置:通过相对定位可以轻松地调整元素的位置,使其偏移一定的距离,且不会影响周围元素的布局。
2. 与绝对定位结合使用:相对定位通常与绝对定位一起使用,用来确定绝对定位元素的参考位置。
五、示例代码
下面我们给出一个简单的示例代码,演示相对定位的使用方法:
```html
<!DOCTYPE html>
<html>
<head>
css position 用法
css position 用法
CSS `position` 属性用于指定元素的定位方式。
常用的 `position` 属性值有以下几种:
1. `static`:默认值,元素根据正常的文档流进行定位,无需设置 `top`、`bottom`、`left`、`right` 属性。
2. `relative`:相对定位,通过设置 `top`、`bottom`、`left`、
`right` 属性,相对于其正常位置进行定位。相对定位的元素仍保持文档流中的位置,并且其他元素不会被调整。
3. `absolute`:绝对定位,通过设置 `top`、`bottom`、`left`、
`right` 属性,在父元素或最近的定位祖先元素内进行定位。绝对定位的元素会脱离文档流,并且其他元素会被调整。
4. `fixed`:固定定位,通过设置 `top`、`bottom`、`left`、`right` 属性,相对于浏览器窗口进行定位。固定定位的元素不会随页面滚动而移动。
此外,还有两种特殊的 `position` 值:
1. `inherit`:继承父元素的 `position` 属性值。
2. `sticky`:粘性定位,元素根据正常文档流进行定位,但是
在滚动到特定位置时会变为固定定位。需要设置 `top`、
`bottom`、`left`、`right` 属性以及 `z-index` 属性才能生效。
这些 `position` 值可以与其他 CSS 属性(如 `top`、`bottom`、`left`、`right`、`z-index`)一起使用,以实现更灵活的定位效果。
css中四种定位的使用方法
css中四种定位的使用方法
CSS中的四种定位方法是:静态定位、相对定位、绝对定位和固定定位。每种定位方法都有其独特的特点和应用场景。本文将详细介绍这四种定位方法的使用方法和效果。
一、静态定位(Static Positioning)
静态定位是CSS中元素的默认定位方式,元素按照HTML文档流的顺序进行排列,不受任何定位属性的影响。在静态定位下,top、right、bottom和left属性无效。
静态定位适用于不需要特殊定位的元素,一般用于正常的文本和图片排列。对于静态定位的元素,不需要设置定位属性,可以直接使用默认的静态定位。
二、相对定位(Relative Positioning)
相对定位是相对于元素在正常文档流中的位置进行定位。使用相对定位后,可以通过设置top、right、bottom和left属性来调整元素的位置。相对定位不会影响其他元素的布局,其他元素仍然按照正常文档流排列。
相对定位适用于需要微调元素位置的情况,可以将元素相对于其正常位置进行上下左右的偏移。可以通过设置正值或负值来调整元素的位置。例如,设置top: 10px;可以将元素向下偏移10像素。
三、绝对定位(Absolute Positioning)
绝对定位是相对于最近的已定位祖先元素或根元素进行定位。使用绝对定位后,可以通过设置top、right、bottom和left属性来精确控制元素的位置。绝对定位会脱离正常文档流,不会影响其他元素的布局。
绝对定位适用于需要精确定位元素的情况,可以将元素放置在页面的任意位置。可以结合使用top、right、bottom和left属性来确定元素的位置。例如,设置top: 50px; left: 100px;可以将元素向下偏移50像素,向右偏移100像素。
CSS定位
CSS 定位 (Positioning)<br>CSS 定位 (Positioning) 属性允许你对元素进行定位。<br>CSS 定位和浮动<br>CSS 为定位和浮动提供了一些属性, 利用这些属性, 可以建立列式布局, 将布局的一部分与另一部分重叠, 还可以完成多年来通常需要使用多个表格才能完成的任务。<br>定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另 一个元素甚至浏览器窗口本身的位置。 显然, 这个功能非常强大, 也很让人吃惊。 要知道, 用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。 另一方面,CSS1 中首次提出了浮动,它以 Netscape 在 Web 发展初期增加的一个功能为基础。浮动 不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。<br>一切皆为框<br>div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为 一块内容 ,即“块框”。与之相反, span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。 您可以使用 display 属性改变生成的框的类型。这意味着,通过将 display 属性设置为 block,可以让 行内元素(比如<a>元素)表现得像块级元素一样。还可以通过把 display 设置为 none,让生成的元 素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。<br>但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个 块级元素(比如 div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:<br><div> some text <p>Some more text.</p> </div><br>在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。<br>块级元素的文本行也会发生类似的情况。假设有一个包含三行文本的段落。每行文本形成一个无名框。无 法直接对无名块或行框应用样式,因为没有可以应用样式的地方(注意,行框和行内框是两个概念)。但 是,这有助于理解在屏幕上看到的所有东西都形成某种框。<br><br>
CSS定位知识点
CSS定位知识点
CSS中的定位机制是网页布局中非常重要的一部分,它可以让我们更精细地控制页面元素的位置和排列方式。本文将详细介绍CSS定位的各种知识点,包括相对定位、绝对定位和固定定位等。
一、相对定位
相对定位是指元素相对于其正常位置进行定位。使用相对定位时,元素会在保留原始空间的同时,按照指定的偏移量进行位置调整。下面是一个相对定位的示例代码:
```css
<style>
.box {
position: relative;
left: 50px;
top: 50px;
}
</style>
<div class="box">
相对定位的元素
</div>
```
在上述代码中,给元素添加了相对定位,并设置了`left`和`top`的值,这样元素就会相对于其原始位置向右和向下各偏移50像素。
二、绝对定位
绝对定位是指元素相对于其最近的非静态定位父元素进行定位。使
用绝对定位时,元素会脱离正常的文档流,并根据指定的位置进行独
立定位。下面是一个绝对定位的示例代码:
```css
<style>
.container {
position: relative;
width: 200px;
height: 200px;
}
.box {
position: absolute;
left: 50px;
top: 50px;
}
</style>
<div class="container">
<div class="box">
绝对定位的元素
</div>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CSS 定位
CSS 定位(Positioning) 属性允许你对元素进行定位。
CSS 定位和浮动
CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。
定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。
另一方面,CSS1 中首次提出了浮动,它以Netscape 在Web 发展初期增加的一个功能为基础。浮动不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。
一切皆为框
div、h1 或p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和strong 等元素称为“行内元素”,这是因为它们的内容显示
在行中,即“行内框”。
您可以使用display 属性改变生成的框的类型。这意味着,通过将display 属性设置为block,可以让行内元素(比如 元素)表现得像块级元素一样。还可以通过把display 设置为none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。
但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:
some text
Some more text.
在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。
块级元素的文本行也会发生类似的情况。假设有一个包含三行文本的段落。每行文本形成一个无名框。无法直接对无名块或行框应用样式,因为没有可以应用样式的地方(注意,行框和行内框是两个概念)。但是,这有助于理解在屏幕上看到的所有东西都形成某种框。
CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在X(HTML) 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
在下面的章节,我们会为您详细讲解相对定位、绝对定位和浮动。
CSS position 属性
通过使用position 属性,我们可以选择4 种不同类型的定位,这会影响元素框生成的方式。
position 属性值的含义:
static
元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父
元素中。
relative
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute
元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed
元素框的表现类似于将position 设置为absolute,不过其包含块是视窗本身。
提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
CSS 相对定位
相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。
如果将top 设置为20px,那么框将在原位置顶部下面20 像素的地方。如果left 设置为30 像素,那么会在元素左边创建30 像素的空间,也就是将元素向右移动。
#box_relative {
position: relative;
left: 30px;
top: 20px;
}
如下图所示:
注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
CSS 绝对定位
设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
CSS 绝对定位
绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流
定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
普通流中其它元素的布局就像绝对定位的元素不存在一样:
#box_relative {
position: absolute;
left: 30px;
top: 20px;
}
如下图所示:
绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
对于定位的主要问题是要记住每种定位的意义。所以,现在让我们复习一下学过的知识吧:相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的