网站建设
网站备案流程
本机IIS服务器的创建
Win7下配置本机IIS服务器
建网站需要学习的内容
使用表格布局网页
定义网页头文件元素
制作弹出网页
制作网页宣传窗
Div+CSS布局网页
CSS的常见选择器
CSS设置文本样式
CSS设置背景颜色与图像
CSS设置表格样式
HTML中使用CSS的方法
CSS3新增的部分属性1
CSS3新增的部分属性2
CSS3动画与渐变
网页显示MySQL数据库中汉字的乱码问题
HTML5的新特性
HTML5的API
HTML5音视频API
HTML5表单
HTML5表单API
HTML5画布canvas
HTML5拖放API
HTML5地理位置API
HTML5离线应用API
HTML5 Workers多线程
HTML5跨源通信
HTML5 WebSocket通信
HTML5的Web存储API
HTML5本地数据库
HTML5其他一些API
Node.js功能和使用
常用Web前端工具
WebGL编程
GLSL ES语言
使用ThreeJs库3D编程
XML可扩展标记语言
表格是网页上最常见的元素,在传统的网页设计中,表格除了显示数据外,还常常用来作为整个页面布局的手段。现在Web标准已不建议用表格来布局,但表示数据等方面还起着重要作用。
最常用的与表格相关的3个标记是<table>、<tr>和<td>,其中<table>用于定义整个表格,<tr>定义一行,<td>定义一个单元格。还有<caption>和<th>两个标记也常用到,<caption>用于定义表格的大标题,可以出现在<table>和</table>中的任意位置,不过习惯上放在表格的第1行,紧接着<table>标记;<th>是表头,主要用于行或列的名称。
HTML还有<thead>、<tbody>、<tfoot>三个与表格有个的标记,用来定义表格的不同部分,称为行组。 在HTML中,单元格是存在于“行”中的,对整列设置样式就不太方便,这时可使用<col>标记。示例:
<table>
<col></col><col></col><col class=”special”></col>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
</tr>
每一对<col></col>标记对应于表格中的1列,对需要单独设置的列设置一个类别,并设置该类别的CSS属性即可。
1.CSS设置表格边框:
为table设置一个类别record,并设CSS属性。代码为:
<style type=”text/css”>
.record{
font:14px 宋体;
border:2px #777 solid;
text-align:center;
}
.record td{
border:1px #777 dashed;
}
.record th{
border:1px #777 solid;
}
</style>
最外面的粗线框是整个表格的边框,由table的.record类边框设定,而th和td也可以分别设置边框属性。每个单元格都有自己的边框,边框之间的间距由cellspacing决定。
当把cellspacing设为0,相邻单元格的边框紧挨一起,最小为2像素。
2.确定表格宽度:
CSS有table-layout属性,有fixed和auto属性值,分别表示固定和自动方式。设置使用自动方式时,表格实际宽度可能并不是width属性的设置值,而是根据单元格中的内容多少进行调整;而在设置为固定方式时,表格的水平布局不依赖于单元格的内容,而是由width属性指定。浏览器默认使用自动方式。
3.合并单元格边框:
CSS可以通过border-collapse属性设置边框分离或合并。示例:
.record{
font:14px 宋体;
border:2px #777 solid;
text-align:center;
border-collapse:collapse;
}
这样,相邻单元格之间的两条边框将重合为一条边框,粗细为1像素,这时HTML中设置的cellspacing属性就失效了。border-collapse属性的默认值为separate。
每个单元格可以设置各自的边框属性,相邻边框合并时就有优先级问题。在CSS2的规范中,边框border-style属性有多种属性值,其中hidden的优先级最高,边框属性none的优先级最低,粗线的优先级高于细线,border-width相同时的样式优先级为double、solid、dashed、dotted、ridge、outset、groove、inset。如果边框的其他样式都相同,只是颜色不同,那么单元格样式最优先,然后依次是行、行组、列、列组和表格样式。
不过,上述CSS2规范并不是所有浏览器都严格遵循。
使用HTML设定单元格属性时,cellpadding用来设置单元格内容和边框之间的距离,cellspacing用来设置相邻单元格边框之间的距离。
而用CSS实现cellpadding,是对td使用padding属性;实现cellspacing则需要对table设置专门属性border-spacing,并确保border-collapse属性没有使用collapse。但并不是所有浏览器都支持border-spacing属性。
4.对表格和标题的CSS设置:
table{
background-color:#fff;
color:#565;
font:12px arial;
border:none;
text-align:left;
}
table caption{
font-size:24px;
border-bottom:2px solid #b3de94;
border-top:2px solid #b3de94;
}
5.设置单元格样式:
首先设置区分tbody和thead、tfoot部分的行背景色:
tbody tr{
background-color:#ccc;
}
thead tr,tfoot tr{
background-color:white;
}
然后设置单元格的内边距和边框属性,形成立体效果:
td,th{
padding:5px;
border:2px solid #eee;
border-bottom-color:#666;
border-right-color:#666;
}
6.斑马纹效果:
当表格数据量很大时,表格使用同样背景色会比较凌乱而使人看错行,需要使用隔行变色效果。在CSS中,给偶数行的<tr>标记添加上相应类型,并对其进行CSS设置即可。示例:
<tr class=”even”>
<th>TV</th>
<td>T956874</td>
<td>Germany</td>
<td>$315.00</td>
<td>White</td>
<td>15.4kg</td>
</tr>
而设置.even与其他单元格的不同样式:
tbody tr.even{
background-color:#aaa;
}
实际网页中,隔行变色效果通常是配合服务器动态生成的,在服务器读取数据时做判断。例如,读取第一个数据时输出<tr>,而读取第2个数据时输出<tr class=”even”>,依次循环。
7.设置列样式:
对数值的列,如price和weight,右对齐更符合习惯,而其他列则为居中对齐。需要在HTML中加入如下代码:
<col/> <col class=”center”/> <col class=”center”/> <col class=”right”/> <col class=”center”/> <col class=”right”/>
其中增加了6个<col>标记,其中每个col标记对应于一列。CSS样式表中的设置为:
col.center{
text-align:center;
}
col.right{
text-align:right;
}
这样设置,也使表头price和weight也右对齐了,一般希望居中对齐,则CSS中设置:
thead th{
text-align:center;
}
有些浏览器不支持col元素,这时可以使用邻接选择器:
th+td,th+td+td,th+td+td+td+td{
text-align:center;
}
th+td+td+td,th+td+td+td+td+td{
text-align:right;
}
8.设置鼠标指针经过时整行变色提示的表格:
对Firefox浏览器,支持“:hover”伪类,仅仅通过CSS的“:hover”伪类就可以实现该效果。
tbody tr:hover td,tbody tr:hover th{
background:aqua;
border:2px solid aqua;
}
上述代码的意图是,某一行在鼠标指针经过时,会使用“th:hover”将背景色设置为和原来的背景色反差很大的颜色,然后把边框颜色设置为和背景色相同。