请注意,我不是 CSS 的导出者,因此很可能有更好的解决方案。闪亮(v0.11.1)中的输入功能simply返回 HTML;在您的示例中,返回值为:
sliderInput(inputId="age", "Age Range", min=32, max=99, value=c(32, 99), step=1)
<div class="form-group shiny-input-container">
<label class="control-label" for="age">Age Range</label>
<input class="js-range-slider" id="age" data-type="double" data-min="32" data-max="99" data-from="32" data-to="99" data-step="1" data-grid="true" data-grid-num="9.57142857142857" data-grid-snap="false" data-prettify-separator="," data-keyboard="true" data-keyboard-step="1.49253731343284"/>
</div>
所以你必须调整label
元素相对于input
元素。为此,我将这些元素包装在一个新的div
能够分配一个id
。然后你可以修改布局label
and input
在该 id 内:
div(id = "myDiv", sliderInput(inputId="age", "Age Range", min=32, max=99, value=c(32, 99), step=1))
<div id="myDiv">
...
</div>
为了进行修改,我将以下内容添加到页面功能 (e.g. fluidPage
) 作为参数:
tags$head(tags$style(HTML("div#myDiv label { width: 20%; }
div#myDiv input { display: inline-block; width: 80%;}")))
在此设置中,标签获得行宽的 20%,输入元素获得 80。display: inline-block;
需要这样标签和输入将在同一行。我认为这是调整标签相对于其输入元素的位置的一种解决方案。