CSS 定位详解

合集下载

绝对定位与相对定位解密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 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种元素定位方式

在进行网页设计的时候,定位是一个非常重要的环节,它关系到网页的美观度以及用户的使用体验。现在,我们来详细介绍一下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定位方式

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 定位机制

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选择器定位方法

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选择器是前端开发中非常重要的一部分,它能够帮助我们准确地定位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(选择器定位)

元素定位之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之定位

总体介绍下:

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中元素定位方法

在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 定位概述

CSS 定位(Positioning) 属性允许你对元素进行定位。

CSS 定位和浮动

CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。

定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。

另一方面,CSS1 中首次提出了浮动,它以Netscape 在Web 发展初期增加的一个功能为基础。浮动不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。

一切皆为框

div、h1 或p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。

您可以使用display 属性改变生成的框的类型。这意味着,通过将display 属性设置为block,可以让行内元素(比如 元素)表现得像块级元素一样。还可以通过把display 设置为none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。

但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:

css中relative用法

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 用法

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中四种定位的使用方法

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定位

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定位的各种知识点,包括相对定位、绝对定位和固定定位等。

一、相对定位

相对定位是指元素相对于其正常位置进行定位。使用相对定位时,元素会在保留原始空间的同时,按照指定的偏移量进行位置调整。下面是一个相对定位的示例代码:

```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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:

在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。

块级元素的文本行也会发生类似的情况。假设有一个包含三行文本的段落。每行文本形成一个无名框。无法直接对无名块或行框应用样式,因为没有可以应用样式的地方(注意,行框和行内框是两个概念)。但是,这有助于理解在屏幕上看到的所有东西都形成某种框。

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;

}

如下图所示:

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

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

相关文档
最新文档