临摹中国慕课静态网页第二周周记(CSS3+JS)

临摹中国慕课静态网页第二周周记(CSS3+JS)

第二周

这周主要是对细节,轮播图,下拉菜单等地完善和JS的学习

学习内容

(1)CSS word-break 属性

属性规定自动换行的处理方法。

语法:

word-break: normal|break-all|keep-all;
描述
normal 使用浏览器默认的换行规则。
break-all 允许在单词内换行。
keep-all 只能在半角空格或连字符处换行。

(2)伪元素

之前都没有系统的把伪元素学习一遍,因为最多用到::before和::after,关于其他的并没有了解

①,::first-line 伪元素

::first-line 伪元素用于向文本的首行添加特殊样式。

注意:::first-line 伪元素只能应用于块级元素。

以下属性适用于 ::first-line 伪元素:

  • 字体属性
  • 颜色属性
  • 背景属性
  • word-spacing
  • letter-spacing
  • text-decoration
  • vertical-align
  • text-transform
  • line-height
  • clear

请注意双冒号表示法 - ::first-line 对比 :first-line

在 CSS3 中,双冒号取代了伪元素的单冒号表示法。这是 W3C 试图区分伪类伪元素的尝试。

在 CSS2 和 CSS1 中,伪类和伪元素都使用了单冒号语法。

为了向后兼容,CSS2 和 CSS1 伪元素可接受单冒号语法。

②,::first-letter 伪元素

::first-letter 伪元素用于向文本的首字母添加特殊样式。

注意:****::first-letter 伪元素只适用于块级元素。

下面的属性适用于 ::first-letter 伪元素:

  • 字体属性
  • 颜色属性
  • 背景属性
  • 外边距属性
  • 内边距属性
  • 边框属性
  • text-decoration
  • vertical-align(仅当 “float” 为 “none”)
  • text-transform
  • line-height
  • float
  • clear
③,CSS - ::before 伪元素

::before 伪元素可用于在元素内容之前插入一些内容。

在慕课中经常用::before在设置箭头,小图标上

④,CSS - ::after 伪元素

::after 伪元素可用于在元素内容之后插入一些内容。

⑤CSS - ::selection 伪元素

::selection 伪元素匹配用户选择的元素部分。

以下 CSS 属性可以应用于 ::selection:

  • color
  • background
  • cursor
  • outline

(3)常用CSS伪类

①CSS :first-child 选择器

伪类与指定的元素匹配

该元素是另一个元素的第一个子元素。

但也有很容易出错的地方,:first-child的顺序会让元素样式发生变化;

例如:

(1)p i:first-child :匹配所有

元素中的首个 元素

(2)p:first-child i :匹配所有首个

元素中的所有 元素

:first-child放在谁后面则选定首个该元素

②CSS :last-child 选择器

提到 :first-child 选择器,就不得不提:last-child 选择器,在慕课临摹的许多区域,例如计算机栏目等小盒子中,在设定每个小盒子的外边距或内边距时,同时也为最后一个盒子设定了同样的样式,这时候就需要在css中找到最后一个盒子,为它清除外边距,以保证它与其他盒子位于同一行上。所以需要用到:last-child 选择器

.Mooc_Live_6:last-child(4n) {
   
    margin-right: 0px;
}

或者是想实现鼠标放在某个区域替换图片的效果,也可以使用last-child 选择器。

第一:现在盒子同一位置放上两张图片,将第二张图片设为display:none;不显示,再在css中对于div盒子的last-child设定:hover属性和display:block;来实现鼠标替换图片效果,这个可用于慕课网页右栏的固定广告中

③CSS3 :nth-child() 选择器

属于其父元素的第 N 个子元素,不论元素的类型。n 可以是数字、关键词或公式。

在慕课中,例如热门分类栏目,每十个标签则需要换行,这时候可以在括号中设定为10n,再加上css样式清除外边距等,来达到换行效果。

.Sort:nth-child(10n) {
   
    margin-right: 0;
}
④,CSS - :lang 伪类

允许您为不同的语言定义特殊的规则。(很少用到)

⑤,CSS :hover 选择器

