//新浪下拉菜单简化版 以及新添元素
//----------style--------------------------- .ul, /* li { list-style: none; } */
a {
text-decoration: none;
}
.nav {
display: flex;
width: 100%;
/* height: 30px; */
/* background-color: red; */
}
.nav li {
flex: 1;
/* height: 100%; */
line-height: 40px;
/* border:1px solid #fecc5b; */
}
.nav li a {
width: 100%;
display: inline-block;
margin: 0 auto;
text-align: center;
color: #333;
}
.nav li a:hover {
background-color: #eee;
}
.nav .con {
display: none;
width: 100%;
/* display: flex; */
justify-content: center;
flex-direction: column;
align-items: center;
margin-left: -13%;
}
.nav .con li {
width: 100%;
height: 100%;
border-left: 1px solid #fecc5b;
border-bottom: 1px solid #fecc5b;
}
.nav .con li a {
width: 100%;
display: inline-block;
margin: 0 auto;
text-align: center;
color: #333;
}
------------------style------------------------
------------------body-------------------------
-------------------------script------------------------
// 新浪下拉菜单案例
var nav = document.querySelector('.nav');
var lis = nav.children;//得到四个li
for (var i = 0; i < lis.length; i++) {
lis[i].onmouseover = function() {
this.children[1].style.display = 'block';
}
lis[i].onmouseout = function () {
this.children[1].style.display = 'none';
}
}
// // 兄弟节点
// console.log(element.nextSibling);
var div = document.querySelector('div');
console.log(div.nextSibling); //获取下一个任意类型的兄弟节点
console.log(div.previousSibling);//获取上一个任意类型的兄弟节点
console.log(div.nextElementSibling); //获取下一个元素类型的兄弟节点(IE9以上才支持)
console.log(div.previousElementSibling);//获取上一个兄弟元素节点(IE9以上才支持)
// 需解决兼容性问题需要封装兼容性函数 (如下)
function getNextElementSibling(element) {
var el = element;
while (el = el.nextSibling) {
if (el.nodeType === 1)
return el;
}
return null;
}
// 创建节点
var li = document.createElement('li');
// 添加节点 node.appendChild(child) node是父级 child是子级 类似数组中的push与css中的after伪元素
var ul = document.querySelector('ul');
ul.appendChild(li);
// 添加节点 node.insertBefore(child,指定元素) 在第一个头部添加 先创建再添加
var lili = document.createElement('li');
ul.insertBefore(lili,ul.children[0]);
-------------------script----------------------------------- -------------------body-------------------------------------