Chapter 8. CSS Part3(显示样式、位置、浮动)
Box Model
也就是一个元素占用的区域的范围。每个元素占用的区域都相当于一个矩形。这个 box model 包含 margin、border、padding、content 四个东西。
定义的 width 与 height 只是 content 部分的大小。
显示样式 display
大部分元素的默认 display
值都是 block
和 inline
。两者最大的区别是,block
的元素宽度等于父元素的 100%,所以一定会另起一行;inline
内容多宽就占用多宽,所以不会另起一行。
但是 inline-block
是啥,第九节课件上才有提到。
默认 block
有哪些
<div>
<h1-6>
<p>
<form>
<header>
<footer>
<section>
<li>
默认 inline
有哪些
<span>
<a>
<img>
把 <li>
改成 inline
可以实现一个水平菜单。
有点特殊:display:none
通常结合 JavaScript,控制元素的可见性,比删除或新增元素简单
display:none
VS visibility:hidden
display:none
会直接把元素所占用的位置给清掉,而 visibility:hidden
仅仅是隐藏,但是该占用多少空间,还是会留着的。
CSS 的位置
position
property
position
用来指定元素的 positioning method,有四种取值:
static
默认值,不受 top
, bottom
, left
, right
这四个 property 的影响,完全根据页面元素布局流来确定位置。
relative
会参照默认的位置进行一定的偏移(根据 top
, bottom
, left
, right
)。于是会产生一些空白。这些空白里不会出现其他的元素。
fixed
顾名思义,位置是固定的,也就是说,位置相对于页面来说,固定不变的。即使页面滚动了,它的位置还是会保留不变。
absolute
相对最近的 position != static
的祖先进行偏移。如果不存在这个祖先,那么就是 <body>
。
关于元素重叠
元素发生重叠之后,哪个在上层,哪个在下层?
z-index
property 可以指定遮挡的顺序。这个值越大,就越靠前;值越小,就月靠下,容易被遮挡。
例:在图片当中放置文字
其中 img
的 opacity
property 用于指定透明度。这样就不用 z-index
了。
这里 div.container
的大小和位置其实是跟 <img>
一模一样的
关于居中的奇技淫巧
实验课里面那一堆乱七八糟的居中实在是太烦人了!
left
设成 0,同时width
设成 100%,就相当于实现了水平居中。top
设成 50%,就实现了垂直居中。
不过这好像只适用于单行文本。
CSS 的浮动
涉及到两个特性:float
与 clear
。
float
设定一个元素是否要 float
。
一个拥有 float
属性的元素后面的元素,位置也会浮动,这时候可以用 clear
指定一个元素周围指定方向上禁止浮动。
clearfix hack: 用 overflow:auto
解决
听起来很高级但好像不是那么高级。防止悬浮元素的溢出。