这个在慕课网页用也很常见,并且几乎每个栏目中的小盒子,慕课都设置了鼠标放上可以有悬浮效果,这个可以结合盒子阴影一起使用

.Mooc_Live_6:hover {
   
    color: #333;
    -webkit-box-shadow: 0 8px 12px 0 rgba(0, 0, 0, 0.1);
    box-shadow: 0 8px 12px 0 rgba(0, 0, 0, 0.1);
}

(4)轮播图

实现功能:
  • 自动播放
  • 左右按钮控制滚动
  • 点击圆点切换图片
一,HTML部分
   <!-- Swiper -->
<div class="swiper-container">
   <div class="swiper-wrapper">
       <div class="swiper-slide">
           <img src="http://edu-image.nosdn.127.net/2c0ace6eeda743dfac08951d98712a04.jpg?imageView&quaa>
       </div>
       <div class="swiper-slide">
         <img src="http://edu-image.nosdn.127.net/548c7dd5f3b64e1ca2758dd4e364b0c8.png?imageView&quality=100"alt="">
       </div>
       <div class="swiper-slide">
         <img src="http://edu-image.nosdn.127.net/18948c0d27b64ff6b555f9b43ba70f2b.png?imageView&quality=100&thumbnail=776y360"alt="">
       </div>
      
     <!-- Add Arrows -->
      <div class="swiper-button-next"></div>
      <div class="swiper-button-prev"></div>
      <!-- Add Pagination -->
      <div class="swiper-pagination"></div>
                                   

在html中布置大盒子以及小盒子,大盒子为轮播图整体框架,而小盒子则存放每张轮播的图片。

二,CSS部分
.swiper-container {
   
    width: 100%;
    height: 100%;
}
.swiper-slide{
   
    text-align: center;
    font-size: 18px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.swiper-slide img {
   
    width: 776px;
    height: 360px;
}

设置各个盒子的高度宽度,字体大小,以及选用弹性盒子

三,JS部分

轮播图最重要的就是JS的部分了

首先要引入swiper有关的链接:

<script src="./js/swiper.min.js"></script>

再在

 <script>
        var swiper = new Swiper('.swiper-container', {
   
            cssMode: true,
            autoplay: true,
            navigation: {
   
                nextEl: '.swiper-button-next',
                prevEl: '.swiper-button-prev',
            },
            pagination: {
   
                el: '.swiper-pagination'
            },
            mousewheel: true,
            keyboard: true,
        });
    </script>
①-cssMode

启用后,它将使用现代CSS Scroll Snap API。

②-autoplay

:设置为true启动自动切换,并使用默认的切换设置。

③-navigation

:使用前进后退按钮来控制Swiper切换。主要为左右两个箭头按钮

④-pagination

:使用分页器导航。分页器可使用小圆点样式(默认)

⑤-mousewheel

:开启鼠标滚轮控制Swiper切换

⑥-keyboard

:设置开启键盘来控制Swiper切换。设为true时,能使用键盘的方向键控制slide切换。

特别注意:若要使用swiper中的样式,还是需引入css以及js有关链接。

 <link rel="stylesheet" href="./style.css">
 <link rel="stylesheet" href="./css/swiper.min.css">

具体操作方法:https://www.bilibili.com/video/BV14J4114768?t=80&p=256–484集swiper插件

(5)下拉菜单

在慕课导航栏中的“课程”中有一个下拉菜单的功能,且下拉中三角形会发生旋转效果。

说明:

首先将课程与要下拉的菜单放在同一个盒子中,对下拉的盒子设置display:none,再在最后设置::after,通过CSS显现一个三角形,是由一个正方形盒子通过对两边进行透明化,再运用transition过渡和旋转功能

一,HTML部分
 <div class="down">
    <a href="#" class="chinaMooc_1">课程</a>
     <div class="down_1">
         下拉菜单内容
     </div>
</div>
二,CSS部分
.down::after {
   
    content: '';
    position: absolute;
    top: 38%;
    right: 2px;
    width: 0;
    height: 0;
    border: 4px solid transparent;
    border-width: 6px 5px 0 5px;
    border-top-color: #c6c6c6;
    -webkit-transition: all .3s;
    transition: all .3s;
    cursor: pointer;
}

.down:hover::after {
   
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg)
  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值