目录
2. position:relative
3. position:absolute
4. position:relative + position:absolute
绝对定位" >5. 两栏绝对定位
6. 两栏绝对定位定高
7. 浮动
8. 浮动列
清除浮动列" >9. 清除浮动
首页 web前端 css教程 CSS Position 使用详细小结

CSS Position 使用详细小结

Jun 27, 2017 pm 02:07 PM
css position

css position 基础教程,非常经典,推荐大家收藏。

1. position:static

所有元素的默认定位都是:position:static,这意味着元素没有被定位,而且在文档中出现在它应该在的位置。

一般来说,不用指定 position:static,除非想要覆盖之前设置的定位。


#p-1 {
 position:static;
}
登录后复制

static

2. position:relative

如果设定 position:relative,就可以使用 top,bottom,left 和 right 来相对于元素在文档中应该出现的位置来移动这个元素。【意思是元素实际上依然占据文档中的原有位置,只是视觉上相对于它在文档中的原有位置移动了】


#p-1 {
 position:relative;
 top:20px;
 left:-40px;
}
登录后复制

relative

3. position:absolute

当指定 position:absolute 时,元素就脱离了文档【即在文档中已经不占据位置了】,可以准确的按照设置的 top,bottom,left 和 right 来定位了。


#p-1a {
 position:absolute;
 top:0;
 right:0;
 width:200px;
}
登录后复制

absolute

4. position:relative + position:absolute

如果我们给 p-1 设置 relative 定位,那么 p-1 内的所有元素都会相对 p-1 定位。如果给 p-1a 设置 absolute 定位,就可以把 p-1a 移动到 p-1 的右上方。


#p-1 {
 position:relative;
}
#p-1a {
 position:absolute;
 top:0;
 right:0;
 width:200px;
}
登录后复制

relative-and-absolute

5. 两栏绝对定位

现在就可以使用相对定位和绝对定位来做一个两栏布局了。


#p-1 {
 position:relative;
}
#p-1a {
 position:absolute;
 top:0;
 right:0;
 width:200px;
}
#p-1b {
 position:absolute;
 top:0;
 left:0;
 width:200px;
}
登录后复制

two-column-absolute

6. 两栏绝对定位定高

一种方案是给元素设定固定高度。但这种方案对大多数设计来说不太适合,因为一般我们不知道元素中会有多少文本,或者将要使用的精确的字号。


#p-1 {
 position:relative;
 height:250px;
}
#p-1a {
 position:absolute;
 top:0;
 right:0;
 width:200px;
}
#p-1b {
 position:absolute;
 top:0;
 left:0;
 width:200px;
}
登录后复制

two-column-absolute-height

7. 浮动

对于可变高度的列来说,绝对定位就不起作用了,以下是另外一个方案。

我们可以浮动一个元素,使它移动到左边/右边,并且是文本环绕着它。这主要用于图像,但这里我们把它用于一个复杂的布局任务(因为这是我们唯一的工具)。


#p-1a {
 float:left;
 width:200px;
}
登录后复制

float

8. 浮动列

如果我们把一个元素向左浮动,并且把第二个元素也向左浮动,they will push up against each other。


#p-1a {
 float:left;
 width:150px;
}
#p-1b {
 float:left;
 width:150px;
}
登录后复制

float-columns

9. 清除浮动

在浮动元素之后,我们可以清除浮动来使其他元素正确定位。


#p-1a {
 float:left;
 width:190px;
}
#p-1b {
 float:left;
 width:190px;
}
#p-1c {
 clear:both;
}
登录后复制

float-columns-with-clear

糖伴西红柿说:虽然我一直用浮动布局,但是掌握好 position 也是必须的,其实也没那么难的。。。

原文来自经典的:Learn CSS Positioning in Ten Steps

补充说明:
之前老弄不明白,只能凭借一点短期内
“虐出来的经验”制作需要的效果,后来仔细研究了一下Hutia的XScroller,并且仔细
看了文档,才知道这个position属性其实是指本体对上级的定位。如果这么理解,就好
办了。

