我正在使用JSF和richfaces制作一个网站,但是我需要在下拉菜单标签上做一些背景图片。
.rich-ddmenu-label { background-image: url("images/the_image.gif"); }
但这似乎并没有试图把一个图像的任何地方。我可以使用图像
<h:graphicImage/>
我不知道怎么把文字放在上面。我做错了什么?我如何在一些文本后面插入背景图像?
xa9qqrwz1#
我在使用JSF2.0时遇到了同样的问题,我不得不使用CSS,相对路径的解决方案也不适合我(就像Choghere发布的那样)。在我的书中我读到当你使用Facelets作为VDL(视图声明语言)时,即使在一个普通的HTML页面中也可以使用表达式.所以我有了直接在CSS中放置EL的想法.我没有改变文件名或任何东西。下面是我所做的。但首先我的文件结构:
接下来是CSS:
.someclass { background-image:url("#{resource['images:logo.png']}"); }
在本例中,resource 是JSF 2的一个隐式对象,images 是JSF应该查找的库(jsf期望资源下的所有库/文件,至少是默认的ResourceHandler),然后是资源的名称。对于更深层次的结构,它将是:
#{resource['images/folder:logo.png']}
2nbm6dog2#
假设有问题的元素应用了一个class="rich-ddmenu-label",那么问题很可能是背景图像的路径。路径是相对于CSS所在的位置。如果它在外部文件中,则应该是相对于该文件的路径,例如:
class="rich-ddmenu-label"
/css/styles.css /images/the_image.gif
CSS应该:
background-image: url("../images/the_image.gif");
如果CSS内嵌在HTML页面上,它将相对于当前路径,因此如果页面位于http://server/path/to/page,它将在http://server/path/to/page/images/the_image.gif查找图像,而您可能指的是http://server/images/the_image.gif。如果这没有回答它,请张贴生成的HTML。
http://server/path/to/page
http://server/path/to/page/images/the_image.gif
http://server/images/the_image.gif
5jdjgkvh3#
你是否遵循了Richfaces demo site上的例子?即,使用一个facet并将图像和文本放置在一个封闭的元素(例如,span或div)内
<rich:dropDownMenu> <f:facet name="label"> <h:panelGroup> <h:graphicImage value="/images/icons/copy.gif" styleClass="pic"/> <h:outputText value="File"/> </h:panelGroup> </f:facet> <rich:menuItem submitMode="ajax" value="New" action="#{ddmenu.doNew}" icon="/images/icons/create_doc.gif"> </rich:menuItem> ... </rich:dropDownMenu>
tuwxkamq4#
我的文件夹结构如下:网页-〉资源-〉css//css页面网页-〉资源-〉图片//图像网页//xhtml文件尝试以下方法:
background-image :url("../pics/logo.gif");
..向上移动一个文件夹级别/pics将您移动到pics目录/logo.gif提供文件希望这个有用。
wko9yo5t5#
我得到了这个解决方案:创建一个新的.css文件与此内容
body { background-image: url(../resources/images/Fondo.GIF); }
这将以和html相同的方式加载文件。2有了这个,你将能够在body层加载一个背景文件(在整个页面上)。3之后你可以在jsf文件中用这个指令加载css文件:
<h:head> <h:outputStylesheet name="ps-pagolinea.css" library="css" /> <h:outputScript name="corrigePoliza.js" library="scripts"/> </h:head>
5条答案
按热度按时间xa9qqrwz1#
我在使用JSF2.0时遇到了同样的问题,我不得不使用CSS,相对路径的解决方案也不适合我(就像Choghere发布的那样)。
在我的书中我读到当你使用Facelets作为VDL(视图声明语言)时,即使在一个普通的HTML页面中也可以使用表达式.所以我有了直接在CSS中放置EL的想法.我没有改变文件名或任何东西。
下面是我所做的。但首先我的文件结构:
接下来是CSS:
在本例中,resource 是JSF 2的一个隐式对象,images 是JSF应该查找的库(jsf期望资源下的所有库/文件,至少是默认的ResourceHandler),然后是资源的名称。
对于更深层次的结构,它将是:
2nbm6dog2#
假设有问题的元素应用了一个
class="rich-ddmenu-label"
,那么问题很可能是背景图像的路径。路径是相对于CSS所在的位置。如果它在外部文件中,则应该是相对于该文件的路径,例如:
CSS应该:
如果CSS内嵌在HTML页面上,它将相对于当前路径,因此如果页面位于
http://server/path/to/page
,它将在http://server/path/to/page/images/the_image.gif
查找图像,而您可能指的是http://server/images/the_image.gif
。如果这没有回答它,请张贴生成的HTML。
5jdjgkvh3#
你是否遵循了Richfaces demo site上的例子?即,使用一个facet并将图像和文本放置在一个封闭的元素(例如,span或div)内
tuwxkamq4#
我的文件夹结构如下:
网页-〉资源-〉css//css页面
网页-〉资源-〉图片//图像
网页//xhtml文件
尝试以下方法:
..向上移动一个文件夹级别/pics将您移动到pics目录/logo.gif提供文件
希望这个有用。
wko9yo5t5#
我得到了这个解决方案:创建一个新的.css文件与此内容
这将以和html相同的方式加载文件。2有了这个,你将能够在body层加载一个背景文件(在整个页面上)。3之后你可以在jsf文件中用这个指令加载css文件: