春节快乐

大年三十的时候服务器宕了, 虽然这台服务器经常出状况已经成为常态, 但总还是有些 :twisted: . 不过这样倒也清闲过个大年.

现在应该是大年初二了, 给各位拜个年, 希望大家一年都顺顺利利, 恭喜发财啦!

CSS & Radio

先说 css

Ⅰ. em

1. em 参考当前字体大小, 比如当前字体为 12px, 那么 1em 就等于 12px. 默认状态下 1em = 16px, 为了简化换算, 可以在 css 中的 body 元素中声明 font-size = 62.5%, 这样 em 值变为16px * 62.5% = 10px.

2. em 值不固定, 且继承父级元素的大小.

3. 实例: 如果父级元素中声明字体大小为 1.2em, 其子元素就只能用 1em, 如果也使用 1.2em 实际大小就会变成 1.2em * 1.2em = 1.44em, 此 em 非彼 em.

Ⅱ. margin

margin 值不能继承.

margin 的正值可以理解为设置边距为特定大小, 负值可以理解为将接触盒子的边距减去特定大小.

如果两个盒子垂直叠放在一起, 都是正值, 距离是两个值中较大的; 如果一正一负, 距离是两者之差; 如果都是负值, 距离是最大的负值, 负值会让盒子重叠显示.

如果是负的 top 或 left 值会引起盒子向上或向左位置移动,如果是 bottom 或 right 只会影响下面盒子显示的参考线.

以上都是概念上的理解, 具体还是得在实践中慢慢体会.

———————– 分隔线 ———————–

Radio

http://www.radio.com.cn/

http://www.crsa.org.cn/

近期活动

这几天一直都没怎么更新,主要是键盘越来越难使唤了。现在用的这块键盘还是七年前买的,虽然反应越来越差不过暂时还舍不得换。

昨天早上去打蓝球,结果用力过猛,搞的现在全身酸疼大腿肌肉拉伤,这就是放假以来长时间不运动的后果,需要自我反省一下。

再就是学着安装了 Movable Type,顺便把 Fenng 的 template 拿过来盗用了 :mrgreen: MT 看起来很复杂,其实认真阅读一下说明还是很容易安装的。MT 和 WP 各有千秋,这回可以感受一下了。

接下来我想安装 Lilina,看看和 Planet 有什么区别。

CSS 疑问之二(已解决)

最近一直在学习 css, 于是就把首页当成试验场. 接着上回的CSS 疑问之一(已解决), 现在又碰到了两个问题.

Q1. 原先为了使首页的竖列式导航栏在鼠标滑过的时候产生变色按钮的效果

#content a:link, #content a:visited {
      padding: 10px 100px;
      color: #667;
      text-decoration: none;
      outline: none;
}

#content a:hover {
      padding: 10px 100px;
      color: #fff;
      background-color: #667;
}

相应的 html 代码为:

<div id="content">
      <a title="土人自由地 Vayn's Weblog" href="/blog/">Weblog</a><br />
      <a title="土人记事簿" href="http://vayn.soup.io/">Notepad</a><br />
      <a title="土星" href="http://planet.vayn.cn/">Planet</a><br />
      <a title="土书馆" href="http://www.vayn.cn/library/">Library</a><br />
      <a title="土助" href="http://www.vayn.cn/service/">Service</a><br />
      <a title="土人部落" href="/phorum5/">Phorum</a>
</div>

这样, 在 ie6, ie7 和 ff 下显示效果都差不多, 就是代码写的难看了一些 :smile:
我转了一圈,发现没人这样实现按钮效果, 大家似乎用的都是 <li> 标签, 所以我也改用 <li> 替换原来的 <a> 标签

<div id="content">
      <ul>
            <li><a title="土人自由地 Vayn's Weblog" href="/blog/">Weblog</a></li>
            <li><a title="土人记事簿" href="http://vayn.soup.io/">Notepad</a></li>
            <li><a title="土星" href="http://planet.vayn.cn/">Planet</a></li>
            <li><a title="土书馆" href="http://www.vayn.cn/library/">Library</a></li>
            <li><a title="土助" href="http://www.vayn.cn/service/">Service</a></li>
            <li><a title="土人部落" href="/phorum5/">Phorum</a></li>
      </ul>
</div>

css 代码也重新写了一遍:

#content ul {
      margin: 0 auto;
      padding: 0;
      width: 150px;
      list-style-type: none;
}

ul li {
      border: 0 !important;
      border: 1px solid #FFF;
}

#content a {
      display: block;
      color: #667;
      text-decoration: none;
      outline: none;
}

#content a:hover {
      color: #fff;
      background-color: #667;
}

这样就产生了一个问题, 如果我不给 <li> 添加一个 border-width 属性, 在 ie6 下面每个 <li> 好像都会自动添加一个 margin 属性, 导致两个盒子之间产生很大空间.

最后我只能妥协:

ul li {
      border: 0 !important;
      border: 1px solid #FFF;
}

这到底是什么原因造成的呢?

