学习要点:
1.元素可见性
2.元素盒类型
3.元素的浮动
主讲教师:李炎恢
本章主要探讨 HTML5 中 CSS 盒模型,学习怎样了解元素的外观配置以及文档的整体布局。
一.元素可见性
使用 visibility 属性可以实现元素的可见性,这种样式一般可以配合 JavaScript 来实现效果。样式表如下:
属性 |
值 |
说明 |
CSS 版本 |
|
visible |
默认值,元素在页面上可见。 |
2 |
visibility |
hidden |
元素不可见,但会占据空间。 |
2 |
|
collapse |
元素不可见,隐藏表格的行与列,如果不是表格,则和 hidden 一样。 |
2 |
//设置元素隐藏,但占位
<span style="color: #800000;">div </span>{<span style="color: #ff0000;"> visibility</span>:<span style="color: #0000ff;"> hidden</span>; }
//隐藏表格的行或列,但不占位,Chrome 和 Opera 不支持
<span style="color: #800000;">table tr:first-child </span>{<span style="color: #ff0000;"> visibility</span>:<span style="color: #0000ff;"> collapse</span>; }
二.元素盒类型
CSS 盒模型中的 display 属性,可以更改元素本身盒类型。那么元素有哪些盒类型呢?主要有:1.块级元素(区块);2 行内元素(内联);3 行内-块级元素(内联块);4.隐藏元素。
1.块级元素
所谓块级元素,就是能够设置元素尺寸、隔离其他元素功能的元素。比如:
等文档元素。
2.行内元素
所谓行内元素,不能够设置元素尺寸,它只能自适应内容、无法隔离其他元素,其它元素会紧跟其后。比如:、等文本元素。
3.行内-块元素
所谓行内-块元素,可以设置元素尺寸,但无法隔离其他元素的元素。比如。
属性 |
值 |
说明 |
CSS 版本 |
|
block |
盒子为块级元素 |
1 |
display |
inline |
盒子为行内元素 |
1 |
inline-block |
盒子为行内-块元素 |
2 |
|
|
|||
|
none |
盒子不可见,不占位 |
1 |
//将行内元素转成块级元素
<span style="color: #800000;">span </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> silver</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> block</span>; }
//将块级元素转换成行内元素
<span style="color: #800000;">div </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> silver</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> inline</span>; }
//将块级元素转化成行内-块元素
<span style="color: #800000;">div </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> silver</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> inline-block</span>; }
//将元素隐藏且不占位
<span style="color: #800000;">div </span>{<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> none</span>; }
display 属性还有非常多的值,有些后面部分讲解,而有些支持度不好或者尚不支持,从而省略。有兴趣的,可以参考 CSS3 手册。
三.元素的浮动
CSS 盒模型有一种叫浮动盒,就是通过 float 属性建立盒子的浮动方向,样式表如下:
属性 |
值 |
说明 |
CSS 版本 |
|
left |
浮动元素靠左 |
1 |
float |
right |
浮动元素靠右 |
1 |
|
none |
禁用浮动 |
1 |
//实现联排效果
<span style="color: #800000;">#a </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> gray</span>;<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;"> left</span>; }<span style="color: #800000;"> #b </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> maroon</span>;<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;"> left</span>; }<span style="color: #800000;"> #c </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> navy</span>;<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;"> left</span>; }
//实现元素右浮动
<span style="color: #800000;">#c </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> navy</span>;<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;"> right</span>; }
//取消元素的浮动
<span style="color: #800000;">#c </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> navy</span>;<span style="color: #ff0000;"> float</span>:<span style="color: #0000ff;"> none</span>; }
刚才的浮动有一个问题:当一个元素盒子被浮动后,下面的元素会自动堆叠处理,导致元素不可见或部分不可见。我们可以使用 clear 属性来处理。
属性 |
值 |
说明 |
CSS 版本 |
clear |
none |
允许两边均可浮动 |
1 |
|
left |
左边界不得浮动 |
1 |
|
right |
右边界不得浮动 |
1 |
|
both |
两边都不得浮动 |
1 |
//两边均不可浮动
<span style="color: #800000;">#c </span>{<span style="color: #ff0000;"> background</span>:<span style="color: #0000ff;"> navy</span>;<span style="color: #ff0000;"> clear</span>:<span style="color: #0000ff;"> both</span>; }