默认的属性值都是static,静态。就不用多说了。最关键的是
relative(相对)以及absolute(绝对)。
往往我们如果是COPY别人的代码,会把absolute属性与left、top配合起来制作相关的
“悬浮层”效果。然而有时候我们需要针对某一个容器的悬浮效果,而不是针对窗口的
。这时候通过高度、宽度的计算不但麻烦,而且几乎无法完美实现效果。我一开始也无
能为力,后来发现只要把其上一级的样式属性position设置为relative就可以了。

也就是说,position的属性值的效果,直接受其容器样式中position属性值影响。
例如如下A-B的嵌套结构





当A的position为relative时,B的position为absolute才有效。这时候left:0、top:0
就不再针对窗口文档,而是针对id为A的这个p了。

这样在开发一些基于B/S应用程序的时候,就能很方便的添加一些UI元素,例如某一个
活动层的关闭按钮等。

以上是CSS Position 使用详细小结的详细内容。更多信息请关注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.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
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)

vue中placeholder是什么意思 vue中placeholder是什么意思 May 07, 2024 am 09:57 AM

在 Vue.js 中,placeholder 属性指定输入元素的占位符文本,当用户未输入内容时显示,提供输入提示或示例,提高表单可访问性。其用法为在输入元素中设置 placeholder 属性,并可使用 CSS 自定义外观。最佳实践包括与输入相关、简短清晰、避免默认文本,并考虑可访问性。

js中span是什么意思 js中span是什么意思 May 06, 2024 am 11:42 AM

span 标签可为文本添加样式、属性或行为,用于:添加样式,如颜色、字体大小。设置属性,如 id、class 等。关联行为,如点击、悬停等。标记文本,以便进一步处理或引用。

js中rem是什么意思 js中rem是什么意思 May 06, 2024 am 11:30 AM

CSS 中的 REM 是一种相对于根元素(html)字体大小的相对单位。它具有以下特点:相对根元素字体大小,不受父元素影响。当根元素字体大小改变时,使用 REM 的元素也会相应调整。可用于任何 CSS 属性。使用 REM 的优点包括:响应性:保持不同设备和屏幕大小上的文本可读性。一致性:确保整个网站字体大小一致。可扩展性:通过调整根元素字体大小轻松更改全局字体大小。

vue中引入图片的方法 vue中引入图片的方法 May 02, 2024 pm 10:48 PM

Vue 中引入图片有五种方法:通过 URL、require 函数、静态文件、v-bind 指令和 CSS 背景图片。可以在 Vue 的计算属性或侦听器中处理动态图片,并使用打包工具优化图片加载。确保路径正确,否则会显示加载错误。

span标签的作用是什么 span标签的作用是什么 Apr 30, 2024 pm 01:54 PM

SPAN 标签是一种内联 HTML 标签,用于通过应用样式、颜色和字体大小等属性来突出显示文本,作用包括强调文本、分组文本、添加悬停效果和动态更新内容。它通过在要强调的文本周围放置 <span> 和 </span> 标签来使用,并通过 CSS 样式或 JavaScript 进行操作。SPAN 标签的好处包括语义清晰、样式灵活性以及维护简单。

js中prompt怎么换行 js中prompt怎么换行 May 01, 2024 am 06:24 AM

在 JavaScript 中使用 prompt() 方法时,可以通过以下三种方法实现换行:1. 在要换行的位置插入 "\n" 字符;2. 在提示文本中使用换行符;3. 使用 CSS 的 "white-space: pre" 样式强制换行。

浏览器插件是什么语言写的 浏览器插件是什么语言写的 May 08, 2024 pm 09:36 PM

浏览器插件通常使用以下语言编写:前端语言:JavaScript、HTML、CSS后端语言:C++、Rust、WebAssembly其他语言:Python、Java

js中什么是节点 js中什么是节点 May 07, 2024 pm 09:06 PM

节点是 JavaScript DOM 中表示 HTML 元素的实体。它们代表页面中的特定元素,可用于访问和操作该元素。常见的节点类型包括元素节点、文本节点、注释节点和文档节点。通过 DOM 方法(如 getElementById()),可以访问节点并对其进行操作,包括修改属性、添加/移除子节点、插入/替换节点和克隆节点。节点遍历有助于在 DOM 结构中导航。节点在动态创建页面内容、事件处理、动画和数据绑定方面非常有用。

See all articles