`
yiminghe
  • 浏览: 1460239 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

fixed 定位 auto 问题

阅读更多

当一个元素被 fixed 定位时,它会脱离文档流而以视窗为参考对象重新定位,但是当 left,top 不设置时,会出现奇怪的现象,尚没找到解释源。



absolute 定位


设置定位前:



设置absolute定位后:

 

但是不设置left,top则会:


 

效果表现为仅仅是脱离文档流


fixed 定位


fix 定位就比较奇怪了,若不设置 left,top,则浏览器实际上将当前元素未定位前的 document offset 设置为元素的left,top ,标准浏览器可通过计算值获取 ,ie 可用 offsetTop,offsetLeft 间接获取。


那么如果当前定位元素所在视窗没有滚屏,则位置不变(以后随屏幕滚动):


定位前:



定位后

 

不设置left,top




  实际上这时固定定位元素的top已经被设置为当前定位元素的 document offset,但因目前视窗没有滚动,所以和绝对定位时静态表现一致。

 

  但是如果当前元素所在视窗有很大滚动值,则定位后,该元素会因 document offse t过大,并且相对视窗定位而被定位到了屏幕外边而导致不可见,这一点可以通过可以获得元素所在视窗位置的 getBoundingClientRect ( msdn )清楚知道 :



getBoundingClientRect & css demo







  • 大小: 1.2 KB
  • 大小: 1.3 KB
  • 大小: 3.6 KB
  • 大小: 2.5 KB
分享到:
评论
1 楼 binoruv 2010-12-09  
能否写一篇关于网站首页动态布局原理的文章?

首页有各个模块,可以根据需要增加或删除某些模块,结合模板引擎来讲一下

现在用django的模板,首页的模块是用服务端模板语言写好的,怎样实现动态显示或关闭这些模块呢?(非ajax,不利于搜索引擎的检索)

相关推荐

    CSS实现模拟position的fixed页面定位效果

    这种方法的优点在于它可以很好地处理旧版浏览器的兼容问题,同时也能在某些情况下提供比 `position:fixed` 更好的性能。但是,需要注意的是,这种方法可能不适用于所有情况,特别是当页面布局非常复杂或者需要响应式...

    CSS中如果固定定位只给出了定位模式position:fixed,没给出边位移引发的问题

    本篇文章将重点讨论在使用`fixed`定位时只指定`position: fixed`而忽略边位移所引发的问题。 首先,我们需要理解定位的基础概念。定位模式`position`决定元素如何相对于其正常流中的位置进行定位。默认情况下,所有...

    html5实现输入框fixed定位在屏幕最底部兼容性

    在桌面端,我们可以轻松地利用CSS的`fixed`定位实现,但在移动设备上,尤其是涉及到键盘弹出和不同浏览器的行为时,问题就变得复杂了。 1. **初步解决**: 初步的布局解决方案通常包括三个部分:头部(header)、...

    div弹出层 定位问题的 处理

    下面我们将详细探讨`div`弹出层定位问题的处理方法。 首先,让我们理解`div`的基本概念。`div`是HTML中的一个块级元素,它本身没有特定的样式,但可以作为容器来容纳其他HTML元素,并通过CSS进行样式定义。在实现弹...

    固定浮动定位(fixed)实现思路及代码

    在网页设计中,固定定位(position:fixed)是一种常见的布局技术,它允许元素相对于浏览器窗口进行定位,即使在滚动页面时也会保持其位置不变。在本案例中,我们需要在页面底部中间固定一个区块,通常会使用`...

    解决ie6的定位问题 position fiexed

    ### 解决IE6中的定位问题:Position Fixed 在早期的Web开发中,Internet Explorer 6(简称IE6)因其浏览器兼容性问题而臭名昭著。其中一个常见的问题是`position: fixed;`属性在IE6中不起作用。这使得开发者很难...

    fixed-columns

    通过以上技术,fixed-columns可以帮助我们创建出更高效、用户友好的数据展示界面,尤其在处理大量数据时,能让用户更容易地定位和理解信息。在实际项目中,开发者可以结合具体需求选择合适的库或自定义实现,以达到...

    IE6中的position:fixed定位兼容性写法分享

    在网页设计中,`position:fixed` 是一个 CSS 属性,用于设置元素的定位方式,使其相对于浏览器窗口保持固定,即使在滚动时也不会移动。然而,这个特性在 Internet Explorer 6 (IE6) 中存在一些兼容性问题。由于 IE6 ...

    firefox下绝对定位元素重叠造成不可点击问题

    在Firefox浏览器中,当涉及到CSS布局的绝对定位(absolute positioning)时,可能会遇到一个常见的问题:元素重叠导致某些元素变得不可点击。这个问题通常出现在有多个绝对定位元素且它们的位置相互覆盖时。本文将...

    详解css定位与定位应用

    CSS提供了多种定位方式,包括静态定位(static)、相对定位(relative)、绝对定位(absolute)以及固定定位(fixed),每种定位方式都有其独特的特性和应用场景。 #### 静态定位(Static) - **定义**:静态定位...

    css3 position fixed固定居中问题解决方案

    然而,当尝试将一个`position: fixed`的元素居中时,常规的居中对齐方法如 `margin: 0 auto` 可能不再有效,因为`fixed`定位使元素脱离了正常文档流,不再受到父元素的影响。 通常,我们使用 `margin: 0 auto` 来...

    HTML浮动与定位

    - **fixed**: 相对于浏览器窗口进行定位。 **4.3 边偏移属性** - **top**: 定位元素顶部与最近的已定位祖先元素之间的距离。 - **bottom**: 定位元素底部与最近的已定位祖先元素之间的距离。 - **left**: 定位元素...

    ie6 position:fixed解决方案

    为解决这个问题,可以通过给滚动元素的父元素(通常是body)添加一个固定的背景图像,并设置`background-attachment: fixed;`: ```css * html body { background-image: url(about:blank); background-...

    什么是css定位?css定位怎么使用.docx

    - **固定定位**:`position: fixed;` 元素脱离文档流,相对于浏览器窗口进行定位。即使页面被滚动也不受影响,始终保持在屏幕的特定位置。 #### 二、CSS定位的使用方法 假设我们需要实现一个右侧固定不动的区域,...

    css中position:fixed实现div在窗口上下左右居中

    然而,由于fixed定位的元素会脱离文档流,因此不能使用auto值自动调整其位置。这时,需要利用CSS中的margin属性或transform属性来实现居中。 首先,让元素垂直居中,可以通过设置top属性为50%,然后通过margin-top...

    绝对定位元素被遮挡的解决方法

    为了解决绝对定位元素被遮挡的问题,需要对绝对定位元素的父元素设置z-index值,即使是1,只要这个值高于所有可能遮挡该元素的其他相对定位元素的z-index值,就可以保证绝对定位元素在层级上处于上层。这样做的目的...

    3.4CSS 内容总结(四)定位.md

    在CSS中,元素可以通过以下几种方式进行定位:静态定位(static)、相对定位(relative)、绝对定位(absolute)、固定定位(fixed)以及粘性定位(sticky)。此外,还有边偏移(top、bottom、left、right)以及定位...

    ie6下定位bug解决

    在其他现代浏览器中,CSS的`position`属性如`relative`、`absolute`和`fixed`能很好地实现元素的定位,但在IE6中,这些属性的处理方式却大不相同,导致开发者需要进行特殊的“hack”来解决这些问题。 首先,IE6不...

    HTML5&CSS3网页制作:元素的定位属性.pptx

    请注意,只有当 `position` 属性设置为 `relative`, `absolute` 或 `fixed` 时,边偏移属性才会生效,且默认值为 `auto`,表示元素按照常规流进行布局。 以下是一个简单的例子,展示了如何使用这些定位属性: ```...

Global site tag (gtag.js) - Google Analytics