相同的JSF+CSS会导致不同的结果

相同的JSF+CSS会导致不同的结果,css,jsf,xhtml,primefaces,Css,Jsf,Xhtml,Primefaces,我有两个项目,一个是另一个的副本,除了一些bean的更改 以下是我得到的截图: 正如你所看到的,在新项目中,我有一个丑陋的边界,没有办法改变它! 使用NetBeans的file diff工具,它们的css之间没有任何区别,甚至HTML也与我在Firefox的inspector中尝试过的完全相同 怎么了 以下是他们的css+jsf代码: 旧页: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE

我有两个项目,一个是另一个的副本,除了一些bean的更改

以下是我得到的截图:

正如你所看到的,在新项目中,我有一个丑陋的边界,没有办法改变它! 使用NetBeans的file diff工具,它们的css之间没有任何区别,甚至HTML也与我在Firefox的inspector中尝试过的完全相同

怎么了

以下是他们的css+jsf代码:

旧页:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui">
<h:body>

    <!-- Script di callback per gestire situazioni in cui il form di login non è stato completato correttamente -->
    <script type="text/javascript">  
        function animateNewPost(id) { 
            if(id != null)
                jQuery('#post_' +id).effect("slide", {}, 500);
        }  
        function animateDeletedPost(id) {                
            if(id != null)
                jQuery('#post_' +id).effect("slide", {mode:"hide"}, 500);
        }
    </script> 

    <p:growl id="postMessage" autoUpdate="true" showDetail="true"/>
    <p:outputPanel id="postPanel">
        <!-- Pannello per l'inserimento del post -->
        <div id="postBox">
            <p:panel id="postForm" rendered="#{loginBean.loggedIn}">
                <h:form>
                    <h:inputText value="#{postBean.postText}" size="95"/>                         
                    <p:commandButton icon="ui-icon-search" rendered="false"/><br/>
                    <p:commandLink ajax="true" action="#{postBean.insertPost}" value="Inserisci Post" update=":postMessage, :postList, :postForm" oncomplete="animateNewPost(#{lazyPostBean.latestId})"/>
                </h:form>
            </p:panel>      
            <p:panel id="postList">                   
                <p:dataTable id="postTable" var="post" value="#{lazyPostBean.posts}" emptyMessage="Non ci sono posts.">
                    <p:column style="border: 0px; background: rgba(0,0,0,0);">                            
                        <div class="feature">                                
                            <div class="post" id="post_#{post.idPost}">                                
                                <h:outputLink id="link" value="#">#{post.autore.username}</h:outputLink> scrive :
                                <br/>
                                <hr/>
                                <div class="blockquote">
                                    <div class="quotopen"></div>
                                    <div class="quotcont">
                                        <p><h:outputText value="#{post.testo}"/></p>
                                    </div>
                                </div>
                                <hr />      
                                <p:outputPanel style="float: left;" rendered="#{post.autore.equals(loginBean.utente)}">                                        
                                    <h:form>
                                        <p:commandLink style="font-size: 12; color: white;" value="Rimuovi Post" action="#{postBean.removePost(post)}" onclick="animateDeletedPost(#{post.idPost})" update=":postList"/>
                                    </h:form>
                                </p:outputPanel>
                                <p class="date">#{post.formatDate()} | #{post.formatTime()}</p>                               
                            </div>
                        </div>
                    </p:column>                                              
                </p:dataTable>
            </p:panel>
        </div>    
    </p:outputPanel>       
</h:body>
新CSSprime.css

