iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何理解CSS布局中的Position
  • 932
分享到

如何理解CSS布局中的Position

2024-04-02 19:04:59 932人浏览 薄情痞子
摘要

今天就跟大家聊聊有关如何理解CSS布局中的Position,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 当人们将接触

今天就跟大家聊聊有关如何理解CSS布局中的Position,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

当人们将接触CSS布局的时候倾向于使用Position。Positoin似乎是一个很容易掌握的概念。从表面上来看,你只要精确指定了一个块所处的位置,它就会坐落在那里。然而定位比你刚接触时要更复杂一些。这里有几件事会绊倒一个新手,所以在熟练使用之前需要掌握它们。

一旦你深入地理解了Position的工作原理,你就可以使用它做出很棒的事来

盒模型和Position类型

为了理解定位你首先的理解盒模型。前面一个链接是我之前写给InstantShift关于盒模型的一篇文章。我在那里做了详细的介绍,在这里我将提供一个快速的总结。

在CSS中,每个元素都被一本矩形框所包围,每个元素都定了内容区,内容区被内边距(填充)包围,边框包围了内容区和内边距。外边距在边框外面用来和其他盒子分隔开来。你可以在下面这张图中看到这些

如何理解CSS布局中的Position 

定位 模式定义了一个盒子在整体布局中将会放置在哪里、每个盒子怎样影响在它周围的盒子。定位模式包含了正常文档流,浮动流和几种类型的定位元素

CSS定位属性有五个可取值

position: absolute
position: relative
position: fixed
position: static
position: inherit

下面我将对前三个属性进行详细地讲解,对后面两个属性只是作简单的介绍

static是position默认的值。每个position属性被设置为static的元素将在正常文档流中显示。它们被放置和显示的规格在盒模型中定义。

一个static定位的元素将会忽略任何top, right, bottom, left, z-index属性的值。为了使用其中任何一个值,你必须将元素的position属性设置为absolute, relative, fixed之一

inherit和其他所有css属性一样,当前元素取得和父级元素相同的属性值。

绝对定位(Absolute Positioning)

绝对定位的元素完全从正常文档流中除去。对于包围它的其他元素而言,它们认为绝对定位的元素不存在,就好像将元素的display属性设置为none。假如你想保留它所占有的位置而不被其他元素所填充,那么你需要使用其他的定位方式。

你在设置一个绝对定位元素的位置时,top, right, bottom, left四个属性,你通常只定义其中的两个,top或者left,以及left或者right。它们的默认值都是auto

理解绝对定位的关键是理解它们从哪里开始。假如top值为20px,问题是20px是从哪里开始的。

一个绝对定位元素的起点位置是相对于它第一个postion属性值不为static的父级元素而言的。假如在父级元素链中没有满足条件的,绝对定位元素就是相对于整个文档窗口来定位的。哈

关于”相对“这个概念你或许有点疑惑,特别是还有个我们还没有谈到的”相对定位”的东西。

当你为一个元素设置position:absolute,css将会看这个元素的父元素,如果父元素被定位过(除了static),那么绝对定位元素的起点是父元素的左上角位置。

假如父元素没有被应用除static以外的positon定位,那么就检查父元素的父元素有没有应用除static以外的position定位。假如有,绝对定位元素的起点就是这个元素的左上角位置。假如没有,继续在DOM树上查找,知道找到一个应用除static以外的定位元素,或者查找失败,到达最外层的浏览器窗口。

相对定位(Relative Positoning)

相对定位也是根据top, right, bottom, left属性来定位。但是只是相对于它们原来的位置进行移动。这意味着,添加相对定位和添加外边距有些相似。但也有一个重要的不同之处,围绕在相对定位元素附近的元素会忽略相对定位元素的偏移

我们可以把它看做是一张图片的重像从真实的图片位置开始进行一点移动。它原始图片所占据的位置仍然保留,但我们已经没法再看到它,只能看到它的重像。这样就让元素之间可以进行位置的重叠,因为相对于定位元素能够移动到其他元素所占据的空间中。

相对定位元素从正常文档流中脱离,但是它仍然影响着围绕着它的元素。围绕着它的元素表现的好想相对定位元素仍在处在正常流中一样。

我们不需要在这里询问相对谁进行定位。答案是,始终是相对于正常文档流。相对定位好像为元素添加外边距(margin),但是对相邻的元素而言好想什么也没有发生。实际上没有添加外边距。

