百度前端学院任务阶段总结1

题外话

最近百度前端学院的春季班又开始了,感觉自己前端基础还不够牢固,于是尝试着报了名,从第一个任务开始,打算重新夯实一下基础。

虽然这些任务只是一些没有js的页面,但其中也发现了不少没遇到过的css样式,或者说是一些技巧。

首先是transition这个css3的属性。

这个属性主要是起到一个过渡效果,实现了一些以前需要js才能实现的效果。

.mask button{
       margin-top: 50px;
       border-radius: 5px;
       border-style:none;
       color: #fff;
       outline: none;
       width: 320px;
       height: 70px;
       font-size: 21px;
       background-color: red;
       transition: all ease-out 1s;
       cursor: pointer;
   }
   .mask button:hover{
       opacity: 0.5;
       filter:alpha(opacity:50);
  }

以上这段代码就实现了鼠标悬浮于按钮上时,按钮透明度由1缓慢(ease-out方式)变化为0.5的效果。
关于这个属性,想要了解更多可以看 这里

使用focus实现如下选择框切换

pic

主要代码如下:

<form>
          <div class="selectArea flexBox">
              <div class="selectBox" tabindex="0">
                  <div class="select" selected="中国" ></div>
                  <ul class="option">
                      <li>中国</li>
                      <li>其他</li>
                  </ul>
              </div>
              <div class="selectBox" tabindex="0">
                  <div class="select" selected="省份" ></div>
                  <ul class="option">
                      <li>江苏省</li>
                      <li>浙江省</li>
                      <li>上海市</li>
                      <li>北京市</li>
                  </ul>
              </div>
              <div class="selectBox" tabindex="0">
                  <div class="select" selected="城市" ></div>
                  <ul class="option">
                      <li>南京</li>
                      <li>杭州</li>
                      <li>浦东</li>
                  </ul>
              </div>
              <button class="button">搜索</button>
          </div>
      </form>

.section3 .selectBox{
      outline: none;
      position: relative;
      height: 41px;
  }
  .section3 .selectBox:focus>.select{
      border: 2px solid #c00 ;
  }
  .section3 .selectBox:focus > .option{
      position: absolute;
      display: block;
      background-color: #dadada;
      width: 200px;
      left: 30px;
      border-style: none solid solid solid;
      border-color: #c00;
      border-width: 2px;
   }
   .section3 .selectBox:focus > .option li{
      font-size: 13px;
      padding:20px 20px 10px 20px;
  }
  .option li:hover{
      background-color: #de0000;
      cursor: pointer;
      color:white;
      transition: background-color ease-out 1.5s;
  }
  .selectBox> .option{
      position: absolute;
       display: none;
   }

这里只需要预先设置.option不显示,然后通过focus来使其显示即可达到类似选项卡的效果。

使用transform实现图片缩放效果

pic

如上图,当鼠标悬浮于图片上时,图片会自动放大。代码也不复杂:

.section4 .img1 img{
        transition:all ease-out 1s;
    }
    .section4 .img1 img:hover{
        transform: scale(1.5);
    }

主要讲transition和transform属性结合,即可实现这样的效果。
具体更多关于transform,可以看这里

css实现小三角形状效果

效果如下:
pic

先来看看实现的代码:

.imgLeft:after{
        position: absolute;
        content: '';
        width: 0;
        height: 0;
        border-width: 40px 40px 40px 0;
        border-style: solid;
        border-color:   transparent #ffffff transparent  transparent;
        right: 0;
        top: 50%;
        margin-top: -40px;
    }

一开始我也是摸不着头脑,后来将该元素width和height调制较大后才理解来原理,如下:
pic

将元素高宽变为0,尖头那个方向不设边框,其他设置较宽边框,尖头反方向边框设置颜色,其为透明,即可形成该效果。

线条的伸缩效果。

pic

当鼠标悬浮时,右边线条会有中间向两边伸长。
代码如下:

.section6 .mid .title:after{
        content: '';
        width: 40px;
        margin-left: -20px;
        border: 2px solid #555555;
        position: absolute;
        top:250px;
        left: 215px;
        transition: all ease-out 1.2s;
    }
    .section6 .mid:hover> .title:after{
        margin-left: -50px;
        width: 100px;
    }

这里要注意的是,必须要添加margin-left,否则无法实现由中间向两边延展的效果。

flex伸缩盒布局

这个布局可以实现页面的简单自适应效果,具体可以看阮一峰的博客,也可以看这个

总结

总的来说,虽然是一些比较基础的页面,但是还是发现了自己在基础方面的不足,同时在ife这个平台上能够看到其他小伙伴的代码,也有利于自己更加深入的思考,继续加油!