/* 文件:prime 创建日期:2012年3月25日,18.25.48 作者:斯特凡诺 说明: 样式表的目的如下。 */ 根{ 显示:块; } .ui通知栏{ 宽度:68.9%; 身高:8%; 过滤器:alphaopacity=80;/*适用于IE 7*/ 不透明度:0.8;/*适用于Firefox*/ } .搜索图标{ 背景图片:url../images/search.png; } .ui小部件覆盖{ 过滤器:alphaopacity=80;/*适用于IE 7*/ 不透明度:0.8;/*适用于Firefox*/ } .ui对话框注册表{ 最小宽度:1000px; 最小高度:500px; 宽度:自动!重要; 高度:自动!重要; } .ui对话框日志{ 背景:rgba0,0,0,0; 位置:固定; 宽度:自动!重要; 高度:自动!重要; } .ui数据表{ 背景:rgba0,0,0,0; 边界:0px; } .ui数据表标题{ 边界:0px; 背景:rgba0,0,0,0; } .ui数据表偶数{ 背景:rgba0,0,0,0; 边界:0px; } .ui数据表奇数{ 背景:rgba0,0,0,0; 边界:0px; } .ui数据表数据{ 背景:rgba0,0,0,0; 边界:0px; } 旧CSSscreen.css

身体{ 保证金:0; 填充:0; 边框:0;/*这将删除旧版本IE中视口周围的边框*/ 宽度:70%; 保证金:0自动; 背景:fff; /*最小宽度:600px;布局的最小宽度-如果不需要,移除线条*/ /*“最小宽度”属性在旧版本的Internet Explorer中不起作用*/ 字体大小:90%; } a{ 颜色:369; } a:悬停{ 颜色:fff; 背景:369人; 文字装饰:无; } h1,h2,h3{ 保证金:.8em0.2em0; 填充:0; } p{ 保证金:4EM0.8EM0; 填充:0; } img{ 利润率:10px 0 5px; } 广告img{ 显示:块; 填充顶部:10px; } /*标题样式*/ 标题{ 背景图片:url../images/logo.png; 背景重复:无重复; 背景位置:020; 明确:两者皆有; 浮动:左; 宽度:100%; } 标题{ 边框底部:1px实心000; } 标题p, 收割台h1, 收割台h2{ 填充:.4em 15px 0 15px; 左:30%; 保证金:0; } 标题ul{ 清除:左; 浮动:左; 宽度:100%; 列表样式:无; 利润率:10px0; 填充:0; } 标题ulli{ 显示:内联; 列表样式:无; 保证金:0; 填充:0; } 标题ulli a{ 显示:块; 浮动:左; 利润率:0.1px; 填充:3x10px; 文本对齐:居中; 背景:eee; 颜色:000; 文字装饰:无; 位置:相对位置; 左:15px; 线高:1.3em; } 标题:悬停{ 背景:369人; 颜色:fff; } 标题ul li a.active, 标题ul li a.active:悬停{ 颜色:fff; 背景:2000人; 字体大小:粗体; } 头上有一个跨度{ 显示:块; } 搜索框{ 左:25%; 垫面:1%; 垫底:1%; 宽度:75%; } 搜索框输入[类型=文本]{ 边界:0px; 右侧填充:0.6%; } /*“宽度”子菜单*/ 子菜单{ 明确:两者皆有; 背景:eee; 边框顶部:4px000; 保证金:0; 填充:6px 15px!重要; 文本对齐:右对齐; } /*柱状容器*/ colmask先生{ position:relative;/*这修复了IE7溢出隐藏错误*/ 明确:两者皆有; 浮动:左; 宽度:100%;/*整页宽度*/ 溢出:隐藏;/*这将切掉任何悬垂的div*/ } /*公共列设置*/ colright先生, 柯米德先生, 科勒夫特先生{ 垫面:1%; 垫底:2%; 浮动:左; 宽度:100%; 位置:相对位置; } .col1, .col2, .col3{ 浮动:左; 位置:相对位置; 填充:0.01米0; 溢出:隐藏; } 信箱{ 文本对齐:居中; } 邮箱输入[类型=文本]{ 边界:0px; 文本对齐:居中; } 帖子列表{ 利润率最高:0.5%; 身高:36.2米; 溢出:自动; 边界:0px; } /*塞锡安邮政*/ 邮递 { 文本对齐:左对齐; 背景:rgba0,84,68,0.3; 左:2%; 垫底:4%; 垫面:1%; 右:2%; -webkit边框半径:/*填充:2%2%2%2%;*/20px; -moz边界半径:20px; 边界半径:20px; } .后img { 背景色:008080; 填充:3倍; 边框:1px实心; 边框颜色:004040; 保证金:3倍; } 日期 { 浮动:对; } .后h2 { 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字体大小:正常; } .邮政人力资源部 { 边距:2px0 5px0 ; 边框颜色:004040; 边框样式:无点; } .后img { 保证金:5px; } 邮政署 { 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字体大小:16px; 线高:20px; } 博士后保险商学院 { 列表样式类型:无; 列表样式位置:内部; 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字号:12号; 字体大小:粗体; 利润率:0.5px 30 px; } 邮政局局长 { 列表样式位置:内部; 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字号:12号; 字体大小:粗体; 利润率:0.5px 30 px; } 1.topspacer { /*高度:15px*/ 背景图像:url../images/top.png; } 日期 { 浮动:对; } .区块报价 { 保证金:10px 60px 10px 60px; 字体:斜体; } 开放 { 浮动:左; 宽度:40px; 高度:27px; 背景图片:url../images/quotopen.png; 背景位置:左上角; 背景重复:无重复; } .quot续 { 利润率:0.40px; } 特色 { 保证金:5px 5px 10px 10px; /*宽度:549px*/ } /*精品赛锡安邮政*/ /*2列左菜单设置*/ .左菜单{ 背景:fff;/*右栏背景色*/ } .左菜单{ 右:75%;/*右列宽*/ 背景:F4;/*左栏背景色*/ } .leftmenu.col1{ 宽度:71%;/*右列内容宽度*/ 左:102%;/*100%加上左栏左填充*/ 高度:45em; 溢出:自动; } .leftmenu.col2{ 宽度:21%;/*左列内容宽度列宽减去左右填充*/ 左:6%;/*右列左和右填充加上左列左填充*/ 高度:45em; 溢出:自动; } /*页脚样式*/ 页脚{ 明确:两者皆有; 浮动:左; 宽度:100%; 边框顶部:1px实心000; } 页脚p{ 填充:10px; 保证金:0; } 人力资源{ 边界:0; 高度:2倍; 背景:333人; 背景:-webkit gradientlinear,左上角,右上角,颜色停止0%,hsla0,0%,0%,颜色停止50%,hsla0,0%,0%,.75,颜色停止100%,hsla0,0%,0%; 背景:-webkit线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:-moz线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:-ms线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:-o-线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; } 新CSSScreen.css

