逆战班 css定位 锚点 继承

## 定位

 

**position**属性用于指定一个元素在文档中的定位方式。`top`,`right`,`bottom`和 `left`属性则决定了该元素的最终位置

 

语法:`position: 属性值;`

 

* static(静态定位):默认值,该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。此时 `top`, `right`, `bottom`, `left` 和 `z-index `属性无效。

* relative(相对定位):相对定位的元素是在文档中的正常位置偏移给定的值,但是不影响其他元素的偏移。相对定位的元素并未脱离文档流,保留空间。

* absolute(绝对定位):相对于最近的**非 static** 定位祖先元素的偏移,来确定元素位置(如果这个非 static 定位祖先元素不存在,就相对于根节点进行定位)。绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。绝对定位的元素脱离了文档流,不占据空间。

* fixed(固定定位):不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。当元素祖先的 `transform`  属性非 `none` 时,容器由视口改为该祖先。

* sticky(粘性定位):粘性定位可以被认为是相对定位和固定定位的混合。元素在跨越特定阈值前为相对定位,之后为固定定位。该定位基于用户滚动的位置,它不会对后续元素的定位造成影响。

 

| 定位类型 | 位置                       | 是否脱离文档流 |

| -------- | -------------------------- | -------------- |

| static   | 正常文档流位置             | 否             |

| relative | 相对原来的位置             | 否             |

| absolute | 相对非static定位的祖先元素 | 是             |

| fixed    | 相对于视口                 | 是             |

 

## 定位层级 z-inex

 

指定了一个具有定位(非static)属性的元素及其子代元素。当元素之间重叠的时候,z-index决定哪一个元素覆盖在其余元素的上方显示。 通常来说 z-index 较大的元素会覆盖较小的一个。

 

语法:`z-index: 属性值;`

 

属性值可以是:

 

* auto 。(默认值),堆叠顺序与父元素相等。

* 数字。 无单位的整数值。可为负数,数值越大,堆叠顺序越靠上。

 

## 包含块

 

一个元素的尺寸和**位置**经常受其包含块的影响。对于一些属性,例如 `width`, `height`, `padding`, `margin`,绝对定位元素的偏移值 (比如 `position`) 被设置为 `absolute` 或 `fixed`),当我们对其赋予百分比值时,这些值的计算值,就是通过元素的包含块计算得来。

 

### 确定包含块

 

确定一个元素的包含块的过程完全依赖于这个元素的`position`属性:

 

1. 如果 position 属性为 `static` 或 `relative` ,包含块就是由它的最近的祖先**块元素**(比如说inline-block, block 或 list-item元素)的内容区的边缘组成的。

2. 如果 position 属性为 `absolute` ,包含块就是由它的最近的 position 的值不是 `static`(也就是值为`fixed`, `absolute`, `relative` 或 `sticky`)的祖先元素的内边距区的边缘组成。

3. 如果 position 属性是 **fixed**,一般情况下包含块是 viewport。

 

**注意:** 根元素(`<html>`)所在的包含块是一个被称为**初始包含块**的矩形

 

## 锚点

 

作用:跳转到同一页面的不同位置。

使用:

1. 定义锚点 : `<a href="#锚点名称">xxx</a>`

2. 定义锚点要跳转的位置:`<标记 id="锚点名称"> </标记>`

 

## 透明

 

IE9以下浏览器写法:filter:alpha(opacity=value);取值范围 0-100

兼容其他浏览器写法:opacity:0.5;(value的取值范围0-1)

rgba(255,255,0,0.5)(最后一位值表示透明,取值范围0-1) 只支持IE8以上的浏览器

 

### 继承

所谓继承,就是父元素的规则也会适用于子元素

比如给body设置为color:Red;那么他内部的元素如果没有其他的规则设置,也都会变成红色。

* 内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font-family、font-size、font-style、font-weight、text- decoration、text-transform.

* 块状元素可继承:text-indent和text-align。

* 列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。

* 表格元素可继承:border-collapse。

 

### 层叠

一个元素可能同时被多个css选择器选中,每个选择器都有一些css规则,这就是层叠。

这些规则有可能不矛盾的,自然这些规则将会同时起效,然而有些规则是相互冲突的。当发生冲突的时候必须选出一条最高特殊性(权重)的规则来应用。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值