日期垂直排列的两种技巧
作者:dishuipiaoxiang 来源:Denis'Blog 发布时间:2009-08-28 12:38:00
标签:css,日期,垂直,技巧
LearningjQuery.com 博客帖子列表的左边有一个很酷的日期,如图:
从图中我们看到,“2009”垂直排列在右侧。用Firebug查看元素,文本“2009”出现在html结构之中,本文介绍实现这种效果的两种方法。
一、利用Sprite技术来实现
其实现过程已有Chris Coyier 在《Date Display Technique with Sprites》一文中作了详细介绍,这里把其实现过程作一个简单的描述。很显然,我们不希望每一个日期用一张单独的图片,因此,将其整合到一张图片之上,安排年、月、日在图片的不同区域,如图:
1、Html
页面中html结构如下:
<div class="postdate">
<div class="month m-06">Jun</div>
<div class="day d-30">30</div>
<div class="year y-2009">2009</div>
</div>
.postdate容器包含三个区域,分别对应年月日,这样很好的保证了语义上的完整性。
在类似wordpress这样的CMS系统中,其后端代码是这样的:
<div class="postdate">
<div class="month m-<?php the_time('m') ?>"><?php the_time('M') ?></div>
<div class="day d-<?php the_time('d') ?>"><?php the_time('d') ?></div>
<div class="year y-<?php the_time('Y') ?>"><?php the_time('Y') ?></div>
</div>
2、Css
css是sprite真正发挥作用的地方,利用html中的定义的class属性,让对应的图片得以显示。
首先,让class属性为.postdate的容器相对定位,这样包含其中的三个区域就会绝对定位,并使用同一张背景图片。设置各自的宽度和高度,并将文字移出以显示背景图片。
然后,定义每个月(12)、每天(31)、每年(按10年计)具体的背景位置,以显示与其相对应的图片。
.postdate {
position: relative;
width: 50px;
height: 50px;
float: left;
}
.month, .day, .year {
position: absolute;
text-indent: -1000em;
background-image: url(/wp-content/themes/ljq/images/dates.png);
background-repeat: no-repeat;
}
.month { top: 2px; left: 0; width: 32px; height: 24px;}
.day { top: 25px; left: 0; width: 32px; height: 25px;}
.year { bottom: 0; right: 0; width: 17px; height: 48px;}
.m-01 { background-position: 0 4px;}
.m-02 { background-position: 0 -28px;}
.m-03 { background-position: 0 -57px;}
... more like this ...
.d-01 { background-position: -50px 0;}
.d-02 { background-position: -50px -31px;}
.d-03 { background-position: -50px -62px;}
... more like this ...
.y-2006 { background-position: -150px 0;}
.y-2007 { background-position: -150px -50px;}
.y-2008 { background-position: -150px -100px;}
... more like this ...


猜你喜欢
- 我们使用 python setup.py install 来安装python包,但是如何卸载呢?只能手动删除安装的文件可以使用如下命令pyt
- 摘要: 前端框架 Bootstrap 的模态对话框,可以使用 remote 选项指定一个 URL,这样对话框在第一次弹出的时候就会自动从这个
- 本文实例讲述了python自定义类并使用的方法。分享给大家供大家参考。具体如下:class Person: def __init
- 顺序表python版的实现(部分功能未实现)结果展示:代码示例:#!/usr/bin/env python# -*- coding:utf-
- 前端Vue 8080端口,后端Node.js 8085端口 主要记录下前后端不同端口遇到的问题1、写服务器端程序,我的在(node_prox
- 前言之前看到 RunCat 一只可以在电脑上奔跑猫,其主要的功能是监控电脑的CPU、内存的使用情况,使用越多跑的越快。所以准备做一只在任务栏
- shutil --High-level file operations 高级的文件操作模块os模块提供了对目录或者文件的新建/删除/查看文件
- 利用问题的普遍性和特殊性来求解,代码如下:import unittestfrom datetime import datetimeclass
- 一、需求:有三张表,学生表、成绩表和课程表,我们可以通过连表查询出学生姓名、课程及对应的成绩: 所需表sql-- -------------
- 一般写ASP PHP代码的朋友都估计是采用直接操作SQL的吧~ 看以下的代码 <% dim conn,rs&nbs
- tornado中的协程是如何工作的协程定义Coroutines are computer program components that g
- 前言最近在使用Pycharm,在运行或者安装的过程中出现了各种各样的报错,前面已经介绍过安装pygame出现报错的解决方法。文章总结了大部分
- 在Python编程中,导入文本文件是常见的操作之一。Python提供了丰富的标准库,使得文件操作变得十分简单。那么,如何在Python中导入
- python五子棋原创算法,供大家参考,具体内容如下我们都见过五子棋,但是在我看来五子棋单机游戏中,逻辑赢法很重要,经常用到的算法是五子连珠
- PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”Efficient Paginat
- cupy我觉得可以理解为cuda for numpy,安装方式pip install cupy,假设import numpy as npim
- 测试函数主要是用来评估优化算法特性的,这里我用python3绘制了部分测试函数的图像。具体的测试函数可以结合 * 来了解。想要显示某个测试
- 脚本要实现的功能:输入instance id1:将所有的volume take snapshot2: 获取public ip 并
- 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table
- 随着互联网的快速发展和数据交换的广泛应用,各种数据格式的处理成为软件开发中的关键问题。JSON 作为一种通用的数据交换格式,在各种应用场景中