身体{ 保证金:0; 填充:0; 边框:0;/*这将删除旧版本IE中视口周围的边框*/ 宽度:70%; 保证金:0自动; 背景:fff; /*最小宽度:600px;布局的最小宽度-如果不需要,移除线条*/ /*“最小宽度”属性在旧版本的Internet Explorer中不起作用*/ 字体大小:90%; } a{ 颜色:369; } a:悬停{ 颜色:fff; 背景:369人; 文字装饰:无; } h1,h2,h3{ 保证金:.8em0.2em0; 填充:0; } p{ 保证金:4EM0.8EM0; 填充:0; } img{ 利润率:10px 0 5px; } 广告img{ 显示:块; 填充顶部:10px; } /*标题样式*/ 标题{ 背景图片:url../images/logo.png; 背景重复:无重复; 背景位置:020; 明确:两者皆有; 浮动:左; 宽度:100%; } 标题{ 边框底部:1px实心000; } 标题p, 收割台h1, 收割台h2{ 填充:.4em 15px 0 15px; 左:30%; 保证金:0; } 标题ul{ 清除:左; 浮动:左; 宽度:100%; 列表样式:无; 利润率:10px0; 填充:0; } 标题ulli{ 显示:内联; 列表样式:无; 保证金:0; 填充:0; } 标题ulli a{ 显示:块; 浮动:左; 利润率:0.1px; 填充:3x10px; 文本对齐:居中; 背景:eee; 颜色:000; 文字装饰:无; 位置:相对位置; 左:15px; 线高:1.3em; } 标题:悬停{ 背景:369人; 颜色:fff; } 标题ul li a.active, 标题ul li a.active:悬停{ 颜色:fff; 背景:2000人; 字体大小:粗体; } 头上有一个跨度{ 显示:块; } 搜索框{ 左:25%; 垫面:1%; 垫底:1%; 宽度:75%; } 搜索框输入[类型=文本]{ 边界:0px; 右侧填充:0.6%; } /*“宽度”子菜单*/ 子菜单{ 明确:两者皆有; 背景:eee; 边框顶部:4px000; 保证金:0; 填充:6px 15px!重要; 文本对齐:右对齐; } /*柱状容器*/ colmask先生{ position:relative;/*这修复了IE7溢出隐藏错误*/ 明确:两者皆有; 浮动:左; 宽度:100%;/*整页宽度*/ 溢出:隐藏;/*这将切掉任何悬垂的div*/ } /*公共列设置*/ 科尔里先生 嗯,, 柯米德先生, 科勒夫特先生{ 垫面:1%; 垫底:2%; 浮动:左; 宽度:100%; 位置:相对位置; } .col1, .col2, .col3{ 浮动:左; 位置:相对位置; 填充:0.01米0; 溢出:隐藏; } 信箱{ 文本对齐:居中; } 邮箱输入[类型=文本]{ 边界:0px; 文本对齐:居中; } 帖子列表{ 利润率最高:0.5%; 身高:36.2米; 溢出:自动; 边界:0px; } /*塞锡安邮政*/ 邮递 { 文本对齐:左对齐; 背景:rgba0,84,68,0.3; 左:2%; 垫底:4%; 垫面:1%; 右:2%; -webkit边框半径:/*填充:2%2%2%2%;*/20px; -moz边界半径:20px; 边界半径:20px; } .后img { 背景色:008080; 填充:3倍; 边框:1px实心; 边框颜色:004040; 保证金:3倍; } 日期 { 浮动:对; } .后h2 { 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字体大小:正常; } .邮政人力资源部 { 保证金:2px0 5px0; 边框颜色:004040; 边框样式:无点; } .后img { 保证金:5px; } 邮政署 { 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字体大小:16px; 线高:20px; } 博士后保险商学院 { 列表样式类型:无; 列表样式位置:内部; 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字号:12号; 字体大小:粗体; 利润率:0.5px 30 px; } 邮政局局长 { 列表样式位置:内部; 颜色:FFFFFF; 字体系列:佐治亚,泰晤士报,新罗马,泰晤士报,衬线; 字号:12号; 字体大小:粗体; 利润率:0.5px 30 px; } 1.topspacer { /*高度:15px*/ 背景图像:url../images/top.png; } 日期 { 浮动:对; } .区块报价 { 保证金:10px 60px 10px 60px; 字体:斜体; } 开放 { 浮动:左; 宽度:40px; 高度:27px; 背景图片:url../images/quotopen.png; 背景位置:左上角; 背景重复:无重复; } .quot续 { 利润率:0.40px; } 特色 { 保证金:5px 5px 10px 10px; /*宽度:549px*/ } /*精品赛锡安邮政*/ /*2列左菜单设置*/ .左菜单{ 背景:fff;/*右栏背景色*/ } .左菜单{ 右:75%;/*右列宽*/ 背景:F4;/*左栏背景色*/ } .leftmenu.col1{ 宽度:71%;/*右列内容宽度*/ 左:102%;/*100%加上左栏左填充*/ 高度:45em; 溢出:自动; } .leftmenu.col2{ 宽度:21%;/*左列内容宽度列宽减去左右填充*/ 左:6%;/*右列左和右填充加上左列左填充*/ 高度:45em; 溢出:自动; } /*页脚样式*/ 页脚{ 明确:两者皆有; 浮动:左; 宽度:100%; 边框顶部:1px实心000; } 页脚p{ 填充:10px; 保证金:0; } 人力资源{ 边界:0; 高度:2倍; 背景:333人; 背景:-webkit gradientlinear,左上角,右上角,颜色停止0%,hsla0,0%,0%,颜色停止50%,hsla0,0%,0%,.75,颜色停止100%,hsla0,0%,0%; 背景:-webkit线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:-moz线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:-ms线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:-o-线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; 背景:线性梯度左,hsla0,0%,0%,0%,hsla0,0%,0%,0%,75%,50%,hsla0,0%,0%,100%; } 现在,假设我对CSS完全不熟练,并且我的代码完全是来自各种来源的复制粘贴,即使我的项目的重点是学习JavaEE而不是CSS,你如何解释新页面上这个可怕的边界

