如何说服listcell中的图标大小为16x16

时间:2017-01-15 16:36:27

标签: css firefox firefox-addon xul palemoon

我正在尝试清理旧的(ish)firefox扩展程序。它创建了一个网站列表及其图标。它会将列表显示为弹出菜单或列表,具体取决于您的要求。

我无法正确显示图标(这是该扩展程序长期存在的问题)。在菜单上,在进行选择之前不会显示任何图标。然后它显示图标,但是有一个页面,其中favicon是256x256,看起来非常糟糕。同样在列表视图中。

据我所知,菜单都是用menuitem-iconic和listcell-iconic / listitem-iconic构建的,但即使我在扩展名css中添加了menuitem-iconic覆盖(这会影响所有其他菜单图标很好),我无法让它得到认可。

如果你把它放到xul explorer中,你就会明白我的意思

sqrt

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

我不知道会发生什么事情。列表项的最大高度工作正常,导致相关行上的图标很宽但非常短,但我希望它只是16x16。

菜单没有这样的限制,并以完整的256x256像素亮度显示所选图像。

1 个答案:

答案 0 :(得分:2)

您可以通过添加CSS来设置显示图像的width元素的height<image>的样式。 <image><listcell class="listitem-iconic">的XBL的一部分,<listitem class="listitem-iconic">隐式创建了image.menulist-icon。您可以通过查看XBL the element或使用DOM Inspector并显示匿名内容来查看每个明确包含元素的元素。

您可以为显示的menulist图标设置<?xml-stylesheet type="text/css" href="data:text/css, image.listcell-icon, image.menulist-icon { width: 16px; height: 16px; }" ?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <listbox> <!-- listbox showing large icon --> <listitem label="Widdershins" class="listitem-iconic" image="http://www.widdershinscomic.com/favicon.ico" style="max-height: 18px;" /> <listitem label="Darken" class="listitem-iconic" image="http://darkencomic.com/wp-content/themes/inkblot/includes/images/icon.png" style="max-height: 18px;" /> </listbox> <!-- menu shows no icons at all but when you select 'darken' then you get a huge icon --> <menulist label="label" accesskey="{accesskey}"> <menupopup> <menuitem label="Widdershins" class="menuitem-iconic" image="http://www.widdershinscomic.com/favicon.ico" style="max-height: 18px;" /> <menuitem label="Darken" class="menuitem-iconic" image="http://darkencomic.com/wp-content/themes/inkblot/includes/images/icon.png" style="max-height: 18px;" /> </menupopup> </menulist> </window> 样式。

由于没有单独的CSS文件,您的问题有点复杂。但是,您可以使用数据URI直接在XUL中包含CSS。

所以得到:
listbox and menulist with 16x16 image

您可以使用:

Application.Run(new Form1(args));