如何使用jQuery创建切换按钮?我需要Word中的“B”,“I”,“U”等按钮和其他文本编辑器。
答案 0 :(得分:2)
查看this JSFiddle code是否可以帮助您。
<p><b>Disclaimer:</b> Due to a webkit bug involving pseudo classes and sibling selectors this may not work in some webkit-based browsers.</p>
<p>Here's our finished toggle button.</p>
<label id="label">
<input type="checkbox" id="checkbox" />
<span id="off">Off</span>
<span id="on">On</span>
</label>
<p>Here's how we build it. First you start off with a label containing a checkbox and two spans.</p>
<label id="label">
<input type="checkbox" />
<span>Off</span>
<span>On</span>
</label>
<p>Simple and not much to look at. Let's style those two spans to look like buttons and hide the checkbox.</p>
<label id="label">
<input type="checkbox" id="checkbox" />
<span id="off">Off</span>
<span id="on" style="display:block;">On</span>
</label>
<p>Now, the key is to hide the "On" span initially with "display: none;". Then we show it when the checkbox is checked while hiding the "Off" span at the same time. This is done with this CSS:</p>
<pre>
#checkbox:checked + #off {
display: none;
}
#checkbox:checked + #off + #on {
display: block;
}
</pre>
<p>So, when the checkbox is checked we are targeting its sibling "off" and we are also targeting the sibling of the checkbox's sibling which is "on".</p>
<p>At this point you could use server-side code or javascript to react to the hidden checkbox being checked just like you would with a normal checkbox.</p>
p {
margin: 10px;
}
pre {
margin: 10px;
}
#label {
cursor: pointer;
display: block;
margin: 20px auto;
width: 200px;
}
#checkbox {
display: none;
}
#checkbox:checked + #off {
display: none;
}
#checkbox:checked + #off + #on {
display: block;
}
#off {
background: #ff3019;
background: -moz-linear-gradient(top, #ff3019 0%, #cf0404 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff3019), color-stop(100%,#cf0404));
background: -webkit-linear-gradient(top, #ff3019 0%,#cf0404 100%);
background: -o-linear-gradient(top, #ff3019 0%,#cf0404 100%);
background: -ms-linear-gradient(top, #ff3019 0%,#cf0404 100%);
background: linear-gradient(top, #ff3019 0%,#cf0404 100%);
border: 2px solid #cf0404;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
color: white;
display: block;
font: 1em "Amaranth", sans-serif;
padding: 4px 10px;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
user-select: none;
}
#on {
background: #b4ddb4;
background: -moz-linear-gradient(top, #b4ddb4 0%, #83c783 17%, #52b152 33%, #008a00 67%, #005700 83%, #002400 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b4ddb4), color-stop(17%,#83c783), color-stop(33%,#52b152), color-stop(67%,#008a00), color-stop(83%,#005700), color-stop(100%,#002400));
background: -webkit-linear-gradient(top, #b4ddb4 0%,#83c783 17%,#52b152 33%,#008a00 67%,#005700 83%,#002400 100%);
background: -o-linear-gradient(top, #b4ddb4 0%,#83c783 17%,#52b152 33%,#008a00 67%,#005700 83%,#002400 100%);
background: -ms-linear-gradient(top, #b4ddb4 0%,#83c783 17%,#52b152 33%,#008a00 67%,#005700 83%,#002400 100%);
background: linear-gradient(top, #b4ddb4 0%,#83c783 17%,#52b152 33%,#008a00 67%,#005700 83%,#002400 100%);
border: 2px solid #002400;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
color: white;
display: none;
font: 1em "Amaranth", sans-serif;
padding: 4px 10px;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
user-select: none;
}
答案 1 :(得分:1)
jQuery UI提供了为复选框呈现的按钮。请参阅此解决方案:http://jqueryui.com/demos/button/#checkbox