WebObjects/Web 应用程序/开发/CSS
外观
CSS 代表层叠样式表。它提供了一种机制,将 HTML 页面的演示文稿与 HTML 页面的逻辑结构和内容分离。
将 CSS 包含在 WebObject 应用程序中的最简单方法是在 <head> 标签中放置一个样式块
<style type="text/css">
table {
border-style: solid;
border-color: black;
border-width: 1px;
}
</style>
在 WebObjects 应用程序中使用 CSS 的另一种简单方法是使用以下方法包含对它的静态引用:
<link rel = "stylesheet" type = "text/css" href = "/webserver/relative/path/to/mystyles.css">
但是,如果您是 WO 开发人员,您就会知道静态资源引用感觉很脏。别担心,还有其他选择。
Project WOnder 提供 ERXStyleSheet,这是一个无状态组件,具有可以为您生成链接标签的模板。
以下动态元素可用于在页面中包含样式表。它支持与 WOImage 相似的绑定“rel”、“type”、“href”、“src”等。
import com.webobjects.appserver.WOElement;
import com.webobjects.appserver._private.WOConstantValueAssociation;
import com.webobjects.appserver._private.WOHTMLURLValuedElement;
import com.webobjects.foundation.NSDictionary;
public class MDTStyleSheet extends WOHTMLURLValuedElement {
public MDTStyleSheet(String _name, NSDictionary _assocationsDictionary, WOElement _template) {
super("link", _assocationsDictionary, _template);
if (_associations.objectForKey("rel") == null) {
_associations.setObjectForKey(new WOConstantValueAssociation("stylesheet"), "rel");
}
if (_associations.objectForKey("type") == null) {
_associations.setObjectForKey(new WOConstantValueAssociation("text/css"), "type");
}
}
protected String urlAttributeName() {
return "href";
}
}
以下是一个关于如何在运行时定义样式表属性的简单示例
只需创建一个包含样式表属性的组件
<style type = "text/css">
a { color: <webobject name = "LinkColor"></webobject>; text-decoration:none; }
a:hover { color: #ff9933; }
a:visited { color: <webobject name = "LinkColor"></webobject>; }
a:visited:hover { color: #ff9933; }
body { margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; background-color:#FFFFFF; text-align:left; }
input { font: 100% Verdana, Arial, san-serif; }
.Title { font: <webobject name = "TextFont"></webobject>; }
.Label { font: <webobject name = "LabelFont"></webobject>; }
.WhiteLabel { font: <webobject name = "LabelFont"></webobject>; color:#666666; }
.Text { font: <webobject name = "TextFont"></webobject>; }
.MonoText { font: <webobject name = "MessageFont"></webobject>; }
.Quote { font: <webobject name = "MessageFont"></webobject>; font-style: italic; margin-left: 20px; }
.Line { height:1px; background-image:url(<webobject name = "LineUrl"></webobject>); }
.Space { height:8px; }
.Highlight { background-color:#cccccc; }
.DarkHeader { background-image:url(<webobject name = "DarkHeaderUrl"></webobject>); }
.Header { background-image:url(<webobject name = "HeaderUrl"></webobject>); }
.Margin { width: 40px; vertical-align:top; }
.Full { width: 100%; height: 100%; text-align:left; vertical-align:top; }
.FullWidth { width: 100%; text-align:left; vertical-align:top; }
.FillerWidth { width: 99%; text-align:left; vertical-align:top; }
.FillerHeight { height: 99%; }
.HalfWidth { width: 49%; text-align:left; vertical-align:top; }
.OneThirdWidth { width: 33%; text-align:left; vertical-align:top; }
.TwoThirdWidth { width: 66%; text-align:left; vertical-align:top; }
.FixColumn { width: 250px; text-align:left; vertical-align:top; }
.AltMargin { width: 40px; text-align:left; vertical-align:top; background-image:url(<webobject name = "AltUrl"></webobject>); background-position: center center; background-repeat: no-repeat; }
</style>
并使用一些 wod 作为参数
LinkColor: WOString{
value = linkColor;
};
LineUrl: WOString{
value = lineUrl;
};
DarkHeaderUrl: WOString{
value = darkHeaderUrl;
};
HeaderUrl: WOString{
value = headerUrl;
};
AltUrl: WOString{
value = altUrl;
};
LabelFont: WOString{
value = labelFont;
};
TextFont: WOString{
value = textFont;
};
MessageFont: WOString{
value = messageFont;
};