再看!如何?!优化有?!
来源:4-4 自由编程
Sherlock_bourne
2019-06-14 19:25:22
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>响应式布局仿案例</title> <link rel="stylesheet" href="css/base.css"> <link rel="stylesheet" href="css/grid.css"> <link rel="stylesheet" href="css/index.css"> </head> <body> <header class="header-container"> <div class="container"> <div class="row"> <!-- d-sm-none小屏及以上消失 --> <div class="header-btn-container col-5 d-sm-none"> <button class="header-btn" id="btn" type="button"> <span class="btn-toggle-bar"></span> <span class="btn-toggle-bar"></span> </button> </div> <!-- d-none超小屏消失,d-sm-block小屏及以上显示出来 --> <div class="header-nav-container col-sm-5 d-none d-sm-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> </div> <!-- 超小屏时是7格,小屏7格 --> <div class="header-logo-container col-7 col-sm-7"> <a href="/4-4我的.html" class="header-logo"> <img src="img/logo.png" alt="cellphone"> </a> </div> </div> </div> </header> <div class="nav-container d-sm-none .nav-container-extended" id="nav"> <ul class="container"> <li><a href="javascript:;" class="nav-link">首页</a></li> <li><a href="javascript:;" class="nav-link">关于</a></li> <li><a href="javascript:;" class="nav-link">商业合作</a></li> </ul> </div> </body> </html>
index.css
/*布局tart*/
/*上午6点-11点,5个小时没整出来,越搞越乱,没一点思路。
中午好生的休息了会,决定只保留HTML部分,剩余全部重写,
配合控制台调试。1点半到现在,2个小时,整出来了~!*/
/*header*/
.header-container{
background-color: #fff;
border-bottom: 1px solid #dadada;
min-width: 348px;
}
.header-logo-container,
.header-btn-container,
.header-nav-container{
height: 60px;
}
.header-btn-container{
/*需要兼容*/
display: flex;
/*终点对齐,也就是右对齐(默认是flex-start)*/
justify-content: flex-start;
align-items: start;
overflow: hidden;
}
.header-btn{
position: relative;
width: 120px;
height: 200%;
border-radius: 50%;
/*因为container的padding-lef有15*/
margin-left: -75px;
border: none;
outline: none;
background: #f01414;
cursor: pointer;
}
/*nav*/
/*.nav-container{
height: 0;
overflow: hidden;
}*/
.nav-container-extended{
height:200px;
}
ul.container{
padding-left: 0;
padding-right: 0;
}
.container>li{
background: rgba(200,200,200,.8);
border-bottom: 1px solid rgba(150,150,150,.5);
/*设置ul.container的左右填充为0也行*/
/*margin: 0 -15px;*/
height: 2em;
/*直接高,行高也能居中*/
/*line-height: 2em;*/
/*讲案例时老师说弹性布局加在a上,鬼扯!*/
display: flex;
align-items: center;
}
.container li a{
margin:0 15px;
}
/*.container li:first-child{
border-bottom: 0;
}
.container li:nth-child(2){
border-bottom: 0;
}*/
/*布局end*/
/*组件start*/
/*横条*/
.btn-toggle-bar {
display: block;
width: 25px;
height: 2px;
background-color: #fff;
border-radius: 2px;
position: relative;
top: -14px;
margin-top: -25px;
left: 75px;
}
/*兄弟选择器,找名叫.btn-toggle-bar,
且前面还有一个叫.btn-toggle-bar 的兄弟节点*/
/*也就是设置span后面的span的样式,上边距为4px,
如果都设,第一个也会有上边距4px。
设置的第二个和三个span的上边距,
因为第一个和第二个span元素后面才有兄弟span。*/
.btn-toggle-bar + .btn-toggle-bar {
margin-top: 10px;
}
/*组件end*/
/*内容start*/
/*header*/
.header-logo {
/*垂直居中两行代码*/
display: flex;
align-items: center;
/*不让跟随变化,给固定值*/
width: 150px;
/*和容器一样高*/
height: 100%;
}
.header-nav,
.header-nav-item,
.header-nav-link {
height: 100%;
}
.header-nav {
/*父容器只能影响子内容
故此处影响不了a标签里面的文字右对齐*/
display: flex;
justify-content: flex-start ;
font-size: 14px;
}
/*.header-nav-item:first-child {
margin-left: 0;
}*/
.header-nav-link {
display: flex;
align-items: center;
font-weight: bold;
}
/*内容end*/grid.css
.container {
width: 100%;
padding-left: 15px;
padding-right: 15px;
margin-left: auto;
margin-right: auto;
}
/*sm*/
@media (min-width: 576px) {
.container {
/*width: 540px;*/
}
}
/*md*/
@media (min-width: 768px) {
.container {
/*width: 720px;*/
}
}
/*lg*/
@media (min-width: 992px) {
.container {
/*width: 960px;*/
}
}
/*xl*/
@media (min-width: 1200px) {
.container {
/*width: 1140px;*/
}
}
.row {
margin-left: -15px;
margin-right: -15px;
}
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12,
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12,
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12,
.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
position: relative;
padding-left: 15px;
padding-right: 15px;
}
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
float: left;
}
.col-1 {
width: 8.33333333%;
}
.col-2 {
width: 16.66666667%;
}
.col-3 {
width: 25%;
}
.col-4 {
width: 33.33333333%;
}
.col-5 {
width: 41.66666667%;
}
.col-6 {
width: 50%;
}
.col-7 {
width: 58.33333333%;
}
.col-8 {
width: 66.66666667%;
}
.col-9 {
width: 75%;
}
.col-10 {
width: 83.33333333%;
}
.col-11 {
width: 91.66666667%;
}
.col-12 {
width: 100%;
}
.col-offset-12 {
margin-left: 100%;
}
.col-offset-11 {
margin-left: 91.66666667%;
}
.col-offset-10 {
margin-left: 83.33333333%;
}
.col-offset-9 {
margin-left: 75%;
}
.col-offset-8 {
margin-left: 66.66666667%;
}
.col-offset-7 {
margin-left: 58.33333333%;
}
.col-offset-6 {
margin-left: 50%;
}
.col-offset-5 {
margin-left: 41.66666667%;
}
.col-offset-4 {
margin-left: 33.33333333%;
}
.col-offset-3 {
margin-left: 25%;
}
.col-offset-2 {
margin-left: 16.66666667%;
}
.col-offset-1 {
margin-left: 8.33333333%;
}
.col-offset-0 {
margin-left: 0;
}
.col-pull-12 {
right: 100%;
}
.col-pull-11 {
right: 91.66666667%;
}
.col-pull-10 {
right: 83.33333333%;
}
.col-pull-9 {
right: 75%;
}
.col-pull-8 {
right: 66.66666667%;
}
.col-pull-7 {
right: 58.33333333%;
}
.col-pull-6 {
right: 50%;
}
.col-pull-5 {
right: 41.66666667%;
}
.col-pull-4 {
right: 33.33333333%;
}
.col-pull-3 {
right: 25%;
}
.col-pull-2 {
right: 16.66666667%;
}
.col-pull-1 {
right: 8.33333333%;
}
.col-pull-0 {
right: auto;
}
.col-push-12 {
left: 100%;
}
.col-push-11 {
left: 91.66666667%;
}
.col-push-10 {
left: 83.33333333%;
}
.col-push-9 {
left: 75%;
}
.col-push-8 {
left: 66.66666667%;
}
.col-push-7 {
left: 58.33333333%;
}
.col-push-6 {
left: 50%;
}
.col-push-5 {
left: 41.66666667%;
}
.col-push-4 {
left: 33.33333333%;
}
.col-push-3 {
left: 25%;
}
.col-push-2 {
left: 16.66666667%;
}
.col-push-1 {
left: 8.33333333%;
}
.col-push-0 {
left: auto;
}
/*sm*/
@media (min-width: 576px) {
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
float: left;
}
.col-sm-1 {
width: 8.33333333%;
}
.col-sm-2 {
width: 16.66666667%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-4 {
width: 33.33333333%;
}
.col-sm-5 {
width: 41.66666667%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-7 {
width: 58.33333333%;
}
.col-sm-8 {
width: 66.66666667%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-10 {
width: 83.33333333%;
}
.col-sm-11 {
width: 91.66666667%;
}
.col-sm-12 {
width: 100%;
}
.col-sm-offset-12 {
margin-left: 100%;
}
.col-sm-offset-11 {
margin-left: 91.66666667%;
}
.col-sm-offset-10 {
margin-left: 83.33333333%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-8 {
margin-left: 66.66666667%;
}
.col-sm-offset-7 {
margin-left: 58.33333333%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-5 {
margin-left: 41.66666667%;
}
.col-sm-offset-4 {
margin-left: 33.33333333%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-2 {
margin-left: 16.66666667%;
}
.col-sm-offset-1 {
margin-left: 8.33333333%;
}
.col-sm-offset-0 {
margin-left: 0;
}
.col-sm-pull-12 {
right: 100%;
}
.col-sm-pull-11 {
right: 91.66666667%;
}
.col-sm-pull-10 {
right: 83.33333333%;
}
.col-sm-pull-9 {
right: 75%;
}
.col-sm-pull-8 {
right: 66.66666667%;
}
.col-sm-pull-7 {
right: 58.33333333%;
}
.col-sm-pull-6 {
right: 50%;
}
.col-sm-pull-5 {
right: 41.66666667%;
}
.col-sm-pull-4 {
right: 33.33333333%;
}
.col-sm-pull-3 {
right: 25%;
}
.col-sm-pull-2 {
right: 16.66666667%;
}
.col-sm-pull-1 {
right: 8.33333333%;
}
.col-sm-pull-0 {
right: auto;
}
.col-sm-push-12 {
left: 100%;
}
.col-sm-push-11 {
left: 91.66666667%;
}
.col-sm-push-10 {
left: 83.33333333%;
}
.col-sm-push-9 {
left: 75%;
}
.col-sm-push-8 {
left: 66.66666667%;
}
.col-sm-push-7 {
left: 58.33333333%;
}
.col-sm-push-6 {
left: 50%;
}
.col-sm-push-5 {
left: 41.66666667%;
}
.col-sm-push-4 {
left: 33.33333333%;
}
.col-sm-push-3 {
left: 25%;
}
.col-sm-push-2 {
left: 16.66666667%;
}
.col-sm-push-1 {
left: 8.33333333%;
}
.col-sm-push-0 {
left: auto;
}
}
/*md*/
@media (min-width: 768px) {
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
float: left;
}
.col-md-1 {
width: 8.33333333%;
}
.col-md-2 {
width: 16.66666667%;
}
.col-md-3 {
width: 25%;
}
.col-md-4 {
width: 33.33333333%;
}
.col-md-5 {
width: 41.66666667%;
}
.col-md-6 {
width: 50%;
}
.col-md-7 {
width: 58.33333333%;
}
.col-md-8 {
width: 66.66666667%;
}
.col-md-9 {
width: 75%;
}
.col-md-10 {
width: 83.33333333%;
}
.col-md-11 {
width: 91.66666667%;
}
.col-md-12 {
width: 100%;
}
.col-md-offset-12 {
margin-left: 100%;
}
.col-md-offset-11 {
margin-left: 91.66666667%;
}
.col-md-offset-10 {
margin-left: 83.33333333%;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-offset-8 {
margin-left: 66.66666667%;
}
.col-md-offset-7 {
margin-left: 58.33333333%;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-offset-5 {
margin-left: 41.66666667%;
}
.col-md-offset-4 {
margin-left: 33.33333333%;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-offset-2 {
margin-left: 16.66666667%;
}
.col-md-offset-1 {
margin-left: 8.33333333%;
}
.col-md-offset-0 {
margin-left: 0;
}
.col-md-pull-12 {
right: 100%;
}
.col-md-pull-11 {
right: 91.66666667%;
}
.col-md-pull-10 {
right: 83.33333333%;
}
.col-md-pull-9 {
right: 75%;
}
.col-md-pull-8 {
right: 66.66666667%;
}
.col-md-pull-7 {
right: 58.33333333%;
}
.col-md-pull-6 {
right: 50%;
}
.col-md-pull-5 {
right: 41.66666667%;
}
.col-md-pull-4 {
right: 33.33333333%;
}
.col-md-pull-3 {
right: 25%;
}
.col-md-pull-2 {
right: 16.66666667%;
}
.col-md-pull-1 {
right: 8.33333333%;
}
.col-md-pull-0 {
right: auto;
}
.col-md-push-12 {
left: 100%;
}
.col-md-push-11 {
left: 91.66666667%;
}
.col-md-push-10 {
left: 83.33333333%;
}
.col-md-push-9 {
left: 75%;
}
.col-md-push-8 {
left: 66.66666667%;
}
.col-md-push-7 {
left: 58.33333333%;
}
.col-md-push-6 {
left: 50%;
}
.col-md-push-5 {
left: 41.66666667%;
}
.col-md-push-4 {
left: 33.33333333%;
}
.col-md-push-3 {
left: 25%;
}
.col-md-push-2 {
left: 16.66666667%;
}
.col-md-push-1 {
left: 8.33333333%;
}
.col-md-push-0 {
left: auto;
}
}
/*lg*/
@media (min-width: 992px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-1 {
width: 8.33333333%;
}
.col-lg-2 {
width: 16.66666667%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-4 {
width: 33.33333333%;
}
.col-lg-5 {
width: 41.66666667%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-7 {
width: 58.33333333%;
}
.col-lg-8 {
width: 66.66666667%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-10 {
width: 83.33333333%;
}
.col-lg-11 {
width: 91.66666667%;
}
.col-lg-12 {
width: 100%;
}
.col-lg-offset-12 {
margin-left: 100%;
}
.col-lg-offset-11 {
margin-left: 91.66666667%;
}
.col-lg-offset-10 {
margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
margin-left: 66.66666667%;
}
.col-lg-offset-7 {
margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
margin-left: 41.66666667%;
}
.col-lg-offset-4 {
margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
margin-left: 16.66666667%;
}
.col-lg-offset-1 {
margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0;
}
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
right: 91.66666667%;
}
.col-lg-pull-10 {
right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
right: 66.66666667%;
}
.col-lg-pull-7 {
right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
right: 41.66666667%;
}
.col-lg-pull-4 {
right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
right: 16.66666667%;
}
.col-lg-pull-1 {
right: 8.33333333%;
}
.col-lg-pull-0 {
right: auto;
}
.col-lg-push-12 {
left: 100%;
}
.col-lg-push-11 {
left: 91.66666667%;
}
.col-lg-push-10 {
left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
left: 66.66666667%;
}
.col-lg-push-7 {
left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
left: 41.66666667%;
}
.col-lg-push-4 {
left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
left: 16.66666667%;
}
.col-lg-push-1 {
left: 8.33333333%;
}
.col-lg-push-0 {
left: auto;
}
}
/*xl*/
@media (min-width: 1200px) {
.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
float: left;
}
.col-xl-1 {
width: 8.33333333%;
}
.col-xl-2 {
width: 16.66666667%;
}
.col-xl-3 {
width: 25%;
}
.col-xl-4 {
width: 33.33333333%;
}
.col-xl-5 {
width: 41.66666667%;
}
.col-xl-6 {
width: 50%;
}
.col-xl-7 {
width: 58.33333333%;
}
.col-xl-8 {
width: 66.66666667%;
}
.col-xl-9 {
width: 75%;
}
.col-xl-10 {
width: 83.33333333%;
}
.col-xl-11 {
width: 91.66666667%;
}
.col-xl-12 {
width: 100%;
}
.col-xl-offset-12 {
margin-left: 100%;
}
.col-xl-offset-11 {
margin-left: 91.66666667%;
}
.col-xl-offset-10 {
margin-left: 83.33333333%;
}
.col-xl-offset-9 {
margin-left: 75%;
}
.col-xl-offset-8 {
margin-left: 66.66666667%;
}
.col-xl-offset-7 {
margin-left: 58.33333333%;
}
.col-xl-offset-6 {
margin-left: 50%;
}
.col-xl-offset-5 {
margin-left: 41.66666667%;
}
.col-xl-offset-4 {
margin-left: 33.33333333%;
}
.col-xl-offset-3 {
margin-left: 25%;
}
.col-xl-offset-2 {
margin-left: 16.66666667%;
}
.col-xl-offset-1 {
margin-left: 8.33333333%;
}
.col-xl-offset-0 {
margin-left: 0;
}
.col-xl-pull-12 {
right: 100%;
}
.col-xl-pull-11 {
right: 91.66666667%;
}
.col-xl-pull-10 {
right: 83.33333333%;
}
.col-xl-pull-9 {
right: 75%;
}
.col-xl-pull-8 {
right: 66.66666667%;
}
.col-xl-pull-7 {
right: 58.33333333%;
}
.col-xl-pull-6 {
right: 50%;
}
.col-xl-pull-5 {
right: 41.66666667%;
}
.col-xl-pull-4 {
right: 33.33333333%;
}
.col-xl-pull-3 {
right: 25%;
}
.col-xl-pull-2 {
right: 16.66666667%;
}
.col-xl-pull-1 {
right: 8.33333333%;
}
.col-xl-pull-0 {
right: auto;
}
.col-xl-push-12 {
left: 100%;
}
.col-xl-push-11 {
left: 91.66666667%;
}
.col-xl-push-10 {
left: 83.33333333%;
}
.col-xl-push-9 {
left: 75%;
}
.col-xl-push-8 {
left: 66.66666667%;
}
.col-xl-push-7 {
left: 58.33333333%;
}
.col-xl-push-6 {
left: 50%;
}
.col-xl-push-5 {
left: 41.66666667%;
}
.col-xl-push-4 {
left: 33.33333333%;
}
.col-xl-push-3 {
left: 25%;
}
.col-xl-push-2 {
left: 16.66666667%;
}
.col-xl-push-1 {
left: 8.33333333%;
}
.col-xl-push-0 {
left: auto;
}
}
.d-none {
display: none !important;
}
.d-block {
display: block !important;
}
/*sm*/
@media (min-width: 576px) {
.d-sm-none {
display: none !important;
}
.d-sm-block {
display: block !important;
}
}
/*md*/
@media (min-width: 768px) {
.d-md-none {
display: none !important;
}
.d-md-block {
display: block !important;
}
}
/*lg*/
@media (min-width: 992px) {
.d-lg-none {
display: none !important;
}
.d-lg-block {
display: block !important;
}
}
/*xl*/
@media (min-width: 1200px) {
.d-xl-none {
display: none !important;
}
.d-xl-block {
display: block !important;
}
}
.clearfix:after,
.clearfix:before,
.container:after,
.container:before,
.row:after,
.row:before {
display: table;
content: ' ';
}
.clearfix:after,
.container:after,
.row:after {
clear: both;
}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{
width: 100%;
border:0;
vertical-align:top;
}2回答
同学你好!
代码效果实现是可以的哦~
初学的时候就会觉得很难受,不理解,不会写,建议同学多练习一下,编程是一个熟能生巧的东西
如果帮助到了你 欢迎采纳 祝学习愉快~
Sherlock_bourne
提问者
2019-06-14
忘了加上JS了。。
4-4.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>响应式布局仿案例</title>
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/grid.css">
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<header class="header-container">
<div class="container">
<div class="row">
<!-- d-sm-none小屏及以上消失 -->
<div class="header-btn-container col-5 d-sm-none">
<button class="header-btn" id="btn" type="button">
<span class="btn-toggle-bar"></span>
<span class="btn-toggle-bar"></span>
</button>
</div>
<!-- d-none超小屏消失,d-sm-block小屏及以上显示出来 -->
<div class="header-nav-container col-sm-5 d-none d-sm-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>
</div>
<!-- 超小屏时是7格,小屏7格 -->
<div class="header-logo-container col-7 col-sm-7">
<a href="/4-4我的.html" class="header-logo">
<img src="img/logo.png" alt="cellphone">
</a>
</div>
</div>
</div>
</header>
<div class="nav-container d-sm-none" id="nav">
<ul class="container">
<li><a href="javascript:;" class="nav-link">首页</a></li>
<li><a href="javascript:;" class="nav-link">关于</a></li>
<li><a href="javascript:;" class="nav-link">商业合作</a></li>
</ul>
</div>
<script>
var nav=document.getElementById("nav");
var navExtendedClassName="nav-container-extended";
document.getElementById("btn").onclick=function(){
// classList获取某元素的所有类名的集合,并通过contains找到某个类
// 找到navExtendedClassName就移除,没找到就添加,就是这么个逻辑
if(nav.classList.contains(navExtendedClassName)){
// 收起
nav.classList.remove(navExtendedClassName);
}else{
// 展开
nav.classList.add(navExtendedClassName);
}
};
</script>
</body>
</html>index.css
/*布局tart*/
/*上午6点-11点,5个小时没整出来,越搞越乱,没一点思路。
中午好生的休息了会,决定只保留HTML部分,剩余全部重写,
配合控制台调试。1点半到现在,2个小时,整出来了~!*/
/*header*/
.header-container{
background-color: #fff;
border-bottom: 1px solid #dadada;
min-width: 348px;
}
.header-logo-container,
.header-btn-container,
.header-nav-container{
height: 60px;
}
.header-btn-container{
/*需要兼容*/
display: flex;
/*终点对齐,也就是右对齐(默认是flex-start)*/
justify-content: flex-start;
align-items: start;
overflow: hidden;
}
.header-btn{
position: relative;
width: 120px;
height: 200%;
border-radius: 50%;
/*因为container的padding-lef有15*/
margin-left: -75px;
border: none;
outline: none;
background: #f01414;
cursor: pointer;
}
/*nav*/
.nav-container{
height: 0;
overflow: hidden;
transition:height 0.5s;
}
.nav-container-extended{
height:200px;
}
ul.container{
padding-left: 0;
padding-right: 0;
}
.container>li{
background: rgba(200,200,200,.8);
border-bottom: 1px solid rgba(150,150,150,.5);
/*设置ul.container的左右填充为0也行*/
/*margin: 0 -15px;*/
height: 2em;
/*直接高,行高也能居中*/
/*line-height: 2em;*/
/*讲案例时老师说弹性布局加在a上,鬼扯!*/
display: flex;
align-items: center;
}
.container li a{
margin:0 15px;
}
/*.container li:first-child{
border-bottom: 0;
}
.container li:nth-child(2){
border-bottom: 0;
}*/
/*布局end*/
/*组件start*/
/*横条*/
.btn-toggle-bar {
display: block;
width: 25px;
height: 2px;
background-color: #fff;
border-radius: 2px;
position: relative;
top: -14px;
margin-top: -25px;
left: 75px;
}
/*兄弟选择器,找名叫.btn-toggle-bar,
且前面还有一个叫.btn-toggle-bar 的兄弟节点*/
/*也就是设置span后面的span的样式,上边距为4px,
如果都设,第一个也会有上边距4px。
设置的第二个和三个span的上边距,
因为第一个和第二个span元素后面才有兄弟span。*/
.btn-toggle-bar + .btn-toggle-bar {
margin-top: 10px;
}
/*组件end*/
/*内容start*/
/*header*/
.header-logo {
/*垂直居中两行代码*/
display: flex;
align-items: center;
/*不让跟随变化,给固定值*/
width: 150px;
/*和容器一样高*/
height: 100%;
}
.header-nav,
.header-nav-item,
.header-nav-link {
height: 100%;
}
.header-nav {
/*父容器只能影响子内容
故此处影响不了a标签里面的文字右对齐*/
display: flex;
justify-content: flex-start ;
font-size: 14px;
}
/*.header-nav-item:first-child {
margin-left: 0;
}*/
.header-nav-link {
display: flex;
align-items: center;
font-weight: bold;
}
/*内容end*/相似问题