目录
盒模型和定位类型
要清楚的理解css中的position属性,首先我们需要详细的了解 css盒模型
文档中的每个元素都被描绘为矩形的盒子,进而确定其大小(width,height),位置(left,top,right,bottom),属性(color,background,border…)等。这种盒模型描述了元素内容占用空间。盒子有四个边界:外边距边界margin edge, 边框边界border edge, 内边距边界padding edge 与 内容边界content edge。如下图(图片来自w3school):
定位模式规定了一个盒子在总的布局上应该处于什么位置,以及对周围的盒子有什么影响。而定位模式包括了常规的 文档流 , 浮动 ,和 position定位 。 这篇文章主要学习position定位
css的position属性可以取5种值:
- position: static
- position: relative
- position: absolute
- position: fixed
- position: inherit
静态定位(static)
static 是position默认的属性值,任何应用 position:static 的元素都会处于常规文档流中,它所处的位置以及如何影响周边的元素都是由盒模型所决定的
一个 static 定位的元素会忽略所有top, right, bottom, left以及z-index属性所声明的值。如果想使用这些属性值,需要为它的position属性应用absolute, relative, fixed之一才有效。
绝对定位(absolute)
绝对定位的元素会完全从常规的文档流中脱离,对于包围它的元素来说,它们会将绝对定位元素视为不存在,就好像display属性设为none一样。可以通过top, right, left, bottom四个属性来设置绝对定位的元素,它们的默认值为auto。
绝对定位的关键点在于它的起点在哪里,比如设置 top: 20px ,那么这20px是从哪里开始计算的。
一个绝对定位的元素的起点位置是相对于它的第一个position值不为static的父元素而言的,比如:
- 当你在一个元素的样式设置为 position:absolute
- 如果该元素的父元素的position值不为static(而是relative,absolute,fixed,inherit), 那么绝对定位元素的起点为父元素的左上角位置,
- 当该元素的父元素为默认值(static),那么就检查父元素的父元素是否有非static定位,如果该元素应用了(relative,absolute,fixed,inherit)定位,则它的左上角便会成为绝对元素的起始位置。
- 如果还没有,就向上遍历DOM,直到找到一个非static定位元素或寻找失败到达最外层浏览器窗口,此时绝对定位元素会相对于文档窗口来定位。
看代码更容易明白:
See the Pen css-position-absolute by guihailiuli ( @guihailiuli ) on CodePen .
相对定位(relative)
如果将一个元素进行相对定位,它将根据top, left, bottom, left四个属性来决定自己的位置的,这些属性的设置让元素从默认位置移动。例如,top设置一个值“20px”在一个相对定位的元素上,这个元素会在原来位置向下移动“20px”。反之,“top”设置一个“-20px”,这个元素会在原来的位置向上移动“20px”。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。由于他们移向方向和距离不一样,可能使元素重叠在一起,看下面的效果:
See the Pen css-position-relative by guihailiuli ( @guihailiuli ) on CodePen .
在使用相对定位时,它在页面中仍然是正常的,静态的。在这种情况下,相对定位元素的默认位置还是被元素自身占用,其他元素不会占用相对定位元素当初的位置,可以理解为相对定位元素的位移是相对于元素自身的边缘进行位移。
事实上,一个相对定位元素同时设置了“top”和“bottom”位移属性值,实际上“top”优先级高于“bottom”。然而,一个相对定位元素同时设置了“left”和“right”位移属性,他们的优先级取决于页面使用的是哪种语言,例如,如果你的页面是英文页面,那么“left”位移属性优先级高,如果你的页面是阿拉伯语,那么“right”的位移属性优先级高。
固定定位(fixed)
固定定位和绝对定位类似,但是它定位是 相对于浏览器窗口 ,通过属性的 top, right, bottom, 和 left 属性来决定其位置,并且不会随滚动条进行滚动。也就是说,不管用户停留在页面那个地方,固定定位的元素将始终停留在页面的一个地方。“position”属性值中,仅有“fixed”属性值不能在IE6浏览器下运行.
See the Pen css-position-fixed by guihailiuli ( @guihailiuli ) on CodePen .
固定定位最常见的一种用途就是在页面中创建一个固定头部、或者脚部、或者固定页面的一个侧面。
See the Pen css-position-fixed-footer by guihailiuli ( @guihailiuli ) on CodePen .

HTML标签和属性的使用方法包括:1.基本用法:使用标签如和,通过属性如src和href添加必要信息。2.高级用法:使用data-*自定义属性实现复杂交互。3.避免常见错误:确保属性值用引号包围。4.性能优化:保持简洁,使用标准属性和CSS类名,确保图像有alt属性。掌握这些将提升网页开发技能。

HTMLtagsdefinethestructureofawebpage,whileattributesaddfunctionalityanddetails.1)Tagslike,,andoutlinethecontent'splacement.2)Attributessuchassrc,class,andstyleenhancetagsbyspecifyingimagesources,styling,andmore,improvingfunctionalityandappearance.

HTML的未来将朝着更加语义化、功能化和模块化的方向发展。1)语义化将使标签更明确地描述内容,提升SEO和无障碍访问。2)功能化将引入新元素和属性,满足用户需求。3)模块化将支持组件化开发,提高代码复用性。

htmlattributesarecrucialinwebdevelopment forcontrollingBehavior,外观和功能

alt属性是HTML中标签的重要部分,用于提供图片的替代文本。1.当图片无法加载时,alt属性中的文本会显示,提升用户体验。2.屏幕阅读器使用alt属性帮助视障用户理解图片内容。3.搜索引擎索引alt属性中的文本,提高网页的SEO排名。

HTML、CSS和JavaScript在网页开发中的作用分别是:1.HTML用于构建网页结构;2.CSS用于美化网页外观;3.JavaScript用于实现动态交互。通过标签、样式和脚本,这三者共同构筑了现代网页的核心功能。

设置标签的lang属性是优化网页可访问性和SEO的关键步骤。1)在标签中设置lang属性,如。2)在多语言内容中,为不同语言部分设置lang属性,如。3)使用符合ISO639-1标准的语言代码,如"en"、"fr"、"zh"等。正确设置lang属性可以提高网页的可访问性和搜索引擎排名。

htmlattributeseresene forenhancingwebelements'functionalityandAppearance.TheyAdDinformationTodeFineBehavior,外观和互动,使网站互动,响应式,visalalyAppealing.AttributesLikutesLikeSlikEslikesrc,href,href,href,类,类型,类型,和dissabledtransfransformformformformformformformformformformformformformformforment


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)