`
karaschee
  • 浏览: 15270 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

关于 z-index为负值的情况 与 height=100%的疑惑

    博客分类:
  • CSS
阅读更多

最近遇到的一个小问题,记录下。

 

1.将z-index设为负值的话,元素会最贴近BODY,但是不能穿过body,之前我直接在body上加了个需隐藏的元素textarea,发现怎么也消失不了。最后加了个带背景的DIV把textarea套起来就可以了。用DIV把他遮住。

 

 

<body> 
	<div style="background:#fff">
		<textarea id="log" cols="50" rows="10" ></textarea>
		<input id="popBtn" type="button" value="pop a window" />
	</div>
</body>
 

2.关于不同浏览器的position:absolute;height:100%的表现

 

1)看以下代码:

 

 

<body style="height:3000px"> 
	<div id="test" style="position:absolute;top:0;left:0;width:100%;height:100%;backgroung:#ddd;">
		
	</div>
</body>

 

开始以为test会遮住整个页面(高3000px),但结果是:

IE6:高3000px

ff:长度搞好是窗口高度

 

原因:height取值

值 描述
auto 默认。浏览器会计算出实际的高度。
length 使用 px、cm 等单位定义高度。
% 基于包含它的块级对象的百分比高度。
inherit 规定应该从父元素继承 height 属性的值。

 

而将position设为absolute之后,此元素会相对于 static 定位以外的祖先元素进行定位,一级一级的向上找,直到找到 static 定位以外的祖先元素,并以此元素为基准进行定位。

 

所以在这时包含它的块级对象是window,应按window的高度取值。

 

为什么IE6是3000px呢?因为ie6会默认给body赋值position:relative;

 

2)那么将body的height:3000px.取消掉又是什么情况呢?

 

 

<body> 
	<div id="test" style="position:absolute;top:0;left:0;width:100%;height:100%;backgroung:#ddd;">
	</div>

<div style="height:4000px;"></div>
</body>
 

 

 

浏览器表现如下:

ie6:只有很小的一截,约2、3行的样子

ff:长度刚好是窗口高度

 

FF的表现很好理解,但为什么ie6的高不是4000px(左右)呢?

原因是,在IE6中,如果不设定父级元素的高度,则设定层高x%是无用的

这个时候给bodyheight:100%就行了,但是此时test的高度仍然不是4000px,而是和标准浏览器一样,长度刚好是窗口高度。


3)IE与标准浏览器的body\html 100%高度算法的不同

A:将body设为100%

 

标准浏览器:

body = document

html = docuemnt

 

ie6:

body = window ;执行$("body").height()后,body = document,原因不明

html = window

 

B:将body设为100%、html设为100%

 

标准浏览器:

body = window

html = window

 

ie6:

body = document

html = window

 

总结:

对于标准浏览器:body 倚赖于html,html依赖于window。

如果html的height为auto,那么html=document.如果height为100%,那么html=window.

如果body的height为auto,那么body=document.如果height为100%,那么body=html.

所以,当body和html为height:100%的时候,各自才会倚赖于父元素。

 


 

 

分享到:
评论

相关推荐

    Flex 透明效果,位于页面最底层

    z-index: -100;"&gt; &lt;object ...&gt; 或 ``` 在这个例子中,`z-index`设置为-100,确保Flex应用位于所有其他元素之下,允许用户点击并交互到被Flex覆盖的HTML元素。 4. **性能考虑**: 需要注意的是,使用`...

    网站背景播放视频的主页

    `将视频定位在视口的背景,`width`和`height`设置为`100%`以覆盖整个屏幕,`z-index`设为负值使其位于其他元素之下。同时,可能还需要通过CSS对视频的透明度、亮度或颜色进行调整,以适应网站的色调和风格。例如: ...

    CSS定位相关

    #### 四、层叠顺序与Z-index属性 当多个绝对定位元素相互重叠时,可以通过`z-index`属性来控制它们的堆叠顺序。`z-index`属性只适用于定位元素(`relative`、`absolute`、`fixed`),对于非定位元素无效。 - **...

    网页背景图片自动切换

    这里的`id`为"background-container",设置为固定定位并占据全屏,`z-index`设置为负值以确保背景图片位于其他元素之下。 然后,在CSS中,我们可以为这个容器添加初始背景图片: ```css #background-container { ...

    css_position用法详解

    - 当 `position` 被设置为 `relative` 时,可以通过 `z-index` 来改变元素的堆叠顺序。 - **示例代码**: ```html &lt;div style="position:relative;height:50px;width:50px;background:#f00;left:50px;top:50px;...

    javascript 层遮罩效果

    对话框和遮罩层的`top`和`left`值可以设置为负值的一半,以确保它们始终居中。 此外,为了确保遮罩层能够完全覆盖整个页面,你需要考虑页面的滚动区域。在某些情况下,可能需要监听滚动事件并动态调整遮罩层的高度...

    css body背景图全屏不论分辨率大小

    这种方法的核心在于设置img元素的`z-index`为负值,使其位于其他内容之下,同时通过绝对定位保证图片覆盖整个视口。 首先,我们需要在HTML中添加一个img元素,作为背景图片: ```html &lt;!-- 其他内容 --&gt; ...

    如何解决IE6/7绝对定位元素神秘消失或被遮挡的方法

    另外,还可以通过CSS hack技术,比如使用负值的z-index来降低在IE下的层级,但这可能导致其他新的IE浏览器问题。 绝对定位元素的层级管理是通过z-index属性来实现的。以下是一些关于z-index的重要特性: 1. 相对...

    使用html+CSS实现流星雨特效,可以直接在编辑器中运行或者在浏览器中打开,十分的炫酷

    在这个例子中,我们设置了`canvas`元素的样式,使其全屏显示并覆盖整个页面,同时设置其z-index为负值,确保流星雨在其他内容之上,但不干扰页面其他元素的交互。 然后,我们使用JavaScript(特别是它的Canvas API...

    用CSS为表格添加阴影效果.rar

    height: 100%; box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, 0.3); z-index: -1; } ``` 这样,阴影被置于表格之上,不会受到表格边框的影响。 在压缩包中的`index.htm`文件中,可能包含了一个实际的示例,演示了...

    vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)

    设置`z-index`为负值,可以让粒子背景位于其他具有默认或正`z-index`的元素下方,这样按钮和其他交互元素就能正常响应用户操作了。 总的来说,Vue-particles是一个强大的工具,可以轻松地为Vue项目增添动态粒子背景...

    圣诞节飘雪效果-jquery实现

    z-index: 9999; } ``` 这里假设你有一个名为`snowflake.png`的雪花图片,如果没有,你可以选择一个合适的雪花图形或者用纯色背景代替。 综上所述,通过结合HTML、CSS和jQuery,我们可以轻松地在网页中实现圣诞节...

    DIV+CSS水平垂直居中

    z-index:1;background-color:#000;color:fff;margin-left:-150px;margin-top:-32px} 在上面的代码中,我们定义了一个名为center的CSS类,然后将其应用于DIV元素。通过设置left和top属性为50%,然后将margin-left和...

    powerbuilder

    指定椭圆或圆外形框的宽度,以千分之一英寸为单位height:integer类型,指定椭圆或圆外形框的高度,以千分之一英寸为单位thickness:integer类型,指定椭圆或圆外边线的厚度,以千分之一英寸为单位返回值Integer。...

    IE6下div层被select控件遮住的问题解决方法

    在上述代码中,`iframe`被用来包裹`div`内的内容,同时设置`iframe`的`z-index`为负值(例如-1),这样`iframe`就会被`select`控件覆盖,但`iframe`内部的`div`内容仍然可见。这种方法的关键在于,尽管`select`具有...

    css中所谓的方法.md

    - **调整`z-index`**: 设置`z-index`为负值,使元素置于其他元素之下,从而实现隐藏的效果。 #### 二、元素的水平垂直居中方法 1. **使用Flexbox布局** - **语法**: ```css father { display: flex; justify...

    css入门笔记

    2.width% height% 3.cover 将背景图等比放大,直到背景图完全覆盖到元素的所有区域为止 4.contain 将背景图等比放大;直到背景图片碰到某个边缘位置 5.背景图片固定 作用:将普片固定在网页在某个位置,一直...

    video全屏背景视频播放特效

    `z-index`设置为负值,确保视频位于其他内容的后面,不影响内容的展示。 在创建动态背景视频时,我们还需要考虑性能问题。大型视频文件可能导致页面加载缓慢,影响用户体验。为此,可以使用视频编码工具进行优化,...

    CSS基础知识1

    `z-index`属性控制元素的堆叠顺序,数值越大,元素越靠前,可以覆盖数值小的元素。负值也是允许的。 浮动(`float`)常用于创建图文混排的效果,`float: left;`或`float: right;`会让元素在相应方向浮动,直到碰到...

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

    负值的计算方式为负的一半元素的高度,这样元素的中心就会与浏览器窗口的中心重合。类似地,若要水平居中,设置left属性为50%,再通过margin-left的负值调整。这负值是一半元素的宽度。 具体代码如下所示: ```css ...

Global site tag (gtag.js) - Google Analytics