smalltalk适用于什么开发
Pharo 3.0 发布,此版本是个重大版本更新,值得关注的特性如下:The new modular Opal compiler is now the default compiler used in the system.The Athens vector graphics canvas is now integrated and it supports Cairo rendering on all platforms.Many tools have been rewritten using Spec, a new framework for building user interfaces.Versionner and Kommiter are two of the new development tools.RPackage, a new package mechanism got enhanced with tags and is fully integrated in the system.The debugger model was rewritten to become modular, the inspector received a bump to support multiple views, and the Nautilus code browser supports tags, search and lot more improvements.Morphic has seen many cleanings and improvements and the visual theme has been revamped.此版本关闭了 2364 个 issues(相对于 Pharo 2 是 1727 个 issues),更多内容请看 ChangeLogs 3.0。
什么是css
CSS之入门篇——推荐新手 关于CSS样式表 一.在学习css之前你应该掌握哪些基础知识 1.什么是网页,什么是超文本语言(html)。 2.会使用Dreamweaver等常用的网页编辑器。 Dreamweaver是现今最好的网站编辑工具之一,而Dreamweaver8增加的对CSS的支持更是你容易得来使用CSS,用它来给制作网页的CSS样式表会更简单、更方便。本教程教你如何利用Dreamweaver8在页面中加入CSS,你不用死记硬背的记代码标记,也不用去看很厚的CSS手册,你就可以轻松自如的在网页中运用CSS。不过首先你要对CSS有一定的了解。因此,本教程的前面4章为CSS理论知识,主要是对CSS的全面介绍,希望读者看后对CSS的语法、结构、应用有一个全面的了解;后面4章为DW实战,主要是教你如何利用Dreamweaver8灵活运用CSS在网页中。阅读此文前,你需要对HTML有一定的了解,并会使用Dreamweaver。 二.认识CSS CSS就是Cascading Style Sheets,中文翻译为“层叠样式表”,简称样式表,它是一种制作网页的新技术。 网页设计最初是用HTML标记来定义页面文档及格式,例如标题《h1》、段落《p》、表格《table》、链接《a》等,但这些标记不能满足更多的文档样式需求,为了解决这个问题,在1997年W3C(The World Wide Web Consortium)颁布HTML4标准的同时也公布了有关样式表的第一个标准CSS1, 自CSS1的版本之后,又在1998年5月发布了CSS2版本,样式表得到了更多的充实。W3C把DHTML(Dynamic HTML)分为三个部分来实现:脚本语言(包括JavaScript、Vbscript等)、支持动态效果的浏览器(包括Internet Explorer、Netscape Navigator等)和CSS样式表。 注意:CSS需要IE4(Internet Explorer 4.0)和NC4(Netscape 4.0)以上的浏览器支持,有些效果需要更高版本的浏览器支持。 三.怎样使用CSS 如果你使用的是Dreamweaver MX 2004以上的版本,在定义文字字体、颜色、大小等属性的时候,查看一下代码你会发现有这样的一部分在head区域: 《style type=“text/css“》 《!-- .STYLE2 { font-size: 16pt; font-family: “Courier New“, Courier, monospace; font-weight: bold; color: #FF3300; } --》 《/style》 那么恭喜你,你已经使用了CSS设计网页。 那么除了这种调用CSS的方法外,还有别的吗?回答是“当然有了”,下面是系统介绍 标记加注法(in-line): 如果只有一个HTML标记需要设定样式,则可在该标记内,加上属性 style=“ “ 以个别修订样式。 页面内嵌法: 《style type=“text/css“》 《!-- body { background : white ; color : black ; } --》 《/style》 外部调用法: 《link rel=“stylesheet“ rev=“stylesheet“ href=“css/style.css“ type=“text/css“ media=“all“ /》 《link rel=“stylesheet“ rev=“stylesheet“ href=“css/style.css“ type=“text/css“ media=“all“ /》 双表法调用样式表: 《link rel=“stylesheet“ rev=“stylesheet“ href=“css/style.css“ type=“text/css“ media=“all“ /》 《style type=“text/css“ media=“all“》@import url( css/style01.css );《/style》 1. 基本语法 CSS的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)。 基本格式如下: selector {property: value} (选择符 {属性:值}) 选择符是可以是多种形式,一般是你要定义样式的HTML标记,例如BODY、P、TABLE……,你可以通过此方法定义它的属性和值,属性和值要用冒号隔开: body {color: black} 选择符body是指页面主体部分,color是控制文字颜色的属性,black是颜色的值,此例的效果是使页面中的文字为黑色。 如果属性的值是多个单词组成,必须在值上加引号,比如字体的名称经常是几个单词的组合: p {font-family: “sans serif“} (定义段落字体为sans serif) 如果需要对一个选择符指定多个属性时,我们使用分号将所有的属性和值分开: p {text-align: center; color: red} (段落居中排列;并且段落中的文字为红色) 为了使你定义的样式表方便阅读,你可以采用分行的书写格式: p { text-align: center; color: black; font-family: arial } (段落排列居中,段落中文字为黑色,字体是arial) 2. 选择符组 你可以把相同属性和值的选择符组合起来书写,用逗号将选择符分开,这样可以减少样式重复定义: h1, h2, h3, h4, h5, h6 { color: green } (这个组里包括所有的标题元素,每个标题元素的文字都为绿色) p, table{ font-size: 9pt } (段落和表格里的文字尺寸为9号字) 效果完全等效于: p { font-size: 9pt } table { font-size: 9pt } 3. 类选择符 用类选择符你能够把相同的元素分类定义不同的样式,定义类选择符时,在自定类的名称前面加一个点号。假如你想要两个不同的段落,一个段落向右对齐,一个段落居中,你可以先定义两个类: p.right {text-align: right} p.center {text-align: center} 然后用不在不同的段落里,只要在HTML标记里加入你定义的class参数: 《p class=“right“》 这个段落向右对齐的 《/p》 《p class=“center“》 这个段落是居中排列的 《/p》 《p class=“right“》 这个段落向右对齐的 《/p》 《p class=“center“》 这个段落是居中排列的 《/p》 注意:类的名称可以是任意英文单词或以英文开头与数字的组合,一般以其功能和效果简要命名。 类选择符还有一种用法,在选择符中省略HTML标记名,这样可以把几个不同的元素定义成相同的样式: .center {text-align: center} (定义.center的类选择符为文字居中排列) 这样的类可以被应用到任何元素上。下面我们使h1元素(标题1)和p元素(段落)都归为“center”类,这使两个元素的样式都跟随“.center”这个类选择符: 《h1 class=“center“》 这个标题是居中排列的 《/h1》 《p class=“center“》 这个段落也是居中排列的 《/p》 注意:这种省略HTML标记的类选择符是我们经后最常用的CSS方法,使用这种方法,我们可以很方便的在任意元素上套用预先定义好的类样式。 4. ID选择符 在HTML页面中ID参数指定了某个单一元素,ID选择符是用来对这个单一元素定义单独的样式。 ID选择符的应用和类选择符类似,只要把CLASS换成ID即可。将上例中类用ID替代: 《p id=“intro“》 这个段落向右对齐 《/p》 定义ID选择符要在ID名称前加上一个“#”号。和类选择符相同,定义ID选择符的属性也有两种方法。下面这个例子,ID属性将匹配所有id=“intro“的元素: #intro { font-size:110%; font-weight:bold; color:#0000ff; background-color:transparent } (字体尺寸为默认尺寸的110%;粗体;蓝色;背景颜色透明) 下面这个例子,ID属性只匹配id=“intro“的段落元素: p#intro { font-size:110%; font-weight:bold; color:#0000ff; background-color:transparent } 注意:ID选择符局限性很大,只能单独定义某个元素的样式,一般只在特殊情况下使用。 5. 包含选择符 可以单独对某种元素包含关系定义的样式表,元素1里包含元素2,这种方式只对在元素1里的元素2定义,对单独的元素1或元素2无定义,例如: table a { font-size: 12px } 在表格内的链接改变了样式,文字大小为12象素,而表格外的链接的文字仍为默认大小。 6. 样式表的层叠性 层叠性就是继承性,样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上,所有在元素中嵌套的元素都会继承外层元素指定的属性值,有时会把很多层嵌套的样式叠加在一起,除非另外更改。例如在DIV标记中嵌套P标记: div { color: red; font-size:9pt} …… 《div》 《p》 这个段落的文字为红色9号字 《/p》 《/div》 (P元素里的内容会继承DIV定义的属性) 注意:有些情况下内部选择符不继承周围选择符的值,但理论上这些都是特殊的。例如,上边界属性值是不会继承的,直觉上,一个段落不会同文档BODY一样的上边界值。 另外,当样式表继承遇到冲突时,总是以最后定义的样式为准。如果上例中定义了P的颜色: div { color: red; font-size:9pt} p {color: blue} …… 《div》 《p》 这个段落的文字为蓝色9号字 《/p》 《/div》 我们可以看到段落里的文字大小为9号字是继承div属性的,而color属性则依照最后定义的。 不同的选择符定义相同的元素时,要考虑到不同的选择符之间的优先级。ID选择符,类选择符和HTML标记选择符,因为ID选择符是最后加上元素上的,所以优先级最高,其次是类选择符。如果想超越这三者之间的关系,可以用!important提升样式表的优先权,例如: p { color: #FF0000!important } .blue { color: #0000FF} #id1 { color: #FFFF00} 我们同时对页面中的一个段落加上这三种样式,它最后会依照被!important申明的HTML标记选择符样式为红色文字。如果去掉!important,则依照优先权最高的ID选择符为黄色文字。 7. 注释 你可以在CSS中插入注释来说明你代码的意思,注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中,注释是不显示的。CSS注释以“/*“ 开头,以“*/“ 结尾,如下: /* 定义段落样式表 */ p { text-align: center; /* 文本居中排列 */ color: black; /* 文字为黑色 */ font-family: arial /* 字体为arial */ } /* 定义段落样式表 */ p { text-align: center; /* 文本居中排列 */ color: black; /* 文字为黑色 */ font-family: arial /* 字体为arial */ } 前面我们了解了CSS的语法,但要想在浏览器中显示出效果,就要让浏览器识别并调用。当浏览器读取样式表时,要依照文本格式来读,这里介绍四种在页面中插入样式表的方法:[u]链入外部样式表[/u]、[u]内部样式表[/u]、[u]导入外表样式表[/u]和[u]内嵌样式[/u]。 1. 链入外部样式表 链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用《link》标记链接到这个样式表文件,这个《link》标记必须放到页面的《head》区内,如下: 《head》 …… 《link href=“mystyle.css“ rel=“stylesheet“ type=“text/css“ media=“all“》 …… 《/head》 上面这个例子表示浏览器从mystyle.css文件中以文档格式读出定义的样式表。rel=”stylesheet”是指在页面中使用这个外部的样式表。type=”text/css”是指文件的类型是样式表文本。href=”mystyle.css”是文件所在的位置。media是选择媒体类型,这些媒体包括:屏幕,纸张,语音合成设备,盲文阅读设备等。 一个外部样式表文件可以应用于多个页面。当你改变这个样式表文件时,所有页面的样式都随之而改变。在制作大量相同样式页面的网站时,非常有用,不仅减少了重复的工作量,而且有利于以后的修改、编辑,浏览时也减少了重复下载代码。 样式表文件可以用任何文本编辑器(例如:记事本)打开并编辑,一般样式表文件扩展名为.css。内容是定义的样式表,不包含HTML标记,mystyle.css这个文件的内容如下: hr {color: sienna} p {margin-left: 20px} body {background-image: url(“images/back40.gif“)} /*定义水平线的颜色为土黄;段落左边的空白边距为20象素;页面的背景图片为images目录下的back40.gif文件*/ 2. 内部样式表 内部样式表是把样式表放到页面的《head》区里,这些定义的样式就应用到页面中了,样式表是用《style》标记插入的,从下例中可以看出《style》标记的用法: 《head》 …… 《style type=“text/css“》
sendmail 无法发送邮件怎么解决
如果你没有安装Berkeley db(8)库软件包,或不知是否拥有;你就需要在Makefile文件中去除对它的支持。编辑你的Makefile文件,查找以DBMDEF开始的行: DBMDEF= -DNDBM –DNEWDB –DINS ?这一行 删除这个部分 删除字符串“-DNEWDB”这个部分后,修改完成后,结果如下所示: DBMDEF= -DNDBM –DNIS ?删除以后 接着查找以LIBS开始的行: LIBS= -ldb -ldbm -lresolv?这一行(不完全准确) 删除这个部分 删除这行的字符串“-ldb”这个部分,修改完成后,结果如下所示: LIBS= -ldbm -lresolv ?删除以后 这样就完成了从你的Makefile中删除对Berkeley db的支持。 如果你的系统支持Berkeley db的话,则你还需要给Makefile一些消息。必须指定正确的头文件和库函数的路径,以便将其包含到sendmail中去。查找以INCDIRS开始的行: INCDIRS=-I/usr/sww/include ?这一行 # loader options LDOPTS= -Bstatic # Library directories LIBDIRS=-L/usr/sww/lib ?还有这一行 你需要将这两行中的路径名改为Berkeley db的库所在路径。如果你无法确定,最好去除对Berkeley db的支持。 INCDIRS=-I/usr/local/include/db ?新的 # loader options LDOPTS= -Bstatic # Library directories LIBDIRS=-L/usr/local/lib ?新的 上面这个修改的例子,是基于Berkeley db的头文件在/usr/local/include/db,库文件在/usr/local/lib目录下所做的,可供参考。