css的几个概念
本文介绍几个css常用的概念,包括:position、float等。这在初接触css时比较容易混乱。
元素类型
HTML的元素可以分为两种:
- 块级元素(block level element)
- 内联元素(inline element)
两者区别在于: - 1.块级元素会独占一行(无法与其他元素显示在同一行内,除非显示修改元素的display属性),而内联元素会在一行内显示
- 2.块级元素可以设置width、height属性,而内联元素设置无效
- 3.块级元素的width 默认为100%,而内联元素则是根据其自身的内容或子元素来决定其宽度。
最常见的块级元素是 div,内联元素有span、a、img等等
code:
.example{
width:100px;
height:100px;
}
为div设置上面的样式,是有效果的,因为是块级元素,而对span设置上面的样式是没有用的。要想让span改变宽高,可以通过设置display:block;当display的值设置成block时,元素将以块级形式呈现;当display设置成inline时,元素将以内联形式呈现。
若是想让元素在行内显示,又能设置宽高,可以设置:
display:inline-block;
inline-block:对外呈现内联元素,可以与其他元素共处于一行内,对内则让元素呈块级元素,可以改变宽高。
position
position 这个属性决定了元素将如何定位。它的值大概有以下五种:
position值 | 如何定位 |
static | position的默认值。元素将定位到它的正常位置(上文提到过),其实也就相当于没有定位。元素在页面上占据位置。不能使用 top right bottom left 移动元素位置。 |
relative | 相对定位,相对于元素的正常位置来进行定位。元素在页面占据位置。可以使用 top right bottom left 移动元素位置。 |
absolute | 绝对定位,相对于最近一级的 定位不是 static 的父元素来进行定位。元素在页面不占据位置。 可以使用 top right bottom left 移动元素位置 |
fixed | 绝对定位,相对于浏览器窗口来进行定位。其余和 absolute 一样,相当于一种特殊的 absolute。 |
inherite | 从父元素继承 position 属性的值。 |
每个网页都可以看成是由一层一层页面堆叠起来的,如下图所示。
position 设置为 relative的时候,元素依然在普通流中,位置是正常位置,你可以通过 left right 等移动元素,会影响其他元素的位置。
而当一个元素的 position 值为 absolute 或 fixed 的时候,会发生三件事:
- 1.把该元素往 Z 轴方向移了一层,元素脱离了普通流,所以不再占据原来那层的空间,还会覆盖下层的元素。
- 2.该元素将变为块级元素,相当于给该元素设置了display:block(给一个内联元素,如 span ,设置 absolute之后发现它可以设置宽高了)。
3.如果该元素是块级元素,元素的宽度由原来的 width: 100%(占据一行),变为了 auto。
由此观之,当 position 设置为 absolute 或 fixed,就没必要设置 display 为 block 了。而且如果你不想覆盖下层的元素,可以设置 z-index 值 达到效果。float
float 顾名思义,就是把元素浮动,它的取值一共有四个:left right none inherit.
这个以后再仔细去写吧。。。原文作者:GeekPlux 网址