2016-11-25 8 views
1

私はスライダーのカップル、プロット出力やラジオボタンがあるUIを作成したい問題合わせラジオボタンのオプションやスライダー

。スライダで値を選択し、ラジオボタンでプロットに関連するスライダを選択できます。

理想的には、ラジオボタングループを持つ代わりに、各スライダの前に(ラベルが表示されていない)ラジオボタンが1つあります。それをどうすれば実現できますか?いくつか微調整してcssと思いますか?私はチェックボックス(ではなく、チェックボックスグループ)と同様のことをして、columnを使用しています。しかし、ラジオボタンは、ユーザーにただ1つの要素を選択させるように制限したいので、このケースではよりよく適合します。

現状

(Radiobutton 1) 
(Radiobutton 2) 
[----Slider 1----] 
[----Slider 2----] 

理想的な状況

(Radiobutton 1) [----Slider 1----] 
(Radiobutton 2) [----Slider 2----] 

コード

library(shiny) 
app <- shinyApp(
    ui = bootstrapPage(
     radioButtons("slds.rb", label = "", choices = paste0("sld", 1:2)), 
     sliderInput("sld1", min = 0, max = 10, label = "y1", value = 5), 
     sliderInput("sld2", min = 0, max = 10, label = "y2", value = 5), 
     plotOutput('plot') 
    ), 
    server = function(input, output) { 
     output$plot <- renderPlot({ 
     plot(seq_len(input[[input$slds.rb]])) 
     }) 
    }) 
runApp(app) 

答えて

2

このUSIを行うことができますスタイルのdisplay: inline-block;と組み合わせてdiv関数(HTMLで<div>ブロックを作成する)を使用します。だからあなたのUIは次のようになります。

ui = bootstrapPage(
    div(style="display: inline-block;",radioButtons("slds.rb", label = "", choices = paste0("sld", 1:2),width = '100px')), 
    div(style="display: inline-block;",sliderInput("sld1", min = 0, max = 10, label = "y1", value = 5), 
             sliderInput("sld2", min = 0, max = 10, label = "y2", value = 5)), 
    plotOutput('plot') 
) 

これはあなたのdivブロックにCSS display: inline-block;を適用します。

編集:これはちょうどそれらをお互いに整列させるために手動でpaddingmarginを調整する必要があります。

+0

正しい方向を指してくれてありがとう。どの要素に 'margin/padding'の調整が必要なのかアドバイス? – thothal

+0

上に押したいものの下のマージンを設定するとよいでしょう。 –

+0

リファレンス:https://www.impressivewebs.com/difference-between-margins-padding-css/ –

関連する問題