CSS Sucks

事情起源于我最近对http://zsw.njtu.edu.cn的设计开发,在整个开发过程中,css和html就像是一场灾难和噩梦,我花在他们上的时间远比花在具体逻辑上的时间长。同时我也一直在思考,是否会有一种更好的办法来中和我们与浏览器之间不可调和的矛盾?
如果真有,那真是一种福音了。

下面的一些是我和 jjgod 之间的一些对话,权当备忘.

jjgod 00:16:32
虽然有一些通用的规则,但特例还是比较多的。
jjgod 00:16:55
某些属性适合继承,某些不适合,都是依情况而定的。
叶雨飞超幸福 00:17:06
汗。。。
jjgod 00:17:31
最好找本书看。
jjgod 00:17:38
比如 CSS 权威指南。
叶雨飞超幸福 00:17:56
css我感觉不够优美,不够简洁,没办法分离数据和表现,也没有编程能力,有点厌烦了
jjgod 00:18:08
css 就是表现阿..
jjgod 00:18:14
xml 是数据
jjgod 00:18:18
xhtml 是结构
jjgod 00:18:28
stylesheet 也不是编程
jjgod 00:18:34
曾经有过有编程能力的
jjgod 00:18:37
但被淘汰了
jjgod 00:18:49
netscape 搞过 javascript 的 stylesheet
叶雨飞超幸福 00:19:17
css现在净是些hack,技巧之类的,调起来非常让人疲倦
jjgod 00:19:55
en.. 如果你只考虑 standard-complaint 的 browser
jjgod 00:19:58
还是很简洁的
叶雨飞超幸福 00:20:01
比如说页面居中,我就被迫
body
{
positio:absoulte;
left:50%;
margin-left:-380px;
}
jjgod 00:20:39
不是这样的..
jjgod 00:20:51
有很多方法..
叶雨飞超幸福 00:20:54
margin-left:auto;
margin-right:auto;
jjgod 00:21:13
怎么说呢。
jjgod 00:21:29
现在我也没见过更好的表达方法,有同等的表达能力。
叶雨飞超幸福 00:21:40
要实现页面结构的变化,定位还得用absoulte
叶雨飞超幸福 00:22:20
你用过java的form layout没有
jjgod 00:22:21
layout 有许多方法..
jjgod 00:22:30
可以参考 positioniseverything.net
叶雨飞超幸福 00:22:35
我倒是感觉这样来的简单明了
jjgod 00:22:37
I HATE swing
jjgod 00:23:14
The best GUI Toolkit is Windows Forms
叶雨飞超幸福 00:23:28
不过layout这个思想在很多rad开发工具中都有体现
jjgod 00:23:56
that’s not the CSS philosophy
叶雨飞超幸福 00:25:00
那你给我举几个具体的例子,一个“好”的网站应该怎么排版
jjgod 00:25:18
www.csszengarden.com
叶雨飞超幸福 00:27:25
这个网站用ie看,不能正常地用鼠标选择文字
jjgod 00:27:37
IE sucks
叶雨飞超幸福 00:28:03
你没办法忽视ie,因为ie是受众中最大的一部分
jjgod 00:28:03
但这种问题是很常见的..
叶雨飞超幸福 00:28:29
我一般都是先在ie里面调,然后尽量满足其他的浏览器
jjgod 00:28:55
恩.. 应该是先在别的浏览器里调,最后作 ie hack
叶雨飞超幸福 00:29:14
…..
jjgod 00:29:53
不然 IE 7 一出你就傻眼了..
叶雨飞超幸福 00:30:05

