JSFiddle - React, Tailwind, and code Playground
by 891006
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title></title>
<link rel="stylesheet" href="common.css" />
<style type="text/css">
a{text-decoration:none;}
ul,li{list-style-type:none;}
.menu{padding:30px;}
.menu>li{float:left;background:#eee;border:2px #33b5e5 solid;width:100px;height:30px;line-height:30px;text-align:center;margin-left:-2px;}
.menu>li:hover{background:white;}
.menu li ul{width:100%;border:2px #09c solid;margin-left:-2px;}
.menu li ul li:hover{background:#eee;}
</style>
<script type="text/javascript" src="menu.js"></script>
</head>
<body>
<ul class="menu">
<li><a href="#">菜单</a>
<ul class="drop child_01">
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
</ul>
</li>
<li><a href="#">菜单</a>
<ul class="drop">
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
</ul>
</li>
<li><a href="#">菜单</a>
<ul class="drop">
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
<li><a href="#">子菜单</a></li>
</ul>
</li>
<li><a href="#">菜单</a>
<ul class="drop">
<li><a...
CSS
/* CSS Document */
/* CSS Reset */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td,table{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-size:normal;}
ol,ul{list-style:}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
q:before,q:after{content:"";}
abbr,acroonym{border:0;}
address{font-style:normal;}
/* basic common CSS */
/* font */
.f_12{font-size:12px;}
.f_14{font-size:14px;}
.f_16{font-size:16px;}
.fw_n{font-weight:normal;}
.ti_2{text-indent:2em;}
/* position */
.p_r{position:relative;}
.p_a{position:absolute;}
.f_l{float:left;}
.f_r{float:right;}
.ta_c{text-align:center;}
.c_b{clear:both;}
.c_l{clear:left;}
.c_r{clear:right;}
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}*html .clearfix{height:1%;display:inline-block;}/* hack */
.zoom{zoom:1;}
.hidden{visibility:hidden;}
.none{display:none;}
.block{display:block;}
.inline{display:inline;}
.baseline{vertical-align:baseline;}
/* 长宽 */
.w_100{width:100%;}
JavaScript
/*
* DOM Manipulation Functions
*
*/
/*
*$():
*获取一个或者一组DOM节点,可传入参数为id或者DOM节点,支持多个参数的传递。
*/
function $(){
var elems = [];
for(var i = 0; i < arguments.length; i++){
var elem = arguments[i];
if(typeof elem == "string"){
elem = document.getElementsById(elem);
}
if(arguments.length == 1){
return elem;
}else{
elems.push(elem);
}
}
return elems;
}
function camlize(prop){
return prop.replace(/\-(\w)/g,function(strMatch,p1){
return p1.toUpperCase();
});
}
function uncamlize(prop,sep){
return prop.replace(/[A-Z]/g,function(strMatch){
return ((sep?sep:"-") + strMatch.toLowerCase());
})
}
/*
* arguments:
*
*
*/
function getStyle(elem,props,pseudoEl){
var styles = {};
if(elem.currentStyle){
for(var i = 0; i < props.length; i++){
if(!(styles[props[i]] = elem.currentStyle[props[i]])) continue;
}
}
if(window.getComputedStyle){
for(var i = 0; i < props.length; i++){
if(!(styles[props[i]] = window.getComputedStyle(elem,pseudoEl).getPropertyValue(props[i]))) continue;
}
}
return styles;
}
function setStyleById(elem,styles){
if(!(elem = $(elem))) return false;
for(var prop in styles){
if(!styles.hasOwnProperty(prop)) continue;
if(elem.style.setProperty){
elem.style.setProperty(camlize(prop),styles[prop],'important');
//console.log(camlize(prop));
}else{
elem.style[camelize(prop)] = styles[prop];
}
}
}
function setStyleByClassName(className,styles){
if(!(elems = getByClassName(className))) return false;
for(var i = 0; i < elems.length; i++){
setStyleById(elems[i],styles);
}
}
function getChildren(elem){
var elems = [];
for(var i = 0,children = elem.childNodes, len = children.length; i < len; i ++){
if (children[i].nodeType...