CSS属性学习随笔

CSS的z-index属性

通常认为HTML页面是二维的,但实际上,CSS还有一个z-index属性,允许层叠元素。


默认的拜访规则

假定元素没有指定的z-index属性,那么元素按照如下顺序叠放(从底到顶)

1. 根元素的背景和边界

2.普通流(无定位)里的块元素(没有position或者position:static;)按HTML中出现的顺序堆叠

3.定位元素按HTML中的出现顺序堆叠

浮动

对于浮动块元素来说,堆叠顺序变得有些不同。浮动块元素被放置于非定位块元素与定位块元素之间:

1. 根元素的背景与边框

2. 位于普通流中的后代块元素按照它们在HTML中出现的顺序堆叠

3. 浮动块元素

4. 常规流中的后代行内元素

5.后代中的定位元素按照它们在HTML中出现的顺序堆叠

使用z-index

如果需要改变默认的摆放顺序,只需给元素指定z-indexz-index必须是整数,体现了元素在z轴的位置:

  • 底层:距离观察者最远
  • ……
  • -3 层
  • -2 层
  • -1 层
  • 0 层 (默认)
  • 1 层
  • 2 层
  • 3 层
  • ……
  • 顶层:最接近观察者

没有指定z-index的时候,所有元素默认在0层渲染。多个元素的z-index属性相同时,将按照上文描述的顺序布局。

CSS的position属性

◆DIV布局属性之position:static 无定位

该属性值是所有元素定位的默认情况,在一般情况下,我们不需要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本身,从而可以用position:static取消继承,即还原元素定位的默认值。
如:#nav{position:static;}

◆DIV布局属性之position:absolute 绝对定位

使用position:absolute,能够很准确的将元素移动到你想要的位置,让我将nav移动到页面的右上角。我们可以这样写:nav{position:absolute;top:0;right:0;width:200px;}
使用绝对定位的nav层前面的或者后面的层会认为这个层并不存在,也就是在z方向上,它是相对独立出来的,丝毫不影响到其它z方向的层。所以position:absolute用于将一个元素放到固定的位置很好用,但是如果需要层相对于附近的层来确定位置就无能为力了。只能用下面讨论到的相对定位了。
这里有个WinIE的bug需要提到,就是如果为绝对定位的元素定义一个相对的宽度,那么在IE下它的宽度取决于父元素的宽度而不是整个页面的宽度。

absolute有一个优点就是它不占空间,不会把别的内容挤掉。

◆DIV布局属性之position:fixed 相对于窗口的固定定位

这个定位属性值是什么意思呢?元素的定位方式同absolute类似,但它的包含块是视区本身。在屏幕媒体如WEB浏览器中,元素在文档滚动时不会在浏览器视察中移动。例如,它允许框架样式布局。在页式媒体如打印输出中,一个固定元素会出现于第一页的相同位置。这一点可用于生成流动标题或脚注。我们也见过相似的效果,但大都数效果不是通过CSS来实现了,而是应用了JS脚本。
请特别注意,IE6不支持CSS中的position:fixed属性。真的非常遗憾,要不然我们就可以试试这种酷酷的效果了。

◆DIV布局属性之position:relative 相对定位

所谓相对定位到底是什么意思呢,是基于哪里的相对呢?我们需要明确一个概念,相对定位是相对于元素默认的位置的定位。既然是相对的,我们就需要设置不同的值来声明定位在哪里,top、bottom、left、right四个数值配合,来明确元素的位置。如果要让nav层向下移动20px,左移40px:
我们可以这样写:#nav{position:relative;top:20px;left:40px;}
但您需要注意下面的情况,相对定位紧随他的层外css是不会出现在nav的下方,而是和nav发生一定的重叠!


CSS中-moz、-ms、-webkit


-moz代表firefox浏览器私有属性;

-ms代表IE浏览器私有属性;

-webkit代表chrome、safari私有属性;

-o代表opera浏览器。

transform: translate3d(0,0,0)可以触发硬件加速,从而让浏览器在渲染动画是从cpu转向cpu。

  1. transform:translate3d(0,0,0);  
  2.     -webkit-transform:translate3d(0,0,0);  
  3.     -o-transform:translate3d(0,0,0);  
  4.     -moz-transform:translate3d(0,0,0); 
  5.     -moz-transform-style: preserve-3d;
  6.   -webkit-transform-style: preserve-3d;
  7.  transform-style: preserve-3d;  
    //使被转换的子元素保留其 3D 转换:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值