重新设计 bootstrap 中的复选框 3
Re-styling a checkbox in bootstrap 3
我在尝试为 bootstrap 中的复选框设置样式时遇到了困难,我目前有默认复选框,我需要将其设置为如下所示
我知道这张图是圆的,但设计师犯了一个错误,所以不是圆的,它仍然需要是方形的
我查看了以下内容并尝试了建议的内容。
Twitter Bootstrap radio/checkbox
另一方面,我确实找到了一个网站,它的风格与我想要实现的风格相似,它位于此处,位于您进行过滤的左侧
我尝试使用 firebug 来 get/check 出 CSS 但我无法获得 CSS.
因此,如果您不需要对 IE8 的支持,您可以仅使用背景图像和 CSS 中的 :checked 选择器轻松实现。我使用了 svg 图片,但你可以使用字体、sprite 或只使用两张图片。
@import "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css";
body {
background-color:#f5e1c6;
}
.image-checkbox {
position: absolute;
left: 100%;
visibility: hidden;
}
.image-checkbox-label {
height: 50px;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 96 84" enable-background="new 0 0 96 84" xml:space="preserve"><path fill="rgb(213,195,170)" d="M74.2,73.5H19.5c-2.8,0-5.1-2.3-5.1-5.1V15.6c0-2.8,2.3-5.1,5.1-5.1h54.7c2.8,0,5.1,2.3,5.1,5.1 v52.7C79.3,71.2,77,73.5,74.2,73.5z"/></svg>') no-repeat;
color: #7b7163;
}
.image-checkbox:checked + .image-checkbox-label {
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 96 84" enable-background="new 0 0 96 84" xml:space="preserve"><path fill="rgb(213,195,170)" d="M74.2,73.5H19.5c-2.8,0-5.1-2.3-5.1-5.1V15.6c0-2.8,2.3-5.1,5.1-5.1h54.7c2.8,0,5.1,2.3,5.1,5.1 v52.7C79.3,71.2,77,73.5,74.2,73.5z"/><polygon id="check" fill="rgb(251,253,223)" points="30.2,31.8 30.2,43 46.1,54 80.1,19.1 80.1,6.1 46.4,44.7 "/></svg>') no-repeat;
color: #c3b39c;
}
.checkbox label {
padding-left: 60px;
line-height: 50px;
font-weight: bold;
font-size: 2em;
}
<div class="container">
<div class="row">
<div class="col-xs-12">
<form>
<div class="form">
<div class="checkbox">
<input id="remember-me" type="checkbox" class="image-checkbox" />
<label for="remember-me" class="image-checkbox-label">
Remember Me
</label>
</div>
</div>
</form>
</div>
</div>
</div>
工作原理
给输入一个id,这样你就可以在标签上使用for
属性。不要忘记让您的 ID 独一无二。给输入一个 class(我用的是 .image-checkbox
),然后定位输入,使其隐藏在屏幕外但仍显示。
使用背景图像为未选中框样式设置标签样式。使用 :checked 伪选择器和兄弟选择器 (+
),您可以确定选择输入时标签的样式。在这种情况下,我将背景图片更改为选中的图片并更改了字体颜色。
为了让实际的标签文本很好地对齐,我还覆盖了 .checkbox label
的一些默认 Bootstrap 样式。您可以根据需要调整它们。
我在尝试为 bootstrap 中的复选框设置样式时遇到了困难,我目前有默认复选框,我需要将其设置为如下所示 我知道这张图是圆的,但设计师犯了一个错误,所以不是圆的,它仍然需要是方形的
我查看了以下内容并尝试了建议的内容。
Twitter Bootstrap radio/checkbox
另一方面,我确实找到了一个网站,它的风格与我想要实现的风格相似,它位于此处,位于您进行过滤的左侧
我尝试使用 firebug 来 get/check 出 CSS 但我无法获得 CSS.
因此,如果您不需要对 IE8 的支持,您可以仅使用背景图像和 CSS 中的 :checked 选择器轻松实现。我使用了 svg 图片,但你可以使用字体、sprite 或只使用两张图片。
@import "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css";
body {
background-color:#f5e1c6;
}
.image-checkbox {
position: absolute;
left: 100%;
visibility: hidden;
}
.image-checkbox-label {
height: 50px;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 96 84" enable-background="new 0 0 96 84" xml:space="preserve"><path fill="rgb(213,195,170)" d="M74.2,73.5H19.5c-2.8,0-5.1-2.3-5.1-5.1V15.6c0-2.8,2.3-5.1,5.1-5.1h54.7c2.8,0,5.1,2.3,5.1,5.1 v52.7C79.3,71.2,77,73.5,74.2,73.5z"/></svg>') no-repeat;
color: #7b7163;
}
.image-checkbox:checked + .image-checkbox-label {
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 96 84" enable-background="new 0 0 96 84" xml:space="preserve"><path fill="rgb(213,195,170)" d="M74.2,73.5H19.5c-2.8,0-5.1-2.3-5.1-5.1V15.6c0-2.8,2.3-5.1,5.1-5.1h54.7c2.8,0,5.1,2.3,5.1,5.1 v52.7C79.3,71.2,77,73.5,74.2,73.5z"/><polygon id="check" fill="rgb(251,253,223)" points="30.2,31.8 30.2,43 46.1,54 80.1,19.1 80.1,6.1 46.4,44.7 "/></svg>') no-repeat;
color: #c3b39c;
}
.checkbox label {
padding-left: 60px;
line-height: 50px;
font-weight: bold;
font-size: 2em;
}
<div class="container">
<div class="row">
<div class="col-xs-12">
<form>
<div class="form">
<div class="checkbox">
<input id="remember-me" type="checkbox" class="image-checkbox" />
<label for="remember-me" class="image-checkbox-label">
Remember Me
</label>
</div>
</div>
</form>
</div>
</div>
</div>
工作原理
给输入一个id,这样你就可以在标签上使用for
属性。不要忘记让您的 ID 独一无二。给输入一个 class(我用的是 .image-checkbox
),然后定位输入,使其隐藏在屏幕外但仍显示。
使用背景图像为未选中框样式设置标签样式。使用 :checked 伪选择器和兄弟选择器 (+
),您可以确定选择输入时标签的样式。在这种情况下,我将背景图片更改为选中的图片并更改了字体颜色。
为了让实际的标签文本很好地对齐,我还覆盖了 .checkbox label
的一些默认 Bootstrap 样式。您可以根据需要调整它们。