展会信息港展会大全

CSS定义Radio单选项和Checkbox复选框样式
来源:互联网   发布日期:2016-03-25 16:28:13   浏览:3339次  

导读:我们都知道一般情况利用css来定义Radio单选项和Checkbox复选框样式是无效的,下面我来给大家介绍利用CSS定义Radio单选项和Checkbox复选框样式,有需要了解的朋友可参考。...

我们都知道一般情况利用css来定义Radio单选项和Checkbox复选框样式是无效的,下面我来给大家介绍利用CSS定义Radio单选项和Checkbox复选框样式,有需要了解的朋友可参考。

完全使用css来实例

代码如下

复制代码

<style type=”text/css”>

form#form1 {font:12px tahoma,sans-serif}

input[type="checkbox"] {visibility:hidden;width:0;height:0;margin:0;padding:0;}

input[type="checkbox"]+label {background:url(checkstyle.gif) no-repeat;padding-left:18px;color:#ccc;}

input[type="checkbox"]+label:hover {color:#369;background-position:0 -16px;}

input[type="checkbox"]:checked+label {color:#000;background-position:0 -48px;}

input[type="checkbox"]:focus+label {color:#963;background-position:0 -32px;}

input[type="radio"] {visibility:hidden;width:0;height:0;margin:0;padding:0;}

input[type="radio"]+label {background:url(checkstyle.gif) no-repeat 0 -64px;padding-left:18px;color:#ccc;}

input[type="radio"]+label:hover {color:#369;background-position:0 -80px;}

input[type="radio"]:checked+label {color:#000;background-position:0 -112px;}

input[type="radio"]:focus+label {color:#963;background-position:0 -96px;}

</style>

利用js来实例

Html代码

代码如下

复制代码

<!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

<meta http-equiv=”content-type” content=”text/html; charset=utf-8″>

<link rel=”stylesheet” href=”css/screensmall.css” type=”text/css” media=”screen”>

</head>

<body bgcolor=#000000>

<div class=’section demo’>

<form action=” onsubmit=’void(0)’>

<h3 style=”color:#ffffff”>Checkboxes</h3>

<div>

<label><input type=”checkbox” checked=”checked”> I’m a fancy cross-browser styled checkbox</label>

<div class=’leftcol’>

<label><input type=”checkbox”> This is a checkbox</label>

<label><input type=”checkbox” checked=”checked”> This is a checkbox</label>

<label><input type=”checkbox”> This is a checkbox</label>

</div>

<div class=’rightcol’>

<label><input type=”checkbox” checked=”checked”> This is a checkbox</label>

<label><input type=”checkbox”> This is a checkbox</label>

<label><input type=”checkbox” checked=”checked”> This is a checkbox</label>

</div>

<label><input type=”checkbox” checked=”checked”> Apply any CSS styles for different states</label>

</div>

<h3 style=”color:#ffffff”>Radio buttons</h3>

<div class=’leftcol’>

<label><input type=”radio” name=’leftcol’> This is a radio button</label>

<label><input type=”radio” checked=”checked” name=’leftcol’> This is a radio button</label>

<label><input type=”radio” name=’leftcol’> This is a radio button</label>

</div>

<div class=’rightcol’>

<label><input type=”radio” name=’rightcol’> This is a radio button</label>

<label><input type=”radio” checked=”checked” name=’rightcol’> This is a radio button</label>

<label><input type=”radio” name=’rightcol’> This is a radio button</label>

</div>

<input type=”reset” value=”Reset Form” style=’margin:1em;height:2.5em;background:#222;float:right;color:#fff’>

</form>

</div>

<script type=”text/javascript” src=”js/mootools.js”></script>

<script type=”text/javascript” src=”js/moocheck.js”></script>

</body>

</html>

Js代码

var FancyForm = {

start: function(elements, options){

FancyForm.initing = 1;

if($type(elements)!=’array’) elements = $$(‘input’);

if(!options) options = [];

FancyForm.onclasses = ($type(options['onClasses']) == ’object’) ? options['onClasses'] : {

checkbox: ’checked’,

radio: ’selected’

}

FancyForm.offclasses = ($type(options['offClasses']) == ’object’) ? options['offClasses'] : {

checkbox: ’unchecked’,

radio: ’unselected’

}

if($type(options['extraClasses']) == ’object’){

FancyForm.extra = options['extraClasses'];

} else if(options['extraClasses']){

FancyForm.extra = {

checkbox: ’f_checkbox’,

radio: ’f_radio’,

on: ’f_on’,

off: ’f_off’,

all: ’fancy’

}

} else {

FancyForm.extra = {};

}

FancyForm.onSelect = $pick(options['onSelect'], function(el){});

FancyForm.onDeselect = $pick(options['onDeselect'], function(el){});

var keeps = [];

FancyForm.chks = elements.filter(function(chk){

if( $type(chk) != ’element’ ) return false;

if( chk.get(‘tag’) == ’input’ && (FancyForm.onclasses[chk.getProperty('type')]) ){

var el = chk.getParent();

if(el.getElement(‘input’)==chk){

el.type = chk.getProperty(‘type’);

el.inputElement = chk;

this.push(el);

} else {

chk.addEvent(‘click’,function(f){

if(f.event.stopPropagation) f.event.stopPropagation();

});

}

} else if( (chk.inputElement = chk.getElement(‘input’)) && (FancyForm.onclasses[(chk.type = chk.inputElement.getProperty('type'))]) ){

return true;

}

return false;

}.bind(keeps));

FancyForm.chks = FancyForm.chks.combine(keeps);

keeps = null;

FancyForm.chks.each(function(chk){

var c = chk.inputElement;

c.setStyle(‘position’, ’absolute’);

c.setStyle(‘left’, ’-9999px’);

chk.addEvent(‘selectStart’, function(f){f.stop()});

chk.name = c.getProperty(‘name’);

FancyForm.update(chk);

});

FancyForm.chks.each(function(chk){

var c = chk.inputElement;

chk.addEvent(‘click’, function(f){

f.stop(); f.type = ’prop’;

c.fireEvent(‘click’, f, 1);

});

chk.addEvent(‘mousedown’, function(f){

if($type(c.onmousedown) == ’function’)

c.onmousedown();

f.preventDefault();

});

chk.addEvent(‘mouseup’, function(f){

if($type(c.onmouseup) == ’function’)

c.onmouseup();

});

c.addEvent(‘focus’, function(f){

if(FancyForm.focus)

chk.setStyle(‘outline’, ’1px dotted’);

});

c.addEvent(‘blur’, function(f){

chk.setStyle(‘outline’, 0);

});

c.addEvent(‘click’, function(f){

if(f.event.stopPropagation) f.event.stopPropagation();

if(c.getProperty(‘disabled’)) // c.getStyle(‘position’) != ’absolute’

return;

if (!chk.hasClass(FancyForm.onclasses[chk.type]))

c.setProperty(‘checked’, ’checked’);

else if(chk.type != ’radio’)

c.setProperty(‘checked’, false);

if(f.type == ’prop’)

FancyForm.focus = 0;

FancyForm.update(chk);

FancyForm.focus = 1;

if(f.type == ’prop’ && !FancyForm.initing && $type(c.onclick) == ’function’)

c.onclick();

});

c.addEvent(‘mouseup’, function(f){

if(f.event.stopPropagation) f.event.stopPropagation();

});

c.addEvent(‘mousedown’, function(f){

if(f.event.stopPropagation) f.event.stopPropagation();

});

if(extraclass = FancyForm.extra[chk.type])

chk.addClass(extraclass);

if(extraclass = FancyForm.extra['all'])

chk.addClass(extraclass);

});

FancyForm.initing = 0;

$each($$(‘form’), function(x) {

x.addEvent(‘reset’, function(a) {

window.setTimeout(function(){FancyForm.chks.each(function(x){FancyForm.update(x);x.inputElement.blur()})}, 200);

});

});

},

update: function(chk){

if(chk.inputElement.getProperty(‘checked’)) {

chk.removeClass(FancyForm.offclasses[chk.type]);

chk.addClass(FancyForm.onclasses[chk.type]);

if (chk.type == ’radio’){

FancyForm.chks.each(function(other){

if (other.name == chk.name && other != chk) {

other.inputElement.setProperty(‘checked’, false);

FancyForm.update(other);

}

});

}

if(extraclass = FancyForm.extra['on'])

chk.addClass(extraclass);

if(extraclass = FancyForm.extra['off'])

chk.removeClass(extraclass);

if(!FancyForm.initing)

FancyForm.onSelect(chk);

} else {

chk.removeClass(FancyForm.onclasses[chk.type]);

chk.addClass(FancyForm.offclasses[chk.type]);

if(extraclass = FancyForm.extra['off'])

chk.addClass(extraclass);

if(extraclass = FancyForm.extra['on'])

chk.removeClass(extraclass);

if(!FancyForm.initing)

FancyForm.onDeselect(chk);

}

if(!FancyForm.initing)

chk.inputElement.focus();

},

all: function(){

FancyForm.chks.each(function(chk){

chk.inputElement.setProperty(‘checked’, ’checked’);

FancyForm.update(chk);

});

},

none: function(){

FancyForm.chks.each(function(chk){

chk.inputElement.setProperty(‘checked’, false);

FancyForm.update(chk);

});

}

};

window.addEvent(‘domready’, function(){

FancyForm.start();

});

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港