2014-12-11 83 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

相關問題