【问题标题】:Change label input on click and then back to original when a different image clicked?单击时更改标签输入,然后在单击不同图像时返回原始输入?
【发布时间】:2014-10-14 17:35:17
【问题描述】:

所以我使用复选框来更改单击时的 3 个按钮,当有人单击一个按钮时,它会更改为选定的按钮图像,然后有人单击另一个按钮,它将另一个按钮更改回原始图像,并且新的其他点击按钮转到选择。问题是我无法弄清楚如何拥有 3 个不同的选定状态。每种颜色一个。现在它显然只是使用greenbtn-selected,我如何添加多个以便每个按钮都有自己的选择状态?

由于某种原因 content:url 不能在 Firefox 上运行?还有其他方法吗,我尝试了 background:url 但这在 Chrome 中不起作用!呃。

非常感谢!!!

选中的按钮图片..

http://www.morecleanenergy.com/graphics/mass/images/greenbtn-select.png
http://www.morecleanenergy.com/graphics/mass/images/bluebtn-select.png
http://www.morecleanenergy.com/graphics/mass/images/orangebtn-select.png

按钮..

<label>
<input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
<img src="http://www.morecleanenergy.com/graphics/mass/images/greenbtn-select.png">
</label>

<label>
<input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
<img src="http://www.morecleanenergy.com/graphics/mass/images/orangebtn-select.png">
</label>

<label>
<input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
<img src="http://www.morecleanenergy.com/graphics/mass/images/bluebtn-select.png">
</label>

CSS...

label > input + img {
    cursor: pointer;
}
label > input {
    position: absolute;
    visibility: hidden;
    width: 130px;
}
label > input:checked + img {
    content: url("http://www.morecleanenergy.com/graphics/mass/images/orangebtn-selected.png");
}

label > input + img {
  cursor: pointer;
}
label > input {
  position: absolute;
  visibility: hidden;
  width: 130px;
}
label > input: checked + img {
  content: url("http://www.morecleanenergy.com/graphics/mass/images/orangebtn-selected.png");
}
<label>
  <input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
  <img src="http://www.morecleanenergy.com/graphics/mass/images/greenbtn-select.png">
</label>

<label>
  <input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
  <img src="http://www.morecleanenergy.com/graphics/mass/images/orangebtn-select.png">
</label>

<label>
  <input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
  <img src="http://www.morecleanenergy.com/graphics/mass/images/bluebtn-select.png">
</label>

【问题讨论】:

  • 您希望按钮具有哪些“状态”?顺便说一句,您发布的代码似乎没有对元素的外观产生任何明显的变化。

标签: css button checkbox input label


【解决方案1】:

不要使用image 使用&lt;div&gt;span

JS Fiddle

提供背景图片并在更改图片之前使用pseudo

html

<label>
    <input id="ctl00_generalContentPlaceHolder_rbPackage1" type="radio" value="rbPackage1" name="ctl00$generalContentPlaceHolder$product">
    <span class="check-green"></span>
</label>

css

.check-green {
    background:url(http://www.morecleanenergy.com/graphics/mass/images/greenbtn-select.png);
    width:124px;
    height:30px;
}

label > input:checked + span:before {
    content: url("http://www.morecleanenergy.com/graphics/mass/images/orangebtn-selected.png");
    display:block;
}

【讨论】:

  • 实际上我刚刚意识到它仍在做同样的事情。单击后它只会变为橙色的选定按钮。 :( 我需要蓝色更改为 bluebtn-selected,橙色更改为 orangebtn-selected,绿色更改为 greenbtn-selected。
  • 我想通了,只需要添加跨度类
  • jsfiddle.net/vjp9f7L2/5 更改每个跨度的类 span.check-blue:before
【解决方案2】:

您可以使用 Javascript 并为每个按钮注册一个点击事件。像这样的东西;

jQuery

$('button1').click(function(){
   //do necessary changes
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-21
    • 2017-04-19
    • 2017-01-16
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2015-08-30
    • 2020-08-17
    相关资源
    最近更新 更多