谢谢

编辑:

看起来,在新项目中,我的CSS并没有覆盖primefaces的原始CSS


有什么建议吗?

通过Firefox/Chrome/IE等中的web开发工具,应该很容易判断样式来自何处。您是否使用这些工具检查过元素的样式?我已经使用Firefox的inspector进行了尝试。正如我在第一篇文章中所写,我已经尝试使用Firefox的inspector,html也是一样的!:\我知道了,但是你用过工具吗?是的,我用过。它似乎不需要prime.css,因为.ui datatable偶数和.ui datatable奇数类不会有任何效果!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:pou="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <!-- Script di callback per gestire situazioni in cui il form di login non è stato completato correttamente -->
    <script type="text/javascript">  
        function animateNewPost(id) { 
            if(id != null)
                jQuery('#post_' +id).effect("slide", {}, 500);
        }  
        function animateDeletedPost(id) {                
            if(id != null)
                jQuery('#post_' +id).effect("slide", {mode:"hide"}, 500);
        }
    </script>  
</h:head>
<h:body>

    <pou:effect for="postPanel" event="load" type="bounce">
        <f:param name="mode" value="'show'" />           
        <f:param name="direction" value="'up'" />        
    </pou:effect>

    <pou:outputPanel id="postPanel">
        <div id="postBox">
            <pou:panel id="postForm" rendered="#{loginBean.logged}">
                <h:form>
                    <h:inputText value="#{postBean.postText}" size="95"/><br/>
                    <pou:commandLink ajax="true" action="#{postBean.insertPost}" value="Inserisci Post" update=":postPanel" oncomplete="animateNewPost(#{postListBean.latestId})"/>
                </h:form>
            </pou:panel>             
            <pou:panel id="postList" style="border: 0px;">
                <pou:dataTable emptyMessage="Non ci sono post." id="postTable" value="#{postListBean.posts}" var="post">
                    <pou:column style="border: 0px; background: rgba(0,0,0,0);">                            
                        <div class="feature">                                
                            <div class="post" id="post_#{post.idPost}">                                
                                <h:outputLink id="link" value="#">#{post.autore.username}</h:outputLink> scrive :
                                <br/>
                                <hr/>
                                <div class="blockquote">
                                    <div class="quotopen"></div>
                                    <div class="quotcont">
                                        <p><h:outputText value="#{post.testo}"/></p>
                                    </div>
                                </div>
                                <hr />      
                                <pou:outputPanel style="float: left;" rendered="#{post.autore.equals(loginBean.utente)}">                                        
                                    <h:form>
                                        <pou:commandLink style="font-size: 12; color: white;" value="Rimuovi Post" action="#{postBean.removePost(post)}" onclick="animateDeletedPost(#{post.idPost})" update=":postList"/>
                                    </h:form>
                                </pou:outputPanel>
                                <p class="date">#{post.formatDate()} | #{post.formatTime()}</p>                               
                            </div>
                        </div>
                    </pou:column> 
                </pou:dataTable>
            </pou:panel>
        </div>
    </pou:outputPanel>
</h:body>
</html>