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