提问人:Tom Tanner 提问时间:1/16/2017 最后编辑:Tom Tanner 更新时间:1/17/2017 访问量:188
如何说服列表单元格中的图标大小为 16x16
How do I persuade an icon in a listcell to be sized to 16x16
问:
我正在尝试清理一个旧的(ish)firefox扩展程序,我有点痴呆。它创建网站及其网站图标的列表。它会将列表显示为弹出菜单或列表,具体取决于您的要求。
而且我无法让图标正确显示(这是这个扩展程序长期以来一直存在的问题)。在菜单上,在您做出选择之前不会显示任何图标。然后它显示图标,但有一个页面的图标是 256x256,看起来很糟糕。同样,在列表视图中。
据我所知,菜单都是用 menuitem-iconic 构建的,列表是用 listcell-iconic/listitem-iconic 构建的,但即使我在扩展 css 中添加了一个 menuitem-iconic 覆盖(这会影响所有其他菜单图标),我也无法识别它。
如果你把它放到xul浏览器中,你就会明白我的意思
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<!-- listbox showing large icon -->
<listbox>
<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 the 'darken' one 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>
我在这里对可能发生的事情感到茫然。列表项的最大高度工作正常,导致相关行上出现一个宽但非常短的图标,但我希望它只是 16x16。
菜单没有这样的限制,并以完整的 256x256 像素显示所选图像。
答:
您可以通过添加 CSS 来设置显示图像的元素的样式来实现此目的。是 XBL 论坛的一部分,由 您的 .您可以通过在 XBL 中查找元素或使用 DOM 检查器并显示匿名内容来查看每个显式包含的元素由哪些元素组成。width
height
<image>
<image>
<listcell class="listitem-iconic">
<listitem class="listitem-iconic">
您可以为显示的菜单列表图标设置类似的样式。image.menulist-icon
由于没有单独的 CSS 文件,您的问题有些复杂。但是,你可以通过使用数据URI直接在XUL中包含CSS。
您可以使用:
<?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>
评论
<image class="listcell-icon"> and
menulist
listcell
<menulist>
评论
<listbox>
的完整XUL。这至少允许复制代码并将其放入XUL资源管理器中进行测试。