2014-12-11 82 views
0

我有一个输出字符串,它是一个完整的URL,我想用不同的颜色突出显示该URL中的不同参数。我尝试了一些不同的方法,在server.R中分割字符串,然后尝试在ui.R中加入它们并应用不同的CSS类,但没有成功...链接看起来像这样突出显示不同颜色的字符串在r闪亮的用户界面中的不同部分

http://www.example.com?utm_campaign=[蓝色文字] & utm_source = [红色文本]

当我尝试从server.R传递的URL的不同部分结合起来创建最终URL空间。

下面是一些示例代码

在server.R

output$val1 <- renderText({"http://www.example.com?utm_campaign="}) 
output$val2 <- renderText({"[Enter campaign name]"}) 

在ui.R

p(textOutput("val1"), span(textOutput("val2"), style = "color:blue"), "more text") 

这打破了outpout在两行

+1

这将真正帮助,如果你贴了一下相关的代码,尤其是创建URL的各部分的线条/通过它周围,这样我们就可以看到你在做什么做和为什么有空格 – 2014-12-11 02:26:35

+0

谢谢 - 添加了一些代码,以显示我的意思 – MaximusDecimusMeridius 2014-12-11 17:33:59

回答

1

的示例代码你提供创建换行符,而不仅仅是我的空间。如果这就是你想要解决的问题,那么这里就是解决方案:将inline = TRUE作为参数添加到textOutput。或者,如果您使用的是旧版本的不支持该功能的闪亮版本,请使用CSS添加display: inline;

p(textOutput("val1", inline = TRUE), span(textOutput("val2", inline = TRUE), style = "color:blue"), "more text")

我通常看HTML输出从一个闪亮的应用程序,看看发生了什么事情弄清楚为什么事情被渲染会是这样的,这就是我去了这一点。

您会注意到连续的<span>元素之间仍有差距。如果这就是你之前提到的,那么这是一个更复杂的问题,即使在纯HTML/CSS中也没有一个漂亮的解决方案,更不用说在Shiny中。例如,参见this thread

下面是一个可能的方法来克服这一点,我承认这不是很漂亮。还有其他方法可以实现这一目标,但这是我能想到的第一个解决方案,它从CSS问题线索中借鉴了一些想法。主要想法是在父级上使用font-size:0,并恢复跨度的原始字体大小。

tags$head(
    tags$style(HTML(" 
    #val2 { 
     color: blue; 
    } 
    p { 
     font-size: 0; 
    } 
    p > * { 
     font-size: 14px; 
    } 
    ")) 
), 

p(textOutput("val1", inline = TRUE), textOutput("val2", inline = TRUE), span("more text")) 

希望这有助于

+0

谢谢 - 这有助于 – MaximusDecimusMeridius 2014-12-16 17:52:29

相关问题