发表于: 2018-05-19 23:20:37

2 666


今天完成的事情:css轮播图,响应式导航栏,隐藏元素的几种办法

明天计划的事情:栅格系统组件,头部和脚部组件

遇到的问题:在使用webstorm打开一个本地一个项目文件夹内的html文件时,浏览器总是提示404错误,

解决办法:

原因在项目文件夹的命名时使用了“+”号,导致websotrm解析出错,所以无法打开 

解决:把文件夹的名字改为正常不带特殊符号的就OK了。

收获:

一、常见隐藏元素的几种办法

{ display: none; /* 不占据空间,无法点击 */ }

{ visibility: hidden; /* 占据空间,无法点击 */ }

{ position: absolute; clip:rect(1px 1px 1px 1px); /* 不占据空间,无法点击 */ }

{ position: absolute; top: -999em; /* 不占据空间,无法点击 */ }

{ position: relative; top: -999em; /* 占据空间,无法点击 */ }

{ position: absolute; visibility: hidden; /* 不占据空间,无法点击 */ }

{ height: 0; overflow: hidden; /* 不占据空间,无法点击 */ }


二、纯css轮播图

轮播图构成:

轮播图一般由logo图片,底部指示器和左右切换按键组成。

难点:

如何模拟左右切换按钮的点击事件

大致思路:
1.确定图片的切换方式,使用绝对定位,令三张图片重叠在一起,通过z-index的变化来切换图片。
2、模拟左右切换按键,利用单选框的伪类:checked来模拟点击事件。
3、模拟底部指示器,自定义单选框的样式,使用label标签和伪元素来更改单选框选中时的样式。

html结构

[html] view plain copy
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>carousel</title>  
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">  
  7.     <link rel="Stylesheet" type="text/css" href="carousel.css" />  
  8. </head>  
  9. <body>  
  10.   
  11. <div class="carousel-main">  
  12.     <input class="carousel-main_input--a1" type="radio" id="carousel-checkbox1" name="value">  
  13.     <input class="carousel-main_input--a2" type="radio" id="carousel-checkbox2" name="value">  
  14.     <input class="carousel-main_input--b1" type="radio" id="carousel-checkbox3" name="value" checked="checked">  
  15.     <input class="carousel-main_input--b2" type="radio" id="carousel-checkbox4" name="value">  
  16.     <input class="carousel-main_input--c1" type="radio" id="carousel-checkbox5" name="value">  
  17.     <input class="carousel-main_input--c2" type="radio" id="carousel-checkbox6" name="value">  
  18.     <!--两侧控制按钮-->  
  19.     <label class="a1_go-3 label label-left" for="carousel-checkbox1"></label>  
  20.     <label class="a2_go-2 label label-right" for="carousel-checkbox2"></label>  
  21.     <label class="b1_go-1 label label-left" for="carousel-checkbox3"></label>  
  22.     <label class="b2_go-3 label label-right" for="carousel-checkbox4"></label>  
  23.     <label class="c1_go-2 label label-left" for="carousel-checkbox5"></label>  
  24.     <label class="c2_go-1 label label-right" for="carousel-checkbox6"></label>  
  25.     <!--/*底部按钮*/-->  
  26.     <label class="go-1 circle" for="carousel-checkbox3" ></label>  
  27.     <label class="go-2 circle" for="carousel-checkbox2"></label>  
  28.     <label class="go-3 circle" for="carousel-checkbox1"></label>  
  29.    <!--轮播图片-->  
  30.     <img class="carousel_img-1" src="carousel-1.png">  
  31.     <img class="carousel_img-2" src="carousel-2.jpeg">  
  32.     <img class="carousel_img-3" src="carousel-3.jpg">  
  33.     <!--左右空心箭头-->  
  34.     <div class="arrow-left"></div>  
  35.     <div class="arrow-right"></div>  
  36.   
  37.   
  38.   
  39. </div>  
  40. </body>  
  41. </html>  

scss结构

[html] view plain copy

@charset "utf-8";  

body{  

  margin:0;  

}  

.carousel-main{  

  position: relative;  

  width: 100%;  

  overflow: hidden;  

   .label{  

    position: absolute;  

    top: 10vw;  

    width: 5vw;  

    height: 5vw;  

  }  

  .a1_go-3{  

    left: 0;  

  }  

  .a2_go-2{  

    right: 0;  

  }  

  .b1_go-1{  

    left: 0;  

  }  

  .b2_go-3{  

    right: 0;  

  }  

  .c1_go-2{  

    left: 0;  

  }  

  .c2_go-1{  

    right: 0;  

  }  

  .arrow-left{  

    position: absolute;  

    top: 11.085vw;  

    left: 1rem;  

    z-index: 4;  

    display: inline-block;  

    width: 2vw;  

    height: 2vw;  

    border-top: 5px solid #999;  

    border-right: 5px solid #999;  

    pointer-events: none;  

    transform: rotate(-135deg);  

  }  

  .arrow-right{  

    position: absolute;  

    top: 11.085vw;  

    right: 1rem;  

    z-index: 4;  

    display: inline-block;  

    width: 2vw;  

    height: 2vw;  

    border-top: 5px solid #999;  

    border-right: 5px solid #999;  

    pointer-events: none;  

    transform: rotate(45deg);  

  }  

}  

.label-left:hover ~ .arrow-left{  

  border-color: #fff;  

}  

.label-right:hover ~ .arrow-right{  

  border-color: #fff;  

}  

/* 使用绝对定位隐藏图片,三张图片重叠*/  

