返回顶部
首页 > 资讯 > 前端开发 > html >如何理解CSS编程中的定位
  • 445
分享到

如何理解CSS编程中的定位

2024-04-02 19:04:59 445人浏览 八月长安
摘要

这篇文章主要介绍“如何理解CSS编程中的定位”,在日常操作中,相信很多人在如何理解CSS编程中的定位问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解CSS编程中的定位”

这篇文章主要介绍“如何理解CSS编程中的定位”,在日常操作中,相信很多人在如何理解CSS编程中的定位问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解CSS编程中的定位”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  CSS盒模型和定位的类型

  为了搞清楚定位首先你得了解CSS盒模型。在上一句中的链接是我写在InstantShift 中的一篇关于盒模型的文章。我在那篇文章做了详细的讲解并会在这篇文章中做一个快速的总结

  在CSS中,每一个元素都由一个矩形盒子所包含。每一个盒子都会具有一个内容区,内容区被一个内边距所包裹,内边距外是盒子的边框,并且在边框之外会有一个外边距用于与其他盒子分隔开来。这些你可以从下面这张图片看到。
如何理解CSS编程中的定位

 定位模式规定了一个盒子在总体的布局上应该处于什么位置以及对周围的盒子会有什么影响。定位模式包括了常规文档流,浮动,和几种类型的 position 定位的元素。

  CSS position 属性可以取5种值:

    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

  position 值为 inherit 的元素和其他所有属性的继承值一样,元素只是简单地应用了与父元素一样的 position 值。
  绝对定位(Absolute Positioning)

  绝对定位的元素会完全地从常规文档流中脱离。对于包围它的元素而言,它会将该绝对定位元素视为不存在。就好像 display 属性被设为 none 一样。如果你想要保持它所占有的位置而不被其他元素所填充,那么你需要使用其他的定位方式。

  你可以通过 top, right, bottom, 和 left 四个属性来设置绝对定位元素的位置。但你通常只会设置它们其中的两个,top 或者 bottom,以及 left 或者 right。默认地它们的值都为 auto。

  弄明白绝对定位的关键是知道它的起点在哪里。如果 top 被设置为20px那么你要知道这20px是从哪里开始计算的。

  一个绝对定位的元素的起点位置是相对于它的第一个 position 值不为 static 的父元素而言的。如果在它的父元素链上没有满足条件的父元素,那么绝对定位元素则会相对于文档窗口来进行定位。哈!

  关于“相对”这个概念你或许有点迷惑,尤其是还有一个叫相对定位的东西,这是我们还没有讲到的。

  当你在一个元素的样式上设置 position:absolute 意味着需要考虑父元素,并且如果父元素的 position 值不为 static ,那么绝对定位元素的起点为父元素的左上角位置。

  如果父元素没有应用除了 static 以外的 position 定位,那么它会检查父元素的父元素是否有应用非 static 定位。如果该元素应用了定位,那么它的左上角便会成为绝对元素的起点位置。如果没有则会继续向上遍历DOM直到找到一个定位元素或者寻找失败以到达最外层的浏览器窗口。
  相对定位(Relative Positioning)

  相对定位的元素也是根据 top, right, bottom, 和 left 四个属性来决定自己的位置的。但只是相对于它们原来所处于的位置进行移动。在某种意义上来说,为元素设置相对定位和为元素添加 margin 有点相似,但也有一个重要的区别。区别就是在围绕在相对定位元素附近的元素会忽略相对定位元素的移动。

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

  相对定位元素离开了正常文档流,但仍然影响着围绕着它的元素。那些元素表现地就好像这个相对定位元素仍然在正常文档流当中。

  我们无需再追问这个相对的位置是在哪里。因为这个相对位置很显然是正常的文档流。相对定位有点儿像为元素添加了 margin ,对相邻元素来说却像是什么都没发生过。但实际上并没有增加任何的 margin 。
  固定定位(Fixed Positioning)

  固定定位的行为类似于绝对定位,但也有一些不同的地方。

  首先,固定定位总是相对于浏览器窗口来进行定位的,并且通过哪些属性的 top, right, bottom, 和 left 属性来决定其位置。它抛弃了它的父元素,它就是定位中表现地有点儿反叛。

  第二个不同点是其在名字上是继承的。固定定位的元素是固定的。它们并不随着页面的滚动而移动。你可以告诉元素它所处的位置并永远不再移动。噢~好像还挺乖巧的。

  在某种意义上说固定定位元素有点儿类似固定的背景图片,只不过它的外层容器块总是浏览器窗口罢了。如果你在 body 中设置一个背景图片那么它与一个固定定位的元素的行为时非常像的,只不过在位置上的精度会略少一些。

  背景图片也不能改变其在第三个维度的大小,也因而带来了 z-index 属性。
  打破了平面的 Z-Index

  这个页面是一个二维平面。它具有宽度和高度。我们活在一个用 z-index 作为其深度的三维的世界当中。这个额外的维度能够穿越一个平面。
如何理解CSS编程中的定位