叶雨飞超幸福 00:30:24
IE 7 也不见得会有多大改变
叶雨飞超幸福 00:31:08
现在好多人还在用ie 5.5,你是迎合ie 7,还是迎合ie 5.5?
jjgod 00:31:45
如果你的用户真的都还在用 ie 5.5,那就真的不用考虑什么 web standards 了…
jjgod 00:31:57
back to happy 1998..
叶雨飞超幸福 00:32:55
所以css 2还是一个 个人的,实验性质的 东西
jjgod 00:33:36
#!$#%@$
叶雨飞超幸福 00:33:57
而且我不喜欢他的设计理念
叶雨飞超幸福 00:34:02
也没有好的IDE
jjgod 00:34:30
你完全可以不用…
jjgod 00:34:39
如果能找到更好的。
叶雨飞超幸福 00:35:18
是阿,有种被强迫的意味,css现在变成了一个不确定的,无法控制的东西
jjgod 00:35:54
你得先学过才能评价。
jjgod 00:36:01
一知半解是不行的。
叶雨飞超幸福 00:37:49
我每天都在查css大全,对着那些莫名其妙的问题copy & paste,有时是因为继承性,有时说不上什么原因,有时甚至调换一下各个属性的位置就能解决问题
叶雨飞超幸福 00:38:48
而且最后的css文件很长很大难于维护,以至于我不得不把它们分成几个文件来维护
jjgod 00:38:50
什么叫 css 大权
叶雨飞超幸福 00:40:08
http://www.51windows.net/pages/css2/dir.htm
jjgod 00:40:51
那个阿..
jjgod 00:40:57
那个东西就是给 IE 写的
jjgod 00:41:01
很烂的..
叶雨飞超幸福 00:41:16
可是他可以解决问题。
jjgod 00:41:42
:) 还是那句话,如果你觉得什么方式好,就用什么方式,不要拘泥于形式。
叶雨飞超幸福 00:41:57
以前我对firefox还充满信心,可是后来看了一个网站,发现firefox也并没有走在标准的前沿
jjgod 00:43:24
恩,as a programmer,应该考虑得更理性一点。
jjgod 00:43:33
写一个 render engine 不是那么简单的事情。
叶雨飞超幸福 00:43:45
http://www.webstandards.org/files/acid2/test.html
叶雨飞超幸福 00:44:01
貌似opera 9 刚 pass 了
jjgod 00:44:40
Acid2 is not the only judgement on browser capabilities.
jjgod 00:45:26
many things Gecko supports, for example, <canvas>, SVG, MathML is NOT required, but really useful.
叶雨飞超幸福 00:48:43
我觉得其实css应该作的更多
叶雨飞超幸福 00:48:53
有更多意义上的设计重用
jjgod 00:49:26
different people has different requirements
jjgod 00:49:43
blind people will care more about screen reader than you do
jjgod 00:50:18
so it’s hard to balance all the reqs..
叶雨飞 00:50:19
只靠一个css来划分blind和非blind需求是不合适的
jjgod 00:51:04
and like I just said, render engine is a technology almost as difficult as operating system and compilers.
叶雨飞 00:52:04
目前还有一个问题,就是css并不是自适应的,所以造成了很多的重复编码.

, ,

撰写评论 消灭零回复

Virtual Hosting - 虚拟主机

在 apache2中,你可以轻易的配置 virtual host, 通过域名绑定,你能将一台服务器变成多个网站的服务器,各个网站共享一个apache服务,互不影响,甚至log都可以分别写,是不是很爽呢?
我们来看看实现办法吧!
在 /etc/apache2/sites-aviable/ 中添加一个文件
内容如下

NameVirtualHost *

ServerAdmin webmaster@kync.com
DocumentRoot /var/www/website/teddy
ServerName teddy.kync.com

Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
CustomLog /var/log/apache2/access.teddy.log combined

第一行是指明所有包括*的域名都是虚拟主机,当然你也可以改拉,比如改成 *.edu就把所有的.edu全都变为虚拟主机对待。
下面的一个*是端口号,表示对所有端口都为该虚拟主机,比较重要的是ServerName 他指出了你绑定的域名,当域名对应时,就返回该目录下的内容。
你配置了多个虚拟主机以后,可以用 apache2 -S来查看配置,默认情况下,第一个虚拟主机就是默认主机,所有未能匹配的域名都将匹配该虚拟主机!

撰写评论 消灭零回复