.carousel-main{  

  position: relative;  

}  

.carousel_img-1{  

  width: 100%;  

  height: 25vw;  

  pointer-events: none;  

  transition: all 1s;  

}  

.carousel_img-2{  

  @extend .carousel_img-1;  

  position: absolute;  

  top: 0;  

  z-index: -1;  

}  

.carousel_img-3{  

  @extend .carousel_img-1;  

  position: absolute;  

  top: 0;  

  z-index: -1;  

}  

/* 隐藏input*/  

.carousel-main{  

  input{  

    display: none;  

  }  

}  

  

/* 隐藏b,c两组按钮*/  

.b1_go-1{  

  display: none;  

}  

.b2_go-3{  

  display: none;  

}  

.c1_go-2{  

  display: none;  

}  

.c2_go-1{  

  display: none;  

}  

/* input控制*/  

/* 按钮组*/  

  

/* a1 点击按钮a1后隐藏a1,a2,b1,b2,显示c1,c2,点击按钮a1后显示图片3*/  

.carousel-main_input--a1:checked ~ .a1_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a1:checked ~ .a2_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a1:checked ~  .b1_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a1:checked ~  .b2_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a1:checked ~ .c1_go-2{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--a1:checked ~ .c2_go-1{  

  display: block;  

  z-index: 3;  

}  

  

.carousel-main_input--a1:checked ~ .carousel_img-3{  

  z-index: 2;  

}  

.carousel-main_input--a1:checked .go-3{  

  background: #fff;  

}  

  

  

/* a2 点击按钮a2后隐藏a1,a2,c1,c2,显示b1,b2,.点击按钮a2后显示图片2*/  

.carousel-main_input--a2:checked ~ .a1_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a2:checked ~ .a2_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a2:checked ~  .c1_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a2:checked ~  .c2_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--a2:checked ~ .b1_go-1{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--a2:checked ~ .b2_go-3{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--a2:checked ~ .carousel_img-2{  

  z-index: 2;  

}  

  

/* b1 点击按钮b1后隐藏b1,b2,c1,c2,显示a1,a2,点击按钮b1后显示图片1*/  

.carousel-main_input--b1:checked ~ .c1_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b1:checked ~ .c2_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b1:checked ~  .b1_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b1:checked ~  .b2_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b1:checked ~ .a1_go-3{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--b1:checked ~ .a2_go-2{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--b1:checked ~ .carousel_img-2,.carousel_img-3{  

  z-index: -1;  

}  

  

/* b2 点击按钮b2后隐藏a1,a2,b1,b2,显示c1,c2,点击按钮b2后显示图片3*/  

.carousel-main_input--b2:checked ~ .a1_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b2:checked ~ .a2_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b2:checked ~  .b1_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b2:checked ~  .b2_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--b2:checked ~ .c1_go-2{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--b2:checked ~ .c2_go-1{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--b2:checked ~ .carousel_img-3{  

  z-index: 2;  

}  

  

/* c1 点击按钮c1后隐藏a1,a2,c1,c2,显示b1,b2,点击按钮c1后显示图片2*/  

.carousel-main_input--c1:checked ~ .a1_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c1:checked ~ .a2_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c1:checked ~  .c1_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c1:checked ~  .c2_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c1:checked ~ .b1_go-1{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--c1:checked ~ .b2_go-3{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--c1:checked ~ .carousel_img-2{  

  z-index: 2;  

}  

  

/* c2 点击按钮c2后隐藏b1,b2,c1,c2,显示a1,a2,点击按钮c2后显示图片1*/  

.carousel-main_input--c2:checked ~ .c1_go-2{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c2:checked ~ .c2_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c2:checked ~  .b1_go-1{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c2:checked ~  .b2_go-3{  

  display: none;  

  z-index: -2;  

}  

.carousel-main_input--c2:checked ~ .a1_go-3{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--c2:checked ~ .a2_go-2{  

  display: block;  

  z-index: 3;  

}  

.carousel-main_input--b1:checked ~ .carousel_img-2,.carousel_img-3{  

  z-index: -1;  

}  

  

/*底部样式按钮*/  

.go-1{  

  position: absolute;  

  z-index: 4;  

  bottom: 1vw;  

  left: 47.5%;  

  right: 51.5%;  

}  

.go-2{  

  position: absolute;  

  z-index: 4;  

  bottom: 1vw;  

  left: 49.5%;  

  right: 49.5%;  

}  

.go-3{  

  position: absolute;  

  z-index: 4;  

  bottom: 1vw;  

  left: 51.5%;  

  right: 47.5%;  

}  

.circle::before{  

    display: inline-block;  

    content: "";  

    width: 1vw;  

    height: 1vw;  

    border: 1px solid #fff;  

    border-radius: 50%;  

}  

.carousel-main_input--a1:checked ~ .go-3::before {  

     background-color: #fff;  

}  

.carousel-main_input--a2:checked ~ .go-2::before {  

  background-color: #fff;  

}  

.carousel-main_input--b1:checked ~ .go-1::before {  

  background-color: #fff;  

}  

.carousel-main_input--b2:checked ~ .go-3::before {  

  background-color: #fff;  

}  

.carousel-main_input--c1:checked ~ .go-2::before {  

  background-color: #fff;  

}  

.carousel-main_input--c2:checked ~ .go-1::before {  

  background-color: #fff;  

}  



任务进度:css-14

任务开始时间:2018年5月18日

禅道:http://task.ptteng.com/zentao/project-task-692.html


返回列表 返回列表
评论

    分享到