ORACLE APEX bootstrap CSS 与 IF ELSE 语句
ORACLE APEX bootstrap CSS with IF ELSE Statement
我知道 css 不支持 if else 语句。
如果我的值 > 0,我想在我的 bootstrap 中显示一张卡片。
css代码:
.card-counter{
框阴影:2px 2px 10px #DADADA;
边距:5px;
填充:20px 10px;
背景颜色:#fff;
高度:100px;
边框半径:5px;
过渡:.3s 线性所有;
}
.card-counter:hover{
框阴影:4px 4px 20px #DADADA;
过渡:.3s 线性所有;
}
.card-counter.success{
背景色:#66bb6a;
颜色:#FFF;
}
.card-counter i{
字体大小:5em;
不透明度:0.2;
}
.card-counter .count-numbers{
位置:绝对;
右:35px;
顶部:20px;
字体大小:32px;
显示:块;
}
.card-counter.count-detail{
位置:绝对;
右:35px;
顶部:50px;
字体样式:斜体;
文本转换:大写;
不透明度:0.5;
显示:块;
字体大小:18px;
}
.card-counter .count-name{
位置:绝对;
右:35px;
顶部:65px;
字体样式:斜体;
文本转换:大写;
不透明度:0.5;
显示:块;
字体大小:17px;
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" />
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="card-counter success">
<i class="fa fa-calendar fa-3x fam-clock fam-is-info fa-lg"></i>
<span class="count-numbers"><a href="f?p=&APP_ID.:3008:&APP_SESSION." style="color: white">&CURRENT_SESSIONS. -
&CONFIRMED_AMOUNTS.€</a></span>
<span class="count-detail">Weekly</span>
<span class="count-name"><a href="f?p=&APP_ID.:3008:&APP_SESSION." style="color: white">Open<p>Sessions</a></span>
</div>
</div>
&CURRENT_SESSIONS。是我的应用项目,如果这个项目 > 0 那么我想显示这个磁贴,否则我想隐藏它。
current_sessionsql代码:
select count(CLIENTS.ID) as QTY
from SESSIONS SESSIONS,
CLIENTS CLIENTS
where SESSIONS.CLIENTS_ID=CLIENTS.ID
and SESSIONS.STATUS =1
and to_char(SESSIONS.SESSION_DATE, 'MM-DD-YYYY') between to_char(trunc(CURRENT_TIMESTAMP, 'iw'), 'MM-DD-YYYY')
and to_char(trunc(CURRENT_TIMESTAMP, 'iw')+6, 'MM-DD-YYYY')
您可以通过查询而不是通过 css 以其他几种方式完成此操作。它可能会更容易。
方法一:
在查询中使用 CURRENT_SESSIONS
项,这样您就只会获得需要为 CURRENT_SESSIONS
的当前值显示的行。你没有提供你的数据所以很难给你举个例子。如果您需要帮助了解如何执行此操作,请告诉我。
方法 2:将此列添加到您的报告查询中
CASE
WHEN :CURRENT_SESSIONS != 0
THEN 'block'
ELSE 'none'
END show_current_sessions,
您的报告中现在有一列,当卡片需要显示时带有字符串 'block',当卡片需要隐藏时带有字符串 'none'。
在 html 表达式或报告列的 link 文本属性中使用此值
html 表达式(根据需要调整):<i style="display:#SHOW_CURRENT_SESSIONS#;"></i>
link 文字属性:style="display:#DISPLAY_PARENT_LINK#;"
这种方法的缺点是卡片将在 DOM 中,因此还需要确保没有呈现有效的 url。
但是,如果您不使用查询作为区域源,则上述方法不适用。在这种情况下,您可以使用 css 变量。
- 创建页面项目
P1_SHOW_CURRENT_SESSIONS
(根据您的方便更改页码)。在您的页面属性上,在 css > inline: 下添加以下 css
:root {
--display: &P1_SHOW_CURRENT_SESSIONS.;
}
.showhide {
display:var(--display);
}
如果 CURRENT_SESSIONS 为 0 且 'block',则在 P1_SHOW_CURRENT_SESSIONS
到 return 'none' 之前添加 header 计算当它 > 0.
在磁贴上,添加 css class showhide
.
我知道 css 不支持 if else 语句。 如果我的值 > 0,我想在我的 bootstrap 中显示一张卡片。
css代码:
.card-counter{
框阴影:2px 2px 10px #DADADA;
边距:5px;
填充:20px 10px;
背景颜色:#fff;
高度:100px;
边框半径:5px;
过渡:.3s 线性所有;
}
.card-counter:hover{
框阴影:4px 4px 20px #DADADA;
过渡:.3s 线性所有;
}
.card-counter.success{
背景色:#66bb6a;
颜色:#FFF;
}
.card-counter i{
字体大小:5em;
不透明度:0.2;
}
.card-counter .count-numbers{
位置:绝对;
右:35px;
顶部:20px;
字体大小:32px;
显示:块;
}
.card-counter.count-detail{
位置:绝对;
右:35px;
顶部:50px;
字体样式:斜体;
文本转换:大写;
不透明度:0.5;
显示:块;
字体大小:18px;
}
.card-counter .count-name{
位置:绝对;
右:35px;
顶部:65px;
字体样式:斜体;
文本转换:大写;
不透明度:0.5;
显示:块;
字体大小:17px;
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" />
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="card-counter success">
<i class="fa fa-calendar fa-3x fam-clock fam-is-info fa-lg"></i>
<span class="count-numbers"><a href="f?p=&APP_ID.:3008:&APP_SESSION." style="color: white">&CURRENT_SESSIONS. -
&CONFIRMED_AMOUNTS.€</a></span>
<span class="count-detail">Weekly</span>
<span class="count-name"><a href="f?p=&APP_ID.:3008:&APP_SESSION." style="color: white">Open<p>Sessions</a></span>
</div>
</div>
&CURRENT_SESSIONS。是我的应用项目,如果这个项目 > 0 那么我想显示这个磁贴,否则我想隐藏它。
current_sessionsql代码:
select count(CLIENTS.ID) as QTY
from SESSIONS SESSIONS,
CLIENTS CLIENTS
where SESSIONS.CLIENTS_ID=CLIENTS.ID
and SESSIONS.STATUS =1
and to_char(SESSIONS.SESSION_DATE, 'MM-DD-YYYY') between to_char(trunc(CURRENT_TIMESTAMP, 'iw'), 'MM-DD-YYYY')
and to_char(trunc(CURRENT_TIMESTAMP, 'iw')+6, 'MM-DD-YYYY')
您可以通过查询而不是通过 css 以其他几种方式完成此操作。它可能会更容易。
方法一:
在查询中使用 CURRENT_SESSIONS
项,这样您就只会获得需要为 CURRENT_SESSIONS
的当前值显示的行。你没有提供你的数据所以很难给你举个例子。如果您需要帮助了解如何执行此操作,请告诉我。
方法 2:将此列添加到您的报告查询中
CASE
WHEN :CURRENT_SESSIONS != 0
THEN 'block'
ELSE 'none'
END show_current_sessions,
您的报告中现在有一列,当卡片需要显示时带有字符串 'block',当卡片需要隐藏时带有字符串 'none'。
在 html 表达式或报告列的 link 文本属性中使用此值
html 表达式(根据需要调整):<i style="display:#SHOW_CURRENT_SESSIONS#;"></i>
link 文字属性:style="display:#DISPLAY_PARENT_LINK#;"
这种方法的缺点是卡片将在 DOM 中,因此还需要确保没有呈现有效的 url。
但是,如果您不使用查询作为区域源,则上述方法不适用。在这种情况下,您可以使用 css 变量。
- 创建页面项目
P1_SHOW_CURRENT_SESSIONS
(根据您的方便更改页码)。在您的页面属性上,在 css > inline: 下添加以下 css
:root {
--display: &P1_SHOW_CURRENT_SESSIONS.;
}
.showhide {
display:var(--display);
}
如果 CURRENT_SESSIONS 为 0 且 'block',则在
P1_SHOW_CURRENT_SESSIONS
到 return 'none' 之前添加 header 计算当它 > 0.在磁贴上,添加 css class
showhide
.