【问题标题】:css vertical input range width issuecss垂直输入范围宽度问题
【发布时间】:2017-05-14 07:27:41
【问题描述】:

我用这种方式在 div 中设置垂直输入范围:

input[type=range] {transform: rotate(270deg);
}

我不想用

appearance: slider-vertical;

(因为它破坏了我的滑块设计)。

div 是高度:页面的 30%;和宽度:33px;。 我希望输入范围(滑块控件)占据 div 的整个高度。

我不能使用 {width: 100%;}(是的,滑块会对其水平尺寸做出反应)它会使滑块变为 33px。

那么如何将滑块宽度设置为 div 高度的 100% 呢?我是一个非常初学者,有没有一种简单的 CSS 方法来做这样的事情,但实际上有效? (我没有看到任何地方)

divFoo{
  height: 30%;
  width: 33px;
}

input[type=range].slider {
  width: divFoo.height;
}

谢谢

【问题讨论】:

  • 这必须用javascript完成
  • 这种东西-> input[type=range].slider {width: divFoo.height;}
  • 不行,必须用javascript来完成。我会贴一个代码sn-p

标签: html css


【解决方案1】:

这必须使用 javascript 来完成。这是代码sn-p。

// We should make sure that the window is loaded first
window.onload = function() {
  // get height of div
  // we can also calculate by using
  // var height = window.offsetHeight * (30 / 100)
  var height = document.getElementById("div").offsetHeight;
  // Now we set the width of the slider to the height of the div
  document.getElementById("slider").style.width = height+"px";
};
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}

div {
  width: 33px;
  height: 30%;
}
<!-- Here is your div -->
<div id="div"></div>
<!-- Here is the slider -->
<input type="range" id="slider">

【讨论】:

  • 感谢您的回复!您的代码中有一点疏忽: var height = document.getElementById("div").offsetHeight+"px";
  • 哎呀,我的错,让我编辑它。不要忘记将其标记为正确答案!
猜你喜欢
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多