用CSS实现柱状图(Bar Graph)的方法(二)—基于表格元素的柱状图
作者:dudo 来源:dudo博客 发布时间:2008-05-26 13:23:00
在第一部分中,我们主要讲解了一下如何用列表元素来实现柱状图效果。其中需要特别注意的就是相对定位和绝对定位的的使用。在本节中,将来讨论一下使用表格元素<table />来创建一个柱状图的过程,这其中用到的关键技术还是相对定位和绝对定位的知识。
在开始之前,我们要先确定一下列表元素和表格元素到底有哪些不同。如果去除他们在浏览器的表现来说的话,他们基本上没有差别——都是有嵌套的(x)html标签而已。他们的不同主要是体现在在浏览器中的表现样式上,但是我们要实现的柱状图效果,无论采用了哪类方式实现,最终还是要具有差不多的外观。所以我们可以抛开细节不去管,不管<table />和<ul />有什么千差万别,我们只把它们看作是嵌套了两层或者三层的(x)html标签即可。既然这样,我们就可以用上一节的方式处理本节中的内容了:
1、建立如下结构的xhtml代码
<table id="graph">
<tr>
<td id="q1">100</td>
<td id="q2">190</td>
<td id="q3">140</td>
<td id="q4">70</td>
</tr>
</table>
和第一部分中的代码
<ul>
<li id="q1">100</li>
<li id="q2">190</li>
<li id="q3">140</li>
<li id="q4">70</li>
</ul>
相比,差别就在于我们使用的元素类型以及嵌套层次上,其他没有任何区别,如果我们忽略<table />标签从<tr />标签往下看的话,就完全一致了。
接下来我们用CSS样式化上面这段代码在浏览器的表现:
#graph tr {display:block;width:600px;border:1px solid #ccc;position:relative;height:200px;}
td {width:32px;position:absolute;bottom:0;text-align:center;font-weight:bold;color:#fff;}
#q1 {height:100px;left:10px;background:url(/file/UploadPic/20085/26/2008526132331285.gif) #fff no-repeat scroll 0 0;}
#q2 {height:190px;left:54px;background:url(/file/UploadPic/20085/26/2008526132331285.gif) #fff no-repeat scroll -34px 0;}
#q3 {height:140px;left:98px;background:url(/file/UploadPic/20085/26/2008526132331285.gif) #fff no-repeat scroll -68px 0;}
#q4 {height:70px;left:142px;background:url(/file/UploadPic/20085/26/2008526132331285.gif) #fff no-repeat scroll -102px 0;}
这段代码和前面的也没有太大区别,都是通过绝对定位来实现布局。
因此,我们可以运行一下下面的代码看最终效果:
和第一部分的纵向柱状结构完全一致。
2、横向的柱状图:
有了1中的演示,那么从纵向改为横向就更加简单的了,我们保持上面的xhtml代码结构不变,只需要变换一下CSS样式表就可以了(web标准的好处就是,只需要改变CSS就能改变页面的样子)。
#graph tr {display:block;width:600px;border:1px solid #ccc;position:relative;height:200px;}
td {height:32px;position:absolute;left:0;text-align:right;font-weight:bold;color:#fff;padding-right:13px;}
#q1 {width:100px;top:10px;background:url(attachments/month_0804/02008428202910.gif) #fff no-repeat scroll -188px 0;}
#q2 {width:190px;top:54px;background:url(attachments/month_0804/02008428202910.gif) #fff no-repeat scroll -98px -34px;}
#q3 {width:140px;top:98px;background:url(attachments/month_0804/02008428202910.gif) #fff no-repeat scroll -148px -68px;}
#q4 {width:70px;top:142px;background:url(attachments/month_0804/02008428202910.gif) #fff no-repeat scroll -218px -102px;}
替换这段代码即可实现横向的排列。
[小结]
在第一部分中,我们讨论了用列表元素实现状柱图的方法;在本部分中,我们又讨论了用表格元素<table />实现柱状图的方法;下一部分,我们将会用两个种方法来实现更加复杂的柱状图效果;最后,我们会综合比较两个方法的存在的问题,并选择其中一种较好的应用于我们的网站开发中……
猜你喜欢
- (本章节主要是一些python的基础语法,具体内容不够详细,以pycharm下调试产生的部分代码为主)(python语法的详细内容请参考官方
- 一、前情提要相信来看这篇深造爬虫文章的同学,大部分已经对爬虫有不错的了解了,也在之前已经写过不少爬虫了,但我猜爬取的数据量都较小,因此没有过
- 运算符优先级来确定条件的表达式中的分组。这会影响一个表达式如何计算。某些运算符的优先级高于其他;例如,乘法运算符的优先级比加法运
- MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为N
- 前言:不用改掉系统python2.7 ,原来是python2.7,我们还进行python2.7的保留1.编译前准备其他库的安装(使用sudo
- 本文介绍了Python 堆叠柱状图绘制方法,分享给大家,具体如下:'''''''
- 首先需要安装Win32-ODBC模块,具体的步骤如下:1:从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一
- 本文实例讲述了PHP实现的XXTEA加密解密算法。分享给大家供大家参考,具体如下:<?php/** * Xxtea 加密实现类 */c
- 一、一站式解决 1. 问题分析定位# 找到MySQL的配置文件,复制mysql的数据目录vim /etc/my.cnf# 进入ms
- 破解百度翻译翻译是一件麻烦的事情,如果可以写一个爬虫程序直接爬取百度翻译的翻译结果就好了,可当我打开百度翻译的页面,输入要翻译的词时突然发现
- 安装pip install pyshp引入import shapefile读取sf=shapefile.Reader("{路径名}
- 安装通过 pip 安装 Beautiful Soup 模块:pip install beautifulsoup4 。 还可以使用 PyCha
- 假设我们使用 Angular Universal 开发一个服务器端渲染的 Angular 应用,这个应用会消费一个第三方的 Restful
- 1. sys_getloadavg()sys_getloadavt()可以获得系 统负载情况。该函数返回一个包含三个元素的数组,每个元素分别
- 在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。1、IF()函数的使用IF(expr
- ASP链接MSSQL2005的链接字符串如下:Provider=SQLNCLI;Server=.\SQLEXPRESS;Database=m
- 前言序号算是在展示数据的时候,一种很普遍的属性了,我们可以自己写生成序号的规则,也可以借助第三方。这里我选择后者,使用Element-UI自
- 前言numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。本文讲给大家介绍关
- 1: 更新代码时, 监测到本地代码改变,需要和合并,重启之后才可以, 选择No同时,代码会被冲掉,新增加的文件也会被冲掉, 但是pychar
- 如下所示:import numpy as npZ=np.random.random((5,5))Zmax,Zmin=Z.max(axis=0