还有没有要优化的地方

来源:4-4 自由编程

福徐贵

2020-11-18 17:38:46

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

test.css
.header-container {
background: #fff;
border: 1px solid #dadada;
}

.header-logo-container,
.header-nav-container,
.header-btn-container {
height: 64px;
}

.header-logo-container {
display: flex;
justify-content: center;
}

.header-logo {
width: 200px;
height: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
}

.btn-toggle {
padding: 20px;
border: none;
cursor: pointer;
height: 64px;
background-color: red;
border-radius: 0px 80px 0px 0px;
}

.btn-toggle-bar {
display: block;
width: 24px;
height: 4px;
background-color: #fff;
border-radius: 3px;
}

.btn-toggle-bar+.btn-toggle-bar {
margin-top: 2px;
}

.btn-toggle:hover .btn-toggle-bar {
background-color: #1428a0;
}

.header-nav,
.header-nav-item,
.header-nav-link {
height: 100%;
}

.header-nav {
display: flex;
justify-content: flex-start;
font-size: 90px;
}

.header-nav-item {
margin-left: 24px;
}

.header-nav-link {
display: flex;
align-items: center;
font-weight: bold;
}

.nav-link {
display: block;
width: 100%;
background: rgb(225, 225, 225);
border-bottom: 1px solid #dadada;
}

.nav-container {
height: 0;
overflow: hidden;
transition: height 0.5s;
position: relative;
top: -1px;
}

.nav-link {
height: 20px;
}

.nav-container-extended {
height: 61px;
top: 0px;
}



base.css
* {
box-sizing: border-box;
padding: 0;
margin: 0;
}

body {
font-size: 14px;
}

li {
list-style: none;
}

a {
font-size: 14px;
color: #363636;
text-decoration: none;
}

a:hover {
color: #1428a0;
}

img {
vertical-align: top;
width: 100%;
border: none;
}


test.html

​<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>自适应布局</title>
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/grid.css">
<link rel="stylesheet" href="css/test.css">
</head>

<body>
<header class="header-container">
<div class="container">
<div class="row">
<div class="header-btn-container col-4 d-md-none">
<div class="header-btn">
<button type="button" class="btn-toggle" id="btn-toggle">
<span class="btn-toggle-bar"></span>
<span class="btn-toggle-bar"></span>
</button>
</div>
</div>
<nav class="header-nav-container d-none col-md-4 d-md-block">
<ul class="header-nav">
<li class="header-nav-item">
<a href="###" class="header-nav-link">首页</a>
</li>
<li class="header-nav-item">
<a href="###" class="header-nav-link">关于</a>
</li>
<li class="header-nav-item">
<a href="###" class="header-nav-link">商业合作</a>
</li>
</ul>
</nav>
<div class="header-logo-container col-8">
<a href="test.html" class="header-logo">
<img src="./img/logo2.png" alt="logo">
</a>
</div>
</div>
</div>
</header>
<nav class="nav-container" id="nav">
<ul class="container">
<li>
<a href="###" class="nav-link">首页</a>
</li>
<li>
<a href="###" class="nav-link">关于</a>
</li>
<li>
<a href="###" class="nav-link">商业合作</a>
</li>
</ul>
</nav>
<script>
const btnToggle = document.querySelector('#btn-toggle');
const navExtendedClassName = 'nav-container-extended';
const nav = document.querySelector('#nav');
btnToggle.addEventListener('click', function () {
if (nav.classList.contains(navExtendedClassName)) {
nav.classList.remove(navExtendedClassName)
} else {
nav.classList.add(navExtendedClassName)
}
})
</script>
</body>

</html>


写回答

1回答

好帮手慕码

2020-11-18

同学你好,效果实现了。但是效果视频中,左侧导航是固定在左侧的,效果与此不符:

http://img.mukewang.com/climg/5fb4f51c09ba90c909430086.jpg

所以,在代码中建议去掉container这个类名:

http://img.mukewang.com/climg/5fb4f5b50974e24c09080441.jpg

同学可以根据这个思路继续优化。祝学习愉快~

0

0 学习 · 6815 问题

查看课程