固定定位(Fixed Positioning)

固定定位和绝对定位有些相像,但是也有一些不同

首先,固定定位始终相对于浏览器窗口进行定位,然先取得top, right, bottom, left,属性值来进行定位。它脱离了它的父级元素,它定位元素中它表现得有点反叛。

第二个不同点是在名字上继承的。固定元素始终时固定的。当页面固定时他们不会移动。你告诉它该在哪里固定,它就始终在那里。这样,他们看起来似乎又不是那么反叛。

在某种意义上,固定定位元素有点像固定定位的背景图片,只不过它的外层容器始终时浏览器窗口罢了。如果你在body中设置一个背景图片,那么它与一个固定定位元素的行为非常相像。只不过在位置的位置不是那么精确。

背景图片也不会改变其在第三维度的位置,也因此带来了z-index属性

z-index,打破平面

一个页面是二位平面,它有宽和高。我们活在一个用z-index作为其深度的三维世界中,这个额外的维度能够穿越一个平面。

高z-index值在低z-index值元素上面,并从页面的上方运动。相反地,低z-index值在高z-index值元素下面,并从页面下方运动。

没有z-index,定位元素有点儿麻烦。应用了z-index,你可以做出一些创造性的东西出来,允许一个元素在另一个元素的上方或下方。每个元素的z-index属性默认值是0, 并且可以使用负值。

事实上,z-index比我这里叙述的要复杂得多,但细节写在了另外一篇文章里。现在请记住这个额外维度的基本概念,以及他们的堆叠顺序。并且只有定位元素才可以使用z-index属性

定位问题(Positioning Issues)

这里有一些常见的定位元素常见的问题,每个问题都值得了解。

1.你不能对一个元素同时使用position属性和float属性。因为对使用什么样的定位方案来说两者的指令是相对冲突的。如果你把两个属性都添加到同一个元素上,那么就期望在CSS中较后的那个属性是你想要使用的吧。

2.Margin不会在绝对定位元素上折叠。假如你有一个底外边距是20px的段落,在这个段落下面正好是一张有30px上外边距图片,段落和图片之间的空白将会是50px(20px+30px),而不是30px(30px > 20px)。这就是众所周知的外边距折叠,两个外边距合并(折叠)成一个。绝对定位元素不会像那样进行margin的折叠,这会使他们跟预期的不一样。

3.IE在z-index有些bug。在IE6中,选中元素总是在堆叠元素是上方,而不管它的z-index以及其他围绕在它周围的元素的z-index值是多少。

IE6和IE7在堆叠层上还有其他的问题。IE6由最外层的定位元素的层级来决定哪一组的元素处于层级的最上面,而不是每一个单独的元素自身的层级决定。

代码如下:


<div >
<p ></p>
</div>
<img  />


你觉得段落会在堆叠成的最上面,因为它有最大的z-index值,但是在IE6和IE7中,图片将会在段落上面,因为看起来有两个不同的堆叠层。一个是div的,一个是image的。image比div有更高的z-index,因此它会覆盖在div中的任何东西

总结

对一个元素应用定位属性,元素的表现将取决于CSS的定位模式。你可以对一个定位元素使用absolute, relative, fixed, static(default)和inherit值。

定位模式,包括CSS定位元素,定义了一个盒子在布局中放在哪里,并且紧挨着它的元素是怎样受定位元素影响的。

z-index可应用于定位元素。它向页面添加了第三维度,并且定义了元素堆叠的顺序。

定位属性看起来很容易掌握,但是它工作起来和它在表面时所看到的不一样。你可能会觉得相对定位更像绝对定位。你通常想在布局是使用浮动,而对一个特殊的元素使用定位,以打破页面布局。

看完上述内容,你们对如何理解CSS布局中的Position有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网html频道,感谢大家的支持。

--结束END--

本文标题: 如何理解CSS布局中的Position

