salve sto realizzando un applicazione in jsf 2.0 con tomcat 7 ed eclipse,
ho creato una masterpage , cioe' un template che va importato in tutte le pagine ed in cui e' contenuto il css che gestisce sia il tempate che la pagina in cui viene importato,
per capirci meglio:
masterpage.xhtml: (contiene 2 menu laterali e una barra alta con il titolo )
home.xhtml:codice:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.prime.com.tr/ui" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title><ui:insert name="windowTitle"/></title> <link type="text/css" rel="stylesheet"href="resources/csscupertinoskin.css"/> <link type="text/css"rel="stylesheet"href="resources/cssstyle.css"/> </h:head> <h:body> <h:form> <div class="header"> ................. </div> .............. .......
notebook.xhtml:codice:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.prime.com.tr/ui" xmlns:h="http://java.sun.com/jsf/html" xmlns:cc="http://java.sun.com/jsf/composite" xmlns:palIo="http://java.sun.com/jsf/composite/compositecomponent/io"> <head><title>temp</title></head> <body> <ui:composition template="/MasterPage.xhtml"> <ui:define name="windowTitle"> Home </ui:define> <ui:define name="content"> <div class="home"> ...... ...... </div>
codice:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.prime.com.tr/ui" xmlns:h="http://java.sun.com/jsf/html" xmlns:cc="http://java.sun.com/jsf/composite"> <head> <title>temp</title> </head> <body> <ui:composition template="/MasterPage.xhtml"> <ui:define name="windowTitle"> <h:outputText value="Notebook" /> </ui:define> <ui:define name="content"> <div class="home"> ...... ...... </div>
style.css:
la struttura e' questa:codice:.header { text-align: center; /* orizzontale */ border: 1px solid; margin: 0px 0px 0px 0px; height:100px; } .home { text-align: center; /* orizzontale */ border: 1px solid; margin: 0px 0px 0px 180px; height:490px; width: 1065px; background: silver; } #sidebar { padding: 0; float:left; border:1px solid #CC0033; height:490px; width:178px; margin: 0px 30px 0px 0px; } #sidebarlogin { padding: 0; float:left; border:1px solid #CC0033; height:100px; width:164px; margin: 15px 15px 0px 0px; background: silver; } #sidebarLeft { border:1px solid #CC0033; padding: 0; float:left; height:248px; width:164px; margin: 15px 15px 0px 0px; }
webcontent
------informatica
----------------notebook.xhtml
------resources
----------------css
--------------------style.css
--------------------cupertinoskin.css
------home.xhtml
praticamente il css funziona cosi: i 3 sidebar e header gestiscono dei div che stanno su masterpage.xhtml(il template)e che contiene 2 menu laterali e l header, mentre .home gestisce il div principale che sta sia su home.xhtml che su notebook.xhtml che e' il blocco testo e componenti quindi le pagine home.xhtml e notebook.xhtml sono uguali cambiano solo i componenti all interno del div home, l'unica differenza e' che home.xhtml sta sotto webcontent invece notebook sta sotto webcontent /informatica/notebook.xhtml
ora sulla home il template (masterpage.xhtml) viene visualizzato nel modo corretto(2 menu laterali a sx una barra con il titolo in cima e un blocco testo nel centro-dx dello schermo) , quindi i css funzionano mentre su notebook.xhtml si vede il template(quindi il template viene importato) ma nn funzionano i css(vedo il testo dei menu e il titolo della barra alta del template ma non sono posizionati come dovrebbero).
se la pagina notebook.xhtml la sposto sotto webcontent(cioe' allo stesso livello di home.xhtml) i css funzionano anche li.
quindi praticamente il problema e' la posizione della pagina notebook, quello che non capisco e' il perche i css non funzionano? loro hanno il loro link che nn dipende dalla posizione della pagina.
sbaglio qualcosa?
grazie

Rispondi quotando