默认的Rebol VID风格让人眼前一亮。我开始制作自己的默认设置,但遇到了障碍。即,如何为元素的子元素指定样式?
good-looking: stylize [
field: field
edge [size: 1x1]
colors [255.255.255 255.255.255]
area: area
edge [size: 1x1]
colors [255.255.255 255.255.255]
text-list: text-list
;text-list/sub-area/edge [size: 1x1]
]
我希望所有字段都有一个细边框,包括文本列表和其他字段。但我不知道如何在文本列表定义中包含该规则。
另外,如何减少样式的重复,比如颜色?
答案 0 :(得分:1)
我可以部分回答你的第一个问题。在REBOL控制台上,试试这个......
>> lo: layout [t: text-list]
这两者都创建了一个布局,并允许使用PROBE ...
检查文本列表对象(t)>> probe first t == [self type offset size span pane text color image effect data edge font para feel saved-area rate show? options parent-face old-offset old-size line-list changes face-flags action state access style alt-action facets related words colors texts images file var keycode reset styles init multi blinker pane-size dirty? help user-data flags doc xy sz iter sub-area sld sn lc picked cnt act slf lines text-pane update resize]
注意那里的SUB-AREA。这是文本列表中的列表区域。探究这一点,你得到......
>> probe first t/sub-area/edge == [self color image effect size] >> probe first t/sub-area/edge/size == 2
所以,在那里改变SIZE并查看我们制作的布局......
>> t/sub-area/edge/size: 1x1 == 1x1 >> view lo
文本列表的边缘现在应该很薄。我不确定你是如何使用风格实现的,但希望这会让你走上正确的轨道。
答案 1 :(得分:0)
所以,首先:
layout [X: field]
type? X/edge
type? X/colors
应该重新制作对象以避免对共享对象产生意外的副作用。
good-looking: stylize [
field: field with [
edge: make edge [size: 1x1]
colors: copy [255.255.255 255.255.255]
]
area: area with [
edge: make edge [size: 1x1]
colors: copy [255.255.255 255.255.255]
]
text-list: text-list with [
sub-area: make sub-area [
edge: make edge [size: 1x1]
]
]
]