由上图可知,高的 z-index 位于低的 z-index 的上面并朝页面的上方运动。相反地,一个低的 z-index 在高的 z-index 的下面并朝页面下方运动。

  没有的 z-index 的话,定位元素会有点儿麻烦。因为 z-index 能让一个定位元素位于另一个元素的上方或者下方,这或许能让你做出点创造性的东西。所有的元素的默认的 z-index 值都为0,并且我们可以对 z-index 使用负值。

  z-index 实际上比我在这里描述的要更加地复杂,但细节写在了另一篇文章里。现在只需要记住这个额外维度的基本概念以及它的堆叠顺序,另外还要记住只有定位元素才能应用 z-index属性。
  定位的问题

  对于定位元素来说由几个比较常见的问题,都值得我们好好了解。

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

  2.Margin 不会在绝对元素上折叠。假设你具有一个 margin-bottom 为20px的段落。在段落后面是一个具有30px的 margin-top 的图片。那么段落和图片之间的空间不会是50px(20px+30px)而是30px(30px > 20px)。这就是所谓的 margin-collapse,两个 margin 会合并(折叠)成一个 margin。

  绝对定位元素不会像那样进行 margin 的折叠。这会使它们跟预期的不一样。

  3.IE在 Z-index 上有一些BUG。在IE 6中 select 元素总是处于堆叠层级的最上方而不管它的 z-index 和其他元素的 z-index 是多少。

  IE 6和IE 7在堆叠层级上又有另外一个问题。IE 6由最外层的定位元素的层级来决定哪一组的元素处于层级的最上面,而不是每一个单独的元素自身的层级决定。

XML/html Code复制内容到剪贴板

  1. <div <span style="width: auto; height: auto; float: none;" id="3_nwp"><a style="text-decoration: none;" mpid="3" target="_blank" href="Http://cpro.baidu.com/cpro/ui/uijs.PHP?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=50c074aa65c25dc2&k=style&k0=style&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=c25dc265aa74c050&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F3070%2Ehtml&urlid=0" id="3_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">style</span></a></span>="z-index: ">  

  2.    <p style="z-index: 1"></p>  

  3. </div>  

  4. <img style="z-index: " />  

  对上面这段结构,你会预料段落元素处于堆叠层级的最上方。因为它具有最大的 z-index 值。但在IE 6和IE 7中,图片为处于段落的上方。因为 img 具有比 div 更加高的 z-index 层级。因此它会位于所有 div 的子元素的上方。  

到此,关于“如何理解CSS编程中的定位”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何理解CSS编程中的定位

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

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

猜你喜欢
  • 如何理解CSS编程中的定位
    这篇文章主要介绍“如何理解CSS编程中的定位”,在日常操作中,相信很多人在如何理解CSS编程中的定位问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解CSS编程中的定位”...
    99+
    2024-04-02
  • 如何理解Web前端CSS的定位机制
    本篇内容主要讲解“如何理解Web前端CSS的定位机制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Web前端CSS的定位机制”吧!定位(position)顾名思义,你想定哪就定哪;元素的...
    99+
    2023-06-03
  • css中如何定位属性
    本篇内容介绍了“css中如何定位属性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • CSS中如何定位布局
    这篇文章主要介绍CSS中如何定位布局,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.什么是定位:css中的position属性,position有四个值:absolute/relative/fixed/static...
    99+
    2023-06-08
  • 如何理解CSS编程中的怪异模式
    今天就跟大家聊聊有关如何理解CSS编程中的怪异模式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。怪异模式盒模型今天学习了一下css3的box-siz...
    99+
    2024-04-02
  • css定位如何用
    今天小编给大家分享一下css定位如何用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。  ...
    99+
    2024-04-02
  • 如何在CSS中使用定位
    今天就跟大家聊聊有关如何在CSS中使用定位,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS中定位介绍position 属性在英文单词中表示 位置 的意思,在 CSS 中主要作用设...
    99+
    2023-06-08
  • CSS中固定定位的详细解析
    CSS中固定定位的定位属性详解在CSS中,固定定位(fixed positioning)是一种常用的定位方式,它可以使元素相对于浏览器窗口的特定位置进行定位,不随页面滚动而改变位置。本文将详细介绍固定定位的定位属性,并提供具体的代码示例。固...
    99+
    2023-12-28
    CSS固定定位 定位属性详解。
  • CSS中相对定位和绝对定位如何使用
    这篇文章主要介绍了CSS中相对定位和绝对定位如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS中相对定位和绝对定位如何使用文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • css如何进行定位
    这篇文章给大家分享的是有关css如何进行定位的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css的全称是什么css的全称是Cascading Style Sheets(层叠样式表),它是一种用来表现HTML或XM...
    99+
    2023-06-14
  • CSS定位如何使用
    本文小编为大家详细介绍“CSS定位如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS定位如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.positionstatic:positon定位的默认...
    99+
    2023-07-05
  • CSS中如何是Position定位属性
    CSS中如何是Position定位属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。CSS定位属性Position详解CSS中...
    99+
    2024-04-02
  • 怎么理解css绝对定位
    本篇内容介绍了“怎么理解css绝对定位”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何在CSS中固定元素的位置
    小编给大家分享一下如何在CSS中固定元素的位置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!尽管网站是动态的,但您可能希望在某些位置修复一些元素。您可以通过使用p...
    99+
    2023-06-04
  • 如何理解编程中的树
    这篇文章主要讲解了“如何理解编程中的树”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解编程中的树”吧!树树是一种非常常用的数据结构,与线性表,堆栈并驾...
    99+
    2024-04-02
  • CSS中如何使用 Positioning定位属性
    CSS中如何使用 Positioning定位属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。CSS Positioning定...
    99+
    2024-04-02
  • CSS如何实现定位元素居中
    这篇文章主要讲解了“CSS如何实现定位元素居中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS如何实现定位元素居中”吧!绝对定位元素的居中实现如果要问如...
    99+
    2024-04-02
  • css中div如何根据图片定位
    在css中,可通过background-position属性控制图片在div中的位置,具体步骤如下:水平定位:background-position的第一个值为图片宽度。垂直定位:bac...
    99+
    2024-04-28
    css
  • css精灵图如何定位
    本篇内容介绍了“css精灵图如何定位”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • CSS中定位的方法
    这篇文章主要为大家展示了“CSS中定位的方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中定位的方法”这篇文章吧。1.文档流简单说就是元素按照其在 HT...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作