Q2. 换成 <li> 之后, 我给每个 <a> 添加了一个 display: block; 属性, 这时在 ie6 下发生了第二个神奇现象 — 鼠标滑过盒子右侧的时候竟然无任何效果产生 :shock:
但滑过左边的时候没有问题, 也就是说盒子的右边距与链接内容的长度一样了, 盒子莫明其妙缩水. 在 ie7 和 ff 下没有任何问题.

这是怎么回事, 怎样解决这种情况?

==========================================

我很想用搜索引擎找到答案, 不过我不知道这两个问题应该用什么关键词描述 -_-b

如果你知道为什么的话, 请帮忙解答一下. 谢谢.

update:

两个问题都解决了,

Leechael 的帮助下我试了好几种办法, 在这里总结一下:

在做所有工作之前, 先把那个难看的妥协代码删掉

1. 给 li 添加 margin & padding, 并将其设置为 0
失败

2. 将 li 从每行一个改成 <li></li><li></li>
一半成功一半失败吧, 第二个问题没解决

3. 去掉 adisplay:block 添加 padding
貌似解决, 其实是回到了最初的老路, 失败

4. 给 a 添加 widthfloat, 另外将所有 li 写在一行
依然是一半成功一半失败, 第二个问题没解决, 而且需要在最后的 li 之后添加 <br style=”clear: both” />, 否则 contentheight 会自动增加, 并且当鼠标触发最后一个 li 的时候 height 回归正常…
p.s. 我发现在 IE6 下, clear: bothboth: clear 效果一样, 真是神奇啊

5. 给 a 添加 width
成–功–!

原来越简单的方法越有效 :mrgreen:
至于为什么这样可以解决这个问题我到现在还不清楚, 只能说 IE6 是浏览器世界里的九又四分之三站台, 通过它我们可以到达一个神奇的魔法世界…

最后, 特别感谢 Leechael!

在 Dreamhost 执行 Cron Job

在很长一段时间里我都被”如何在 Dreamhost 执行 Cron Job”这个问题困扰, 我曾在 V2EX 问过两回, 然后用 Google 百度查询了 n 遍, 结果是我对用 crontab 命令写 Cron Job 了解了个通通透透, 可就是写不出一条成功的 crontab 命令.

现在我终于搞明白了 :mrgreen:
写 crontab 命令最初还是因为安装了 planet 程序, 因为这个 rss 聚合程序每次更新都要执行一次更新命令, 但我不可能天天上一回网去执行命令, 所以我急需一个类似于原先 Windows 里面那个”计划任务”一样的工具. 本着”知之为知之, 不知为 Google”的精神, 我自己找到了一条在 linux 下自动执行计划的命令 — crontab.

在 DH 里执行计划任务的方法有两个, 一个是通过 panel 在后台写, 另一个是用 ssh 链接服务器, 执行 crontab -e 命令(DH 用的 nano 编辑器让我又琢磨了一阵). 写 crontab 要注意的是执行的命令必须写在一行, 除非你用的是第一个方法. 我发现即使在 DH 的 panel 里把命令写成两行, 比如

cd turen007.com
/usr/bin/python2.4 planet.py gengxin/config.ini

用 ssh 在 nano 里看到的命令还是一行:

cd turen007.com \012/usr/bin/python2.4 planet.py gengxin/config.ini

换行符被 \012 代替了, 这是我原先不知道的地方, 可能正是缺少这个 \012 导致我之前的 crontab 命令始终无法执行.

不知道我的想法对不对, 请各位大侠不吝赐教 :mrgreen:
update: 原来换行键需要转义~

星球进化

Planet 是一个非常好的 RSS 聚合程序, 无论是安装还是使用都很方便. 只要你的空间支持 Python 和 SSH, 你也可以自己安装一个.

我白天跑到超市去大采购, 在超市里看到一个大大的地球仪, 突然就想起自己那个简陋的土星 :grin:
虽然累得够呛, 不过回来后还是花了几个小时装修土星, 成功把 Planet Ubuntu 的风格移植过来了.

现在土星正式进化到 2.0 版 :mrgreen:

CSS 疑问之一(已解决)

把 blog 放入二级目录后,我重新放了一个首页。虽然是个人网站,但有个索引自己用起来也方便。不过在实际应用中我发现了几个很奇怪的问题。

如果我没有在 footer 里放置网站统计 js 代码的话,在 FF2,IE6 和 IE7 里 footer 都会与文字的上下端有一定的空间,但如果我插入了网站统计代码,在 IE6 下 footer 会变得很窄,但 FF2 和 IE6 却没任何问题,除非我设置了 height,不知道这是何故。

第二,如果想定义一个层左右居中的话可以使用 margin: 0 auto; ,但如果想让这个层垂直居中的话使用 margin: auto 0; 却不可以。不知道怎样才能使层垂直居中呢,我现在只能设置一个 padding 来控制层与顶部的距离。

另外,outline: none; 对 IE 没用。

第一个问题我 google 了一圈也没发现答案,后两个问题也是没找到一个较好的解决方案,如果哪位知道请指点一下。 :smile:

update: fcicq 的 这篇文章 解释了第一个问题

update 2: charlee 的 利用CSS使Div水平垂直居中 是一个不错的方案
另附 margin 属性的相关知识: 由浅入深漫谈margin属性

至于 outline: none 在 IE 下无效的问题还是用 hidefocus="true" 解决吧