Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS样式复选框_Css_Checkbox - Fatal编程技术网

CSS样式复选框

CSS样式复选框,css,checkbox,Css,Checkbox,好的,我在网上看到了很多通过CSS设置复选框样式的解决方案。然而,我正在寻找一些稍微更强大的,我想知道是否有人可以帮助。基本上,我想有,但有能力有一个CSS指定的颜色覆盖一个灰色复选框。我需要这个,因为我将有不可预测的不同复选框数量,每个复选框需要不同的颜色,我不想创建大量不同的图像来处理这个问题。有人对如何实现这一点有什么想法吗?听起来您已经知道了这一点,但您上面链接的解决方案实际上是用带有图像的span标记替换复选框,以产生“样式化”复选框的效果 对于大多数浏览器,如IE和Firefox,只

好的,我在网上看到了很多通过CSS设置复选框样式的解决方案。然而,我正在寻找一些稍微更强大的,我想知道是否有人可以帮助。基本上,我想有,但有能力有一个CSS指定的颜色覆盖一个灰色复选框。我需要这个,因为我将有不可预测的不同复选框数量,每个复选框需要不同的颜色,我不想创建大量不同的图像来处理这个问题。有人对如何实现这一点有什么想法吗?

听起来您已经知道了这一点,但您上面链接的解决方案实际上是用带有图像的span标记替换复选框,以产生“样式化”复选框的效果


对于大多数浏览器,如IE和Firefox,只有很少(如果有的话)选项,而且很少支持仅使用CSS设置复选框的样式。

我创建了一个透明的png,外部为白色,复选框部分透明。我修改了代码,在元素上添加了背景色,瞧!,彩色复选框

(上面写着jpg,但它是png)

我会发布这个例子,但我不知道有什么好方法来展示它。有没有好的沙箱站点

当然,这取决于png支持。如果使用gif,您可能会做得很差,或者像您建议的那样在图像上放置一个半透明的css层,然后使用gif遮罩遮住彩色框的出血。此方法假定支持透明性

我的png方法使用链接到的页面中的css、js和以下更改:

JS:

CSS:

HTML:

(绿色)

(红色)

(紫色)

希望这是有道理的

编辑:

下面是一个jQuery示例,它用复选框说明了原理:


Jeff B关于如何编辑所述解决方案的回答是正确的。如果有人需要复制和粘贴,下面是他的编辑解决方案的实现

JavaScript

CSS

我找到了
适用于win ie、win和mac的javascript+css解决方案:chrome、safari、firefox和opera。iOS Safari和chrome。

我希望这在所有浏览器中都一样简单,而不仅仅是在MobileSafari:'(这也是我的经验。是的,我知道他们在做什么。我只是希望我可以用一个图像替换复选框,如示例中所示,但然后在图像上覆盖一种颜色,将其着色为特定的颜色,这样我就不必创建一堆不同颜色的图像,如果这有意义的话。太棒了!这看起来像我所看到的oking for。我会尝试一下,然后再与您联系!嗨,Sebastian,欢迎来到Stackoverflow!感谢您添加此答案:它看起来很有用。但是,如果您的答案不仅仅是链接,那就太好了。简单介绍一下解决方案的工作原理/使用方法将为您的答案添加很多内容。
    // Changed all instances of '== "styled"' to '.search(...)' 
    // to handle the additional classes needed for the colors (see CSS/HTML below)
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className.search(/^styled/) != -1) {

    span[a] = document.createElement("span");

            // Added '+ ...' to this line to handle additional classes on the checkbox
    span[a].className = inputs[a].type + inputs[a].className.replace(/^styled/, "");
 .checkbox, .radio {
    width: 19px;
    height: 25px;
    padding: 0px; /* Removed padding to eliminate color bleeding around image
       you could make the image wider on the right to get the padding back */
    background: url(checkbox2.png) no-repeat;
    display: block;
    clear: left;
    float: left;
 }

 .green {
    background-color: green;
 }

 .red {
    background-color: red;
 }

 etc...
<p><input type="checkbox" name="1" class="styled green"/> (green)</p>
<p><input type="checkbox" name="2" class="styled red" /> (red)</p>
<p><input type="checkbox" name="3" class="styled purple" /> (purple)</p>