r - 调整 Shiny 控件的标签位置

标签 r shiny data-visualization

我很惊讶这之前没有出现在 StackOverflow 上,但无论如何这里是一个问题:

目前,此处指定了标签文本“年龄范围”
sliderInput(inputId="age", "Age Range", min=32, max=99, value=c(32, 99), step=1)
...并默认显示在顶部。

enter image description here

如何控制标签的位置,具体来说,如何将标签放在实际 slider 的左侧?

我是否需要从函数中删除“年龄范围”参数然后使用 HTML?有什么方法可以挖掘这一切背后的 Bootstrap 吗?

最佳答案

请注意,我不是 CSS 的导出商,因此很可能有更好的解决方案。 Shiny (v0.11.1) 中的输入函数只返回 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的布局和 input在那个id里面:
div(id = "myDiv", sliderInput(inputId="age", "Age Range", min=32, max=99, value=c(32, 99), step=1))
<div id="myDiv">
...
</div> 

对于修改,我将以下内容添加到页面函数(例如 fluidPage )作为参数:
tags$head(tags$style(HTML("div#myDiv label { width: 20%; }
                           div#myDiv input { display: inline-block; width: 80%;}")))

在此设置中,标签获得行宽的 20%,输入元素为 80。display: inline-block;是必需的,因此标签和输入将在同一行。我认为这是调整标签相对于其输入元素的位置的一种解决方案。

关于r - 调整 Shiny 控件的标签位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246902/

相关文章:

updateData 上可 react 的 R Shiny 条件颜色列

javascript - 当用户使用 ShieldUI 单击 ChartLegend 时,如何禁用隐藏/显示图表的功能?

r - R中使用foreach时是否导入 "parallel"包

r - 无法安装包车

r - R 数据集中的 TextInput 过滤器 Shiny

r - 使用不包含字符串的正则表达式过滤 Shiny 的DT

javascript - 为 D3 中的动态数据生成工具提示

c# - 如何将 WPFToolkit 中的 DataPointStyle 从圆形更改为方形、三角形...等?

java - 从 Java Servlet 运行 R 代码

r - dplyr::mutate_if() 具有多个条件,包括列类不起作用