本文链接: https://www.lsjlt.com/news/82681.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解CSS布局中的Position
    今天就跟大家聊聊有关如何理解CSS布局中的Position,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 当人们将接触...
    99+
    2022-10-19
  • 如何理解CSS Grid布局中的网格布局
    本篇内容主要讲解“如何理解CSS Grid布局中的网格布局”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解CSS Grid布局中的网格布局”吧!为什么我们...
    99+
    2022-10-19
  • 如何理解Div+CSS布局中的页面布局和规划
    本篇文章为大家展示了如何理解Div+CSS布局中的页面布局和规划,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Div+CSS布局入门 在网页制作中,有许多...
    99+
    2022-10-19
  • 如何理解CSS中的Position和Float属性
    本篇文章给大家分享的是有关如何理解CSS中的Position和Float属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。本文结构点:1.HT...
    99+
    2022-10-19
  • 如何理解css中position的五个属性
    如何理解css中position的五个属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在实际开发页面布局时,运用positi...
    99+
    2022-10-19
  • 如何理解CSS十则布局技巧
    本篇文章给大家分享的是有关如何理解CSS十则布局技巧,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。向大家描述一下CSS技巧十则,主要包括CSS...
    99+
    2022-10-19
  • css布局如何实现左中右布局
    小编给大家分享一下css布局如何实现左中右布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果如下:左中右布局<!doctype html>...
    99+
    2023-06-08
  • 如何实现CSS布局中的圣杯布局与双飞翼布局
    这篇文章将为大家详细讲解有关如何实现CSS布局中的圣杯布局与双飞翼布局 ,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。按照我的理解,其实圣杯布局跟双飞翼布局...
    99+
    2022-10-19
  • CSS中如何定位布局
    这篇文章主要介绍CSS中如何定位布局,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.什么是定位:css中的position属性,position有四个值:absolute/relative/fixed/static...
    99+
    2023-06-08
  • 如何理解CSS position属性中absolute和relative的应用
    这期内容当中小编将会给大家带来有关如何理解CSS position属性中absolute和relative的应用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望...
    99+
    2022-10-19
  • 如何设置CSS布局居中
    这篇文章给大家分享的是有关如何设置CSS布局居中的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 最外层应用float:left招致整个网页居左,这里假如不有应用浮动float,...
    99+
    2022-10-19
  • 如何在css中实现瀑布流布局
    这期内容当中小编将会给大家带来有关如何在css中实现瀑布流布局,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.multi-column多列布局实现瀑布流先简单的讲下multi-column相关的部分属性...
    99+
    2023-06-15
  • 深入了解position属性在H5页面布局优化中的应用
    H5页面布局优化:深入解析position属性的使用方法在H5页面开发中,布局优化是非常重要的一环。其中,position属性是控制元素定位的重要属性之一。本文将深入解析position属性的使用方法,并提供具体的代码示例,以帮助读者更好地...
    99+
    2023-12-27
    H页面布局优化:position属性方法
  • css 中不定宽高的元素居中布局如何解决
    css 中不定宽高的元素居中布局如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 水平居中公共代码:html:<div class=&...
    99+
    2023-06-08
  • 怎么理解CSS中的rem及移动端的布局方法
    本文小编为大家详细介绍“怎么理解CSS中的rem及移动端的布局方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么理解CSS中的rem及移动端的布局方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
  • 如何使用CSS Positions布局设计网页的卡片布局
    在网页设计中,卡片布局是一种常见且流行的设计方式。它将内容分割成独立的卡片,每个卡片包含一定的信息,可以轻松地创造出整洁、有层次感的页面效果。在本文中,我们将介绍如何使用CSS Positions布局设计网页的卡片布局,并附上具体的代码示例...
    99+
    2023-10-21
    网页设计 卡片布局 CSS Positions布局
  • 如何使用CSS Positions布局实现元素的流体布局
    在Web开发中,实现元素的流体布局是一项重要的技能。CSS Positions布局是一种常用的方法,可以帮助我们实现元素的自适应和流动性。本文将介绍如何使用CSS Positions布局来实现元素的流体布局,以及具体的代码示例。CSS Po...
    99+
    2023-10-21
    元素 布局 CSS Positions
  • css中flexbox弹性盒子如何布局
    小编给大家分享一下css中flexbox弹性盒子如何布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在CSS3弹性盒子模型...
    99+
    2022-10-19
  • 如何在css中实现等宽布局
    本篇文章给大家分享的是有关如何在css中实现等宽布局,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、使用table-cell实现(兼容ie8)<style>&nb...
    99+
    2023-06-08
  • 深入理解CSS中position属性的常见属性值
    绝对定位的常用属性值解析:学习CSS中的position属性,需要具体代码示例CSS中的position属性可以用于控制元素在页面上的定位方式。其中,绝对定位是position属性值之一,主要用于将元素脱离文档流,并相对于最近的祖先元素进行...
    99+
    2023-12-28
    绝对定位 CSS学习 position属性
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作