一篇文章带你了解CSS 分页实例

生活中分页的效果到处可见,今天教大家详细的分析一下分页效果。

一篇文章带你了解CSS 分页实例

如何使用 HTML 和 CSS 来创建分页?

如果你的网站有很多个页面,你就需要使用分页来为每个页面做导航

一、分页类型

1. 简单分页

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>项目</title>
        <style>
            ul.pagination {
                display: inline-block;
                padding: 0;
                margin: 0;
            }

            ul.pagination li {
                display: inline;
            }

            ul.pagination li a {
                color: black;
                float: left;
                padding: 8px 16px;
                text-decoration: none;
            }
</style>
    </head>
    <body>
        <h2>Simple Pagination</h2>
        <ul class="pagination">
            <li><a href="#">«</a></li>
            <li><a href="#">1</a></li>
            <li><a class="active" href="#">2</a></li>
            <li><a href="#">3</a></li>
            <li><a href="#">4</a></li>
            <li><a href="#">5</a></li>
            <li><a href="#">6</a></li>
            <li><a href="#">7</a></li>
            <li><a href="#">»</a></li>
        </ul>
    </body>
</html>
一篇文章带你了解CSS 分页实例

点击及鼠标悬停分页样式

如果点击当前页,可以使用 .active 来设置当期页样式,鼠标悬停可以使用 :hover 选择器来修改样式:

CSS 实例

ul.pagination li a.active {
    background-color: #4CAF50;
    color: white;
}

ul.pagination li a:hover:not(.active) {background-color: #ddd;}
一篇文章带你了解CSS 分页实例

2. 分页样式

2.1 圆角样式分页

可以使用 border-radius 属性为选中的页码来添加圆角样式:

CSS 实例

ul.pagination li a {
    border-radius: 5px;
}

ul.pagination li a.active {
    border-radius: 5px;
}

鼠标悬停过渡效果

一篇文章带你了解CSS 分页实例

我们可以通过添加 transition 属性来为鼠标移动到页码上时添加过渡效果:

CSS 实例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目</title>
  <style>
  ul.pagination {
      display: inline-block;
      padding: 0;
      margin: 0;
  }

  ul.pagination li {display: inline;}

  ul.pagination li a {
      color: black;
      float: left;
      padding: 8px 16px;
      text-decoration: none;
      transition: background-color .3s;
      border: 1px solid #ddd;
  }

  .pagination li:first-child a {
      border-top-left-radius: 5px;
      border-bottom-left-radius: 5px;
  }

  .pagination li:last-child a {
      border-top-right-radius: 5px;
      border-bottom-right-radius: 5px;
  }

  ul.pagination li a.active {
      background-color: #f00;
      color: white;
      border: 1px solid #f00;
  }

  ul.pagination li a:hover:not(.active) {background-color: #ddd;}
</style>
</head>
<body>
  <h2>Pagination with Rounded Borders</h2>
  <ul class="pagination">
    <li><a href="#">«</a></li>
    <li><a href="#">1</a></li>
    <li><a class="active" href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">6</a></li>
    <li><a href="#">7</a></li>
    <li><a href="#">»</a></li>
  </ul>
</body>
</html>            

2.2 带边框分页

一篇文章带你了解CSS 分页实例

我们可以使用 border 属性来添加带边框分页:

CSS 实例

ul.pagination li a {
    border: 1px solid #ddd; /* Gray */
}

2.3. 分页间隔

提示: 你可以使用 margin 属性来为每个页码直接添加空格:

CSS 实例

ul.pagination li a {
    margin: 0 4px; /* 0 is for top and bottom. Feel free to change it */
}
一篇文章带你了解CSS 分页实例

2.4 分页字体大小

我们可以使用 font-size 属性来设置分页的字体大小:

CSS 实例

ul.pagination li a {
    font-size: 22px;
}
一篇文章带你了解CSS 分页实例

2.5 居中分页

如果要让分页居中,可以在容器元素上 (如 <div>) 添加 text-align:center 样式:

CSS 实例

div.center {
    text-align: center;
}

二、案例

面包屑导航

一篇文章带你了解CSS 分页实例

另外一种导航为面包屑导航,

实例如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目</title>
  <style>
  ul.breadcrumb {
      padding: 8px 16px;
      list-style: none;
      background-color: #eee;
  }
  ul.breadcrumb li {display: inline;}
  ul.breadcrumb li+li:before {
      padding: 8px;
      color: black;
      content: "/\00a0";
  }
  ul.breadcrumb li a {color: green;}
</style>
</head>
<body>
  <h2>Breadcrumb Pagination</h2>
  <ul class="breadcrumb">
    <li><a href="#">Home</a></li>
    <li><a href="#">Pictures</a></li>
    <li><a href="#">Summer 15</a></li>
    <li>Italy</li>
  </ul>
</body>
</html>

三、总结

本文以生活中的现象为切入点,主要介绍了Html的分页效果中样式的使用,鼠标悬停时分页效果的应用。

用丰富的案例帮助大家更好的去了解对象,最后以“面包屑导航 ”作为小项目,使用Html编程语言,对前面介绍效果做一个总体的整合,方便大家增加对类和对象的认识,希望对大家的学习有帮助。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

——————- End ——————-

往期精彩文章推荐:

一篇文章带你了解CSS 渐变知识

早些时候,你必须使用图像实现这些效果。 然而, 通过使用CSS3渐变可以减少下载时间和带宽的使用. 此外,缩放的元素在缩放时看起来更好,因为渐变是由浏览器生成的。


一、浏览器支持

表中的数字指定完全支持该属性的第一个浏览器版本。(来源于百度)

数字后面的 -webkit- 或者 -moz- 使用时需要指定前缀。

属性 Chrome Firefox Safari Opera IE linear-gradient 26.0 10.0 -webkit- 10.0 16.0 3.6 -moz- 6.1 5.1 -webkit- 12.1 11.1 -o- radial-gradient 26.0 10.0 -webkit- 10.0 16.0 3.6 -moz- 6.1 5.1 -webkit- 12.1 11.6 -o- repeating-linear-gradient 26.0 10.0 -webkit- 10.0 16.0 3.6 -moz- 6.1 5.1 -webkit- 12.1 11.1 -o- repeating-radial-gradient 26.0 10.0 -webkit- 10.0 16.0 3.6 -moz- 6.1 5.1 -webkit- 12.1 11.6 -o-


二、CSS3 线性渐变(向下/向上/向左/向右/倾斜)

要创建线性渐变,必须定义至少两个颜色停止。颜色停止是你想要渲染平滑过渡之间的颜色。 您还可以设置一个起始点和一个方向(或角度)和渐变效果。

语法:

background: linear-gradient(direction, color-stop1, color-stop2, ...);

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目</title>

</head>
<body>

  <div id="grad1"></div>
</body>
</html>

例如:

线性渐变 – 上到下

显示从顶部开始的线性渐变。它从开始的红色,过渡到黄色:

<style>
    #grad1 {
        height: 200px;
        background: blue; /* 对于那些不支持渐变的浏览器 */
        background: -webkit-linear-gradient(blue, yellow); /* Safari 5.1 到 6.0 */
        background: -o-linear-gradient(blue, yellow); /* Opera 11.1 到 12.0 */
        background: -moz-linear-gradient(blue, yellow); /* Firefox 3.6 到 15 */
        background: linear-gradient(blue, yellow); /* 标准语法 (必须是最后一个) */
    }
</style> 

线性渐变 – 左到右

例如:

显示从左开始的线性渐变。它从开始的红色,过渡到黄色

<style>
    #grad1 {
        height: 200px;
        background: blue; /* 对于那些不支持渐变的浏览器 */
        background: -webkit-linear-gradient(left, blue , yellow); /* Safari 5.1 到 6.0 */
        background: -o-linear-gradient(right, blue, yellow); /* Opera 11.1 到 12.0 */
        background: -moz-linear-gradient(right, blue, yellow); /* Firefox 3.6 到 15 */
        background: linear-gradient(to right, blue , yellow); /* 标准语法 (必须是最后一个) */
    }
</style>    

线性渐变 – 对角线

可以通过指定水平和垂直起始位置来实现对角线渐变。

下面的示例显示从左上角开始的线性渐变(到右下角)。它开始红色,过渡到黄色:

<style>
    #grad1 {
        height: 200px;
        background: blue; /*对于那些不支持渐变的浏览器 */
        background: -webkit-linear-gradient(left top, blue, yellow); /* Safari 5.1 到 6.0 */
        background: -o-linear-gradient(bottom right, blue, yellow); /* Opera 11.1 到 12.0 */
        background: -moz-linear-gradient(bottom right, blue, yellow); /* Firefox 3.6 到 15 */
        background: linear-gradient(to bottom right, blue, yellow); /* 标准语法(必须是最后一个) */
    }
</style>

1. 使用角度

如果你想在渐变方向上有更多的控制,你可以定义一个角度,而不是预定的方向(下、上、左、右等)。

语法

background: linear-gradient(angle, color-stop1, color-stop2);

下面的示例演示如何使用在线性渐变上使用角度:

例如:

#grad {
  width: 100%;
  height: 100px;
  background: blue; /* 对于那些不支持渐变的浏览器 */
  background: -webkit-linear-gradient(-90deg, blue, yellow); /*  Safari 5.1 到 6.0 */
  background: -o-linear-gradient(-90deg, blue, yellow); /*  Opera 11.1 到 12.0 */
  background: -moz-linear-gradient(-90deg, blue, yellow); /*  Firefox 3.6 到 15 */
  background: linear-gradient(-90deg, blue, yellow); /*  标准语法 */
}

2. 使用多个停止颜色

下面的示例显示一个具有多个停止颜色的线性渐变(从上到下)

例如:

#grad {
  background: blue; /* 对于那些不支持渐变的浏览器 */
  background: -webkit-linear-gradient(blue, yellow, green); /*  Safari 5.1 到 6.0 */
  background: -o-linear-gradient(blue, yellow, green); /*  Opera 11.1 到 12.0 */
  background: -moz-linear-gradient(blue, yellow, green); /*  Firefox 3.6 到 15 */
  background: linear-gradient(blue, yellow, green); /* 标准语法 */
}

下面实例演示了如何使用彩虹颜色和一些文本来创建一个线性渐变(从左到右)

渐变背景

例如:

#grad {
  background: blue; /*对于那些不支持渐变的浏览器 */
  /*  Safari 5.1 到 6.0 */
  background: -webkit-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /*  Opera 11.1 到 12.0 */
  background: -o-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /*  Fx 3.6 到 15 */
  background: -moz-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet);
  /* Standard syntax */
  background: linear-gradient(到 right, red,orange,yellow,green,blue,indigo,violet);
}

3. 使用的透明度

CSS3 渐变也支持透明度,可以用来创建淡入淡出效果。

添加透明度,我们用rgba()函数来定义停止颜色。在rgba()函数的最后一个参数可以从0到1的值,并定义颜色的透明度:0表示完全透明,1表示完全的颜色(不透明度)。

下面的示例显示从左开始的线性渐变。它开始完全透明,过渡到全红色:

#grad {
  background: blue; /*  不支持渐变的浏览器 */
  background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/
  background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/
  background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/
  background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/
}

4. 重复线性渐变

repeating-linear-gradient() 函数用于重复线性渐变:

例如:

#grad {
  background: blue; /*  不支持渐变的浏览器 */
  /* Safari 5.1 到 6.0 */
  background: -webkit-repeating-linear-gradient(blue, yellow 10%, green 20%);
  /* Opera 11.1 到 12.0 */
  background: -o-repeating-linear-gradient(blue, yellow 10%, green 20%);
  /* Firefox 3.6 到 15 */
  background: -moz-repeating-linear-gradient(blue, yellow 10%, green 20%);
  /* Standard syntax */
  background: repeating-linear-gradient(blue, yellow 10%, green 20%);
}

三、CSS3 径向渐变 (由中心定义)

径向渐变是由其中心定义的。

要创建径向渐变,还必须定义至少两个停止颜色。

语法

background: radial-gradient(shape size at position, start-color, ..., last-color);

径向渐变-均匀的间隔停止颜色 (默认)

下面的示例显示一个径向渐变,其颜色间隔均匀:

#grad {
  background: blue; /*  browsers that do not support gradients */
  background: -webkit-radial-gradient(blue, yellow, green); /* Safari 5.1 到 6.0 */
  background: -o-radial-gradient(blue, yellow, green); /*  Opera 11.6 到 12.0 */
  background: -moz-radial-gradient(blue, yellow, green); /*  Firefox 3.6 到 15 */
  background: radial-gradient(blue, yellow, green); /* Standard syntax */
}

径向渐变-不同间隔的停止颜色

下面的例子显示了一个具有不同间距的颜色渐变的径向渐变:

#grad {
  background: blue; /*不支持渐变的浏览器 */
  background: -webkit-radial-gradient(blue 5%, yellow 15%, green 60%); /* Safari 5.1-6.0 */
  background: -o-radial-gradient(blue 5%, yellow 15%, green 60%); /*  Opera 11.6-12.0 */
  background: -moz-radial-gradient(blue 5%, yellow 15%, green 60%); /*  Firefox 3.6-15 */
  background: radial-gradient(blue 5%, yellow 15%, green 60%); /* Standard syntax */
}

1. 设置形状

形状参数定义形状。它可以取值圆或椭圆。默认值为椭圆形。

下面的例子显示了一个圆形的径向渐变:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>项目</title>
    <style>
      #grad1 {
        height: 150px;
        width: 200px;
        background: -webkit-radial-gradient(blue, yellow, green);
        /*  Safari 5.1 到 6.0 */
        background: -o-radial-gradient(blue, yellow, green);
        /*  Opera 11.6 到 12.0 */
        background: -moz-radial-gradient(blue, yellow, green);
        /*  Fx 3.6 到 15 */
        background: radial-gradient(blue, yellow, green);
        /* 标准语法(必须是最后一个) */
      }

      #grad2 {
        height: 150px;
        width: 200px;
        background: -webkit-radial-gradient(circle, blue, yellow, green);
        /*  Safari 5.1 到 6.0 */
        background: -o-radial-gradient(circle, blue, yellow, green);
        /*  Opera 11.6 到 12.0 */
        background: -moz-radial-gradient(circle, blue, yellow, green);
        /*  Fx 3.6 到 15 */
        background: radial-gradient(circle, blue, yellow, green);
        /* 标准语法(必须是最后一个) */
      }
</style>
  </head>
  <body>

    <h3>径向渐变-形状</h3>

    <p><strong>椭圆(这是默认值):</strong></p>
    <div id="grad1"></div>

    <p><strong>圆:</strong></p>
    <div id="grad2"></div>

    <p><strong>注意:</strong> Internet Explorer 9 和早期的版本不支持渐变。</p>

  </body>
</html>

2. 重复径向渐变

repeating-radial-gradient() 函数用于重复径向渐变:

例如:

#grad {
  background: blue; /*不支持渐变的浏览器*/
  /*  Safari 5.1 到 6.0 */
  background: -webkit-repeating-radial-gradient(blue, yellow 10%, green 15%);
  /*  Opera 11.6 到 12.0 */
  background: -o-repeating-radial-gradient(blue, yellow 10%, green 15%);
  /*  Firefox 3.6 到 15 */
  background: -moz-repeating-radial-gradient(blue, yellow 10%, green 15%);
  /* Standard syntax */
  background: repeating-radial-gradient(blue, yellow 10%, green 15%);
}

四、总结

本文基于html基础, 通过对css中渐变效果做了详细的讲解,介绍来了常见的两种渐变方式。通过丰富的案例让大家能够更好的去了解,去体会渐变的用法,希望可以帮助大家更好的学习。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

——————- End ——————-

往期精彩文章推荐:

一篇文章带你了解CSS3图片边框

CSS3图片边框

使用CSS3 border-image 属性,你可以在元素的周围设置图片边框。


一、浏览器支持

表中的数字指定完全支持该属性的第一个浏览器版本。

数字后面的 -webkit- 或者 -moz- 使用时需要指定前缀。

二、CSS3 border-image 属性

CSS3 border-image 属性允许您指定要用来代替元素周围的正常边界的图像。属性有三个部分:

  1. 作为边框的图片。
  2. 在哪里分割图像。
  3. 确定中间部分应重复或延伸。

以下面的图像(叫做 “border.png”)为例:

原理分析:

border-image 性将图像分割成九个部分,就像一个井字游戏板。然后将角放在拐角处,中间部分按指定的顺序重复或拉伸。

注意:

让border-image 正常工作, 元素也需要设置边框属性!

1. 图像的中间部分重复创建边界,图片作为边框

CSS代码:

<!DOCTYPE CSS>
<CSS lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目</title>
</head>
<body>

  <p id="borderimg">在这里,图像的中间部分被延伸来创建边界.</p>
  <p>这里是原始图像:</p><img src="img/border.png">
</body>
</CSS>

代码如下:

#borderimg {
    border: 10px solid transparent;
    padding: 15px;
    -webkit-border-image: url(img/border.png) 30 round; /* Safari 3.1-5 */
    -o-border-image: url(img/border.png) 30 round; /* Opera 11-12.1 */
    border-image: url(img/border.png) 30 round;
}

2. 图像的中间部分延伸到创建边界:使用图片作为边框!

实例代码:

#borderimg {
                border: 10px solid transparent;
                padding: 15px;
                -webkit-border-image: url(img/border.png) 30 stretch;
                /* Safari 3.1-5 */
                -o-border-image: url(img/border.png) 30 stretch;
                /* Opera 11-12.1 */
                border-image: url(img/border.png) 30 stretch;
            }

注意: border-image 属性是border-image-source, border-image-slice, border-image-width, border-image-outset 和 border-image-repeat 的缩写.


1. 不同的切片值

不同的切片值完全改变边框的样子:

实例 1

border-image: url(border.png) 50 round;

#borderimg1 {
border: 10px solid transparent;
padding: 15px;
-webkit-border-image: url(img/border.png) 50 round;
/* Safari 3.1-5 */
-o-border-image: url(img/border.png) 50 round;
/* Opera 11-12.1 */
border-image: url(img/border.png) 50 round;
}

实例 2

border-image: url(border.png) 20% round;

#borderimg2 {
border: 10px solid transparent;
padding: 15px;
-webkit-border-image: url(img/border.png) 20% round;
/* Safari 3.1-5 */
-o-border-image: url(img/border.png) 20% round;
/* Opera 11-12.1 */
border-image: url(img/border.png) 20% round;
}

实例 3

border-image: url(border.png) 30% round;

代码如下:

#borderimg3 {
border: 10px solid transparent;
padding: 15px;
-webkit-border-image: url(img/border.png) 30% round;
/* Safari 3.1-5 */
-o-border-image: url(img/border.png) 30% round;
/* Opera 11-12.1 */
border-image: url(img/border.png) 30% round;
}

三、总结

本文基于CSS基础,使用CSS语言,介绍了有关CSS定义图片边框的知识点,从基础的属性概念入手 ,border-image的用法,在实际应用中需要注意的问题,做了详细的讲解。通过一个个实例的演示。希望帮助你更好的学习CSS。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

——————- End ——————-

往期精彩文章推荐:

一篇文章带你了解CSS3 背景知识

CSS3中包含几个新的背景属性,提供更大背景元素控制。

一、浏览器支持

表中的数字指定完全支持该属性的第一个浏览器版本。

数字后面的 -webkit- 或者 -moz- 使用时需要指定前缀。

属性ChromeFirefoxSafariOperaIEbackground-image (多背景)4.09.03.63.111.5background-size4.0 1.0 -webkit-9.04.0 3.6 -moz-4.1 3.0 -webkit-10.5 10.0background-origin1.09.04.03.010.5background-clip4.09.04.03.010.5

二、CSS3 多背景

CSS3允许你为一个元素添加多个背景图像, 通过使用 background-image 属性.不同的背景图像用逗号隔开,图像叠加在一起,

例:有两个背景图像,第一图像是背景图(在右下角)和第二图像是一个GIF动图(在左上角)。

代码如下:

<!DOCTYPE HTML>
<meta charset="utf-8">
<title>项目</title>
<head>
<style>
    #example1 {

    background-image: url(img/fy_indexBg.jpg), url(img/17I_hd.mp4.gif);
    background-position: right bottom, left top;
    background-repeat: no-repeat, repeat;
}
</style>
</head>
<html>

<body>
 <div id="example1">
    <h1>Lorem Ipsum Dolor</h1>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
    <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
  </div>
</body>

</html>

可以使用单独的背景属性(如上所示)或背景简写属性指定多个背景图像。

下面的例子使用了背景速记

上面的例子,有相同的结果)

#example1 {
    background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat;
}

1. CSS3 背景尺寸

CSS3 background-size 属性允许你指定背景图像的尺寸.

在CSS3之前的背景图像大小是图像的实际大小。CSS3允许我们使用背景图像在不同的上下文中。

size可以指定长度、百分比,或通过使用一个关键词: contain 或者 cover.

示例:图片背景图像比原图像小得多(以像素为单位):

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目</title>
  <style>
    #example1 {
        border: 1px solid black;
        background:url(img_flwr.gif);
        background-repeat: no-repeat;
        padding:15px;
    }

    #example2 {
        border: 1px solid black;
        background:url(img_flwr.gif);
        background-size: 100px 80px;
        background-repeat: no-repeat;
        padding:15px;
    }
</style>
</head>
<body>

  <p>原背景:</p>
  <div id="example1">
    <h2>Lorem Ipsum Dolor</h2>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
    <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
  </div>

  <p>缩放背景图:</p>
  <div id="example2">
    <h2>Lorem Ipsum Dolor</h2>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
    <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
  </div>

</body>
</html> 

background-size 属性两个可能值是:contain 和 cover.

含有关键词尺度的背景图像尽可能大的(但它的宽度和高度必须在内容区域)。因此,根据背景图像的比例和背景区的定位,有可能不被背景图像覆盖。

cover 关键词缩放背景图像,内容区域完全覆盖了背景图像(它的宽度和高度等于或超过该范围的内容)。因此,背景图像的某些部分可能不在背景区的定位是可见的。

下面的示例演示了使用contain和cover:

#div1 {
    background: url(img_flower.jpg);
    background-size: contain;
    background-repeat: no-repeat;
}
#div2 {
    background: url(img_flower.jpg);
    background-size: cover;
    background-repeat: no-repeat;
}

2. 定义多个尺寸的背景图像

background-size 属性也接受多个背景值(使用逗号分隔列表),当处理多个背景时。

下面的示例指定三个背景图像,每个图像具有不同的background-size值:

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

    <head>
        <meta charset="UTF-8">
        <title>项目</title>
        <style>
            #example1 {
                background: url(img/fy_indexBg.jpg) left top no-repeat, url(img/fy_indexBg.jpg) right bottom no-repeat, url(img/17I_hd.mp4.gif) left top repeat;
                padding: 15px;
                background-size: 50px, 130px, auto;
                color: white;
            }
</style>
    </head>

    <body>

        <div id="example1">
            <h1>Lorem Ipsum Dolor</h1>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
            <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
        </div>

    </body>

</html>

3. 全尺寸的背景图片

如果希望在一个覆盖整个浏览器窗口的网站上有一个背景图像。.

要求如下:

填满整个页面的图像(没有空白)

  1. 缩放图像
  2. 图像居中页面
  3. 没有滚动条

下面的示例演示如何使用HTML元素(HTML元素始终是浏览器窗口的高度)。然后设置一个固定中心的背景上。然后用background-size属性调整它的大小:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目</title>
  <style>
    html {
      background: url(img/fy_indexBg.jpg) no-repeat center fixed;
      background-size: cover;
    }
</style>
</head>
<body>

  <h1>整个页面背景图</h1>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
    suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>

</body>
</html>

三、属性

1. background-origin 属性

CSS3 background-origin 属性指定在背景图像定位在哪里.

这个属性有三个不同的值:

border-box :背景图像从边框的左上角开始。

padding-box :(默认)背景图像从左上角的填充边缘。

content-box :背景图像从左上角的内容

下面的例子说明了background-origin属性:

#example1 {
        border: 10px solid black;
        padding: 35px;
        background: url(img/fy_indexBg.jpg);
        background-repeat: no-repeat;
    }

    #example2 {
        border: 10px solid black;
        padding: 35px;
        background: url(img/fy_indexBg.jpg);
        background-repeat: no-repeat;
        background-origin: border-box;
    }

    #example3 {
        border: 10px solid black;
        padding: 35px;
        background: url(img/fy_indexBg.jpg);
        background-repeat: no-repeat;
        background-origin: content-box;
    }

完整代码:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>编程字典</title>
  <style>
    #example1 {
        border: 10px solid black;
        padding: 35px;
        background: url(img/fy_indexBg.jpg);
        background-repeat: no-repeat;
    }

    #example2 {
        border: 10px solid black;
        padding: 35px;
        background: url(img/fy_indexBg.jpg);
        background-repeat: no-repeat;
        background-origin: border-box;
    }

    #example3 {
        border: 10px solid black;
        padding: 35px;
        background: url(img/fy_indexBg.jpg);
        background-repeat: no-repeat;
        background-origin: content-box;
    }                
</style>
</head>
<body>

  <p>没有 background-origin (padding-box 默认):</p>
  <div id="example1">
  <h2>Lorem Ipsum Dolor</h2>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
  <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
  </div>

  <p>background-origin: border-box:</p>
  <div id="example2">
  <h2>Lorem Ipsum Dolor</h2>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
  <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
  </div>

  <p>background-origin: content-box:</p>
  <div id="example3">
  <h2>Lorem Ipsum Dolor</h2>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
  <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
  </div>

</body>
</html>

2. background-clip 属性

CSS3 background-clip 属性指定背景的绘制面积.

该属性有三个不同的值:

border-box – (默认) 背景是画的边框外边缘 padding-box-背景被显示到填充物的外缘。content-box – 背景是画在内容框内

下面举例演示了background-clip属性:

#example1 {
    border: 10px dotted black;
    padding: 35px;
    background: yellow;
    background-clip: content-box;
}

四、总结

本文主要介绍了CSS背景,通过CSS实现多背景显示,自定义某一些尺寸显示格式,background-origin等多个属性的应用,丰富的案例帮助大家更好的理解。

希望大家自己去尝试一下,实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

一篇文章带你了解HTML表格及其主要属性介绍

一、定义一个HTML表格

使用标签定义HTML表格。

标签定义表中的每一行使用。使用标签定义表头。默认情况下,表标题是粗体和居中的。一个表的数据/单元使用 标签定义。

<table style="width:100%">
 <tr>
   <th>Firstname</th>
   <th>Lastname</th>
   <th>Age</th>
 </tr>
 <tr>
   <td>Jill</td>
   <td>Smith</td>
   <td>50</td>
 </tr>
 <tr>
   <td>Eve</td>
   <td>Jackson</td>
   <td>94</td>
 </tr>
</table>
一篇文章带你了解HTML表格及其主要属性介绍

注意: 元素是表的数据容器。它们可以包含所有的HTML元素; 文本、图像、列表、其他表格等。


1. HTML表格 – 添加边框

如果不指定表的边框,则将不显示边框。

使用CSS设置表格的边框如下:

<style>
table, th, td {
   border: 1px solid black;
}
</style>
一篇文章带你了解HTML表格及其主要属性介绍

记住为表和表单元格定义边框。


2. HTML 表格 – 折叠边框

如果你想要的边框折叠成一个边框,添加CSS border-collaps边框属性:

<style>
 table, th, td {
     border: 1px solid black;
     border-collapse: collapse;  /*折叠边框*/
}
</style>
一篇文章带你了解HTML表格及其主要属性介绍

3. HTML 表格 – 添加单元格填充(padding)

单元格填充(padding)指定单元格内容及其边框之间的空间。

如果不指定填充(padding),则将显示表单元格而不填充(padding)。

设置填充,使用css padding属性:

<style>

 table, th, td {
     border: 1px solid black;
     border-collapse: collapse;
}
 th, td {
     padding: 15px; /* 设置边距*/
}
</style>
一篇文章带你了解HTML表格及其主要属性介绍

4. HTML表格 – 左对齐标题

默认情况下,表标题是粗体和居中的。

左对齐的表格标题,使用CSS text-align属性:

th {
   text-align: left;
}
一篇文章带你了解HTML表格及其主要属性介绍

5. HTML表格 – 添加边框间距

边框间距指定单元格之间的空间。

设置一个表空间的边界,使用CSS border-spacing属性:

table {
   border-spacing: 15px; /*添加边框间距*/
}

注意:如果表已经是collapsed折叠边框,边框间距没有影响。


6. HTML表格 单元格跨多列

使表格单元格跨越多个列,使用colspan属性:

<table style="width:100%">
 <tr>
   <th>姓名</th>
   <th colspan="2">电话</th>
 </tr>
 <tr>
   <td>Bill Gates</td>
   <td>55577854</td>
   <td>55577855</td>
 </tr>
</table>
一篇文章带你了解HTML表格及其主要属性介绍

7. HTML表中 – 单元格跨多行

使表格单元格跨多个行,使用rowspan属性:

<table style="width:100%">
 <tr>
   <th>姓名:</th>
   <td>比尔</td>
 </tr>
 <tr>
   <th rowspan="2">电话:</th>
   <td>55577854</td>
 </tr>
 <tr>
   <td>55577855</td>
 </tr>
</table>
一篇文章带你了解HTML表格及其主要属性介绍

8. HTML表格 – 添加标题

若要向表添加标题,请使用`标签:

<table style="width:100%">
 <caption>每月储蓄</caption> <!--标题-->
 <tr>
   <th></th>
   <th>储蓄</th>
 </tr>
 <tr>
   <td>January</td>
   <td>$100</td>
 </tr>
 <tr>
   <td>February</td>
   <td>$50</td>
 </tr>
</table>
一篇文章带你了解HTML表格及其主要属性介绍

注意:` 标签必须立即插入在“标签之后。


二、项目

为表格指定一个特殊样式

为表格指定一个特殊样式, 添加一个 id 属性:

<table id="t01">
 <tr>
   <th>Firstname</th>
   <th>Lastname</th>
   <th>Age</th>
 </tr>
 <tr>
   <td>Eve</td>
   <td>Jackson</td>
   <td>94</td>
 </tr>
</table>

现在您可以为这个表定义一个特殊的样式:

table#t01 {
   width: 100%;

   background-color: #f1f1c1;
   border: 2px solid black;
 
}
一篇文章带你了解HTML表格及其主要属性介绍

添加更多样式:

table#t01 tr:nth-child(even) {
   background-color: #eee;
}
table#t01 tr:nth-child(odd) {
   background-color: #fff;
}
table#t01 th {
   color: white;
   background-color: black;
}
一篇文章带你了解HTML表格及其主要属性介绍

小总结

标签描述<table>定义表格<th>定义表中的头单元格<tr>定义表中的一行<td>定义表中的单元格<caption>定义一个表格标题<colgroup>指定表格中一组或多个列的格式.<col>指定列内每个列的属性用. <colgroup> 元素<thead>使用表中的标题内容分组<tbody>将身体内容分组在一个表中


属性描述border属性定义一个边框border-collapse定义折叠单元格边框的属性padding添加到单元格中的填充text-align对齐单元格文本border-spacing设置单元格之间的间距colspan使单元格跨越多个列rowspan使单元格跨越多行id唯一表示一个表格

三、总结

本文主要介绍了HTML表格,对表格中主要的属性进行了详细的介绍。对遇到的问题进行详细的解答。方便大家表格的标签的了解。希望对大家的学习有帮助。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

—————— End ——————-

往期精彩文章推荐:

一篇文章教会你使用HTML5 SVG 标签

【一、项目背景】

SVG 表示可伸缩矢量图形,这是一门用于描述 2D 图形的语言,图形应用使用 XML 编写,然后 XML 由 SVG 阅读器程序呈现。支持三种类型的图形对象:矢量图形形状(例如,由直线和曲线组成的路径),图像和文本。图形对象可以进行分组,样式设置,转换和合成。功能集包括嵌套转换,剪切路径,Alpha蒙版,滤镜效果和模板对象。。

SVG 在 2003 年 1 月 14 日成为 W3C 推荐标准,你可以在 SVG 规范 页面中查看最新版本的 SVG 规范。

【二、怎么查看 SVG 文件?】

大多数 Web 浏览器都可以显示 SVG,就像它们可以显示 PNG,GIF 以及 JPG 图形。IE 用户可能需要安装 Adobe SVG 阅读器以便能够在浏览器中查看 SVG。

【三、HTML5 中嵌入 SVG】

HTML5 允许我们直接使用 _…</svg> 标签嵌入 SVG,

简单的语法:

<svg xmlns="http://www.w3.org/2000/svg"> 
</svg>

拓展:

FireFox 3.7 还引入了一个配置选项(”about:config”),可以通过下列步骤启用 HTML5:

  1. 在 FireFox 地址栏中输入 about:config。
  2. 在出现警告消息的地方点击 “I’ll be careful, I promise!” 按钮(确保遵守它)。
  3. 在页面顶部的过滤器中输入 html5.enable。
  4. 默认可能被禁用了,因此要点击它切换它的值为 true。

【四、实际案例】

1. SVG 圆

下面是一个 SVG 示例的 HTML5 版本,用 <circle> 标签绘制一个圆:

<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Circle</h2>
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <circle id="redcircle" cx="50" cy="50" r="50" fill="red" />
</svg>
</body>
</html>

启用 HTML5 的最新版 FireFox 中会生成如下结果:

2. SVG 矩形

下面是一个 SVG 示例的 HTML5 版本,用 <rect> 标签绘制一个矩形:

<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Rectangle</h2>
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <rect id="redrect" width="300" height="100" fill="red" />
</svg>
</body>
</html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

3. SVG 线条

下面是一个 SVG 示例的 HTML5 版本,用 <line> 标签绘制一个线条:

<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Line</h2>
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <line x1="0" y1="0" x2="200" y2="100"
          style="stroke:red;stroke-width:2"/>
</svg>
</body>
</html>

你可以使用 style 属性给它设置额外的样式信息,比如笔画,填充色,笔画宽度等等。

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

便于学习这一概念 – 请使用 FireFox 3.7 或更高的版本进行在线练习。

4. SVG 椭圆

下面是一个 SVG 示例的 HTML5 版本,用 <ellipse> 标签绘制一个椭圆:

<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Ellipse</h2>
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <ellipse cx="100" cy="50" rx="100" ry="50" fill="red" />
</svg>
</body>
</html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

便于学习这一概念 – 请使用 FireFox 3.7 或更高的版本进行在线练习。

5. SVG 多边形

下面是一个 SVG 示例的 HTML5 版本,用 <polygon> 标签绘制一个多边形:

<!DOCTYPE html>
<head>
<title>SVG</title>
<meta charset="utf-8" />
</head>
<body>
<h2>HTML5 SVG Polygon</h2>
<svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <polygon  points="20,10 300,20, 170,50" fill="red" />
</svg>
</body>
</html>

启用 HTML5 的最新版 FireFox 中会生成如下结果:

6. SVG 折线

<polyline> 元素用于绘制连接的直线。下面是一个 SVG 示例的 HTML5 版本,用 <polyline> 标签绘制一个折线图:

<html>
   <title>SVG折线</title>
   <body>

      <h1>简单SVG折线图片</h1>

      <svg width="800" height="800">
         <g>
            <text x="0" y="15" fill="black" >Polyline #1: Without opacity.</text>

            <polyline points="150,75 258,137.5 258,262.5 150,325 42,262.6 42,137.5"
            stroke="black" stroke-width="3" fill="none"></polyline>
         </g>
      </svg>

   </body>
</html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

7. SVG 渐变

下面是一个 SVG 示例的 HTML5 版本,用 <ellipse> 标签绘制一个椭圆,使用 <radialGradient> 标签定义一个 SVG 径向渐变。

我们可以以类似的方式用 <linearGradient> 标签创建 SVG 线性渐变。

<!DOCTYPE html>

<head>
  <title>SVG</title>
  <meta charset="utf-8" />
</head>

<body>
  <h2>HTML5 SVG Gradient Ellipse</h2>
  <svg id="svgelem" height="200" xmlns="http://www.w3.org/2000/svg">
    <defs>
      <radialGradient id="gradient" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
        <stop offset="0%" style="stop-color:rgb(200,200,200);
      stop-opacity:0" />
        <stop offset="100%" style="stop-color:rgb(255,0,0);
          <!--颜色为红-->
      stop-opacity:1" />
      </radialGradient>
    </defs>
    <ellipse cx="100" cy="50" rx="100" ry="50" style="fill:url(#gradient)" />
  </svg>
</body>

</html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

【五、总结】

1、讲解了Html中svg,对于遇到的一些难点进行了分析及提供解决方案。欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

2、代码很简单,希望对你学习有帮助。

IT共享之家

入群请在微信后台回复【入群】

****看完本文有收获?请转发分享给更多的人****

—————— End ——————

往期精彩文章推荐:

Python基础数据类型——tuple浅析

Python中tuple的使用

一、什么是元组?

有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。

二、用法

1. tuple元组的定义

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。示例如下:

tup1 = ('361way', 'com', 1997, 2000)
print(type(tup1))
tup2 = (1, 2, 3, 4, 5)tup3 = "a", "b", "c", "d"
print(type(tup3))
Python基础数据类型——tuple浅析

这里通过tup3可以看出,其并没有用小括号进行包括,但其也是元组。所以需要记住:任意无符号的对象,以逗号隔开,默认为元组 。另外需要特别注意只有一个元素时元组的创建:

tup1 = (111)
print(type(tup1))
tup1 = ("abc")
print(type(tup1))
tup1 = ("abc",)
print(type(tup1))
Python基础数据类型——tuple浅析

元组中只包含一个元素时,需要在元素后面添加逗号,否则就会是int 或 string 等其他数据类型。如果只是创建一个空元组时,则不受逗号的影响:

tup1 = ()
print(type(tup1))
Python基础数据类型——tuple浅析

2. 元组的索引与切片

同字符串、列表类型一样,元组也支持索引与切片 。而且用法也相同,

下面结合示例查看下:

tup1 = ('361way', 'com', 2013, 2014)
print(tup1[0])
print(tup1[4]) #取值超出其索引范围时报错
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup2[1:5])

由上面的结果可以看出,取出元组的单个元素数据时,得到的是该数据原来的类型 ; 取出其一段元素值时得到的仍是元组。

Python基础数据类型——tuple浅析

3. 修改元组的值

元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组,如下实例:

tup1 = ('361way', 'com', 2013, 2014)
del tup1[3]  # 删除单个元素,报错
tup1[3] = 'abc'  # 更改一个元素的值,报错
print(tup1[3])
del tup1  # 删除整个元组,正常print(tup1)
Python基础数据类型——tuple浅析

在实际应用中,有时候会遇到需要修改元组的值,那怎么办呢?可以通过一个变通的方法实现。

示例如下:

tup1 = ('361way', 'com', 2013, 2014)
list1 = list(tup1)
print(list1)
list1[3] = 'change'
print(list1)
tup1 = tuple(list1)print(tup1)
Python基础数据类型——tuple浅析

可以将tuple元组的值先通过list转化为列表,再对列表内的值进行修改,修改为再将list转化为tuple 。

不过这里需要注意的是此时的tup1已经非彼tup1,具体可以通过id函数进行查看,发现其内存地址已经发生了变化。

三、总结

本文基于Python基础,主要介绍了Python基础中tuple元组的使用,对于tuple的用法做了详细的讲解,用丰富的案例 ,代码效果图的展示帮助大家更好理解 。

tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

最后,希望可以帮助大家更好的学习Python。

想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

IT共享之家

入群请在微信后台回复【入群】

****看完本文有收获?请转发分享给更多的人****

—————— End ——————

往期精彩文章推荐:

Python基础变量类型——List浅析

Python使用list

一、list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

比如,列出班里所有同学的名字,就可以用一个list表示:

classmates = ['Michael', 'Bob', 'Tracy']
print(classmates)
Python基础变量类型——List浅析

变量classmates就是一个list。

len()函数

1. 获得list元素的个数:

classmates = ['Michael', 'Bob', 'Tracy']
print(len(classmates))

用索引来访问list中每一个位置的元素,记得索引是从0开始的:

classmates = ['Michael', 'Bob', 'Tracy']

print(classmates[0])

print(classmates[1])

print(classmates[2])

print(classmates[3])

当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) – 1。

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

print(classmates[-1])
Python基础变量类型——List浅析

以此类推,可以获取倒数第2个、倒数第3个:

classmates = ['Michael', 'Bob', 'Tracy']

print(classmates[-1])

print(classmates[-2])

print(classmates[-3])

print(classmates[-4])
Python基础变量类型——List浅析

当然,倒数第4个就越界了。

2. list是一个可变的有序表,往list中追加元素到末尾:

classmates = ['Michael', 'Bob', 'Tracy']

classmates.append('Adam')

print(classmates)

也可以把元素插入到指定的位置,比如索引号为1的位置:

classmates = ['Michael', 'Bob', 'Tracy']
#替换
classmates.insert(1, 'Jack')

print(classmates)
Python基础变量类型——List浅析

pop()函数

1. 删除list末尾的元素

classmates = ['Michael', 'Bob', 'Tracy']

print(classmates.pop())

print( classmates)
['Michael', 'Jack', 'Bob', 'Tracy']
Python基础变量类型——List浅析

2. 删除指定位置的元素,用pop(i)方法,其中i是索引位置。

classmates.pop(1)

print(classmates)
Python基础变量类型——List浅析

3. 把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

classmates = ['Michael', 'Bob', 'Tracy']

classmates[1] = 'Sarah'

print(classmates)
Python基础变量类型——List浅析

list里面的元素的数据类型也可以不同,比如:

L = ['Apple', 123, True]

list元素也可以是另一个list,比如:

s = ['python', 'java', ['asp', 'php'], 'scheme']
print(len(s))
Python基础变量类型——List浅析

要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:

p = ['asp', 'php']
s = ['python', 'java', p, 'scheme']

要拿到’php’可以写p[1]或者s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。

如果一个list中一个元素也没有,就是一个空的list,它的长度为0:

L = []
len(L)

二、总结

本文基于Python基础,主要介绍了Python基础中list列表,通过list列表的两个函数 ,对list的语法做了详细的讲解,用丰富的案例 ,代码效果图的展示帮助大家更好理解 。

使用Python编程语言,方便大家更好理解,希望对大家的学习有帮助。

IT共享之家

入群请在微信后台回复【入群】

****看完本文有收获?请转发分享给更多的人****

—————— End ——————

往期精彩文章推荐:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

【一、项目背景】

现在的听歌软件动不动就是各种付费,要下载软件才能听,当你下载了之后,你会惊奇的发现这首歌还收费,这就让一向喜欢白嫖的小编感到很伤心了。于是,小编冥思苦想,终于让我发现了其中的奥秘,一起来看看吧。

【二、项目准备】

1、编辑器:Sublime Text 3

2、软件:360浏览器

【三、项目目标】

下载我们喜欢的音乐。

【四、项目实现】

1、打开酷狗音乐官网

360浏览器打开酷狗音乐官网:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

可以看到十分清爽的画风,这也是我比较喜欢的地方。

2、审查元素,分析请求

打开Network ,分析请求,我们可以看到:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

从上图可以看出,这是请求的参数,所以我们可以使用Requests模块对它发起请求。

3、模拟发起请求

我们从网页中得知它的地址为:

https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord=%E4%B8%8D%E8%B0%93%E4%BE%A0

可以看到真正对于我们来说有用的就只有SearchKeyWord参数后的值,前面的搜索类型默认填写即可,所以我们可以这样:

import requests
headers={'accept': '*/*',
'accept-encoding':'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cookie': 'kg_mid=ebb2de813317a791bcf7b7d3131880c4; UM_distinctid=1722ba8b22632d-07ac0227c507a7-4e4c0f20-1fa400-1722ba8b2284a1; kg_dfid=0Q0BEI47P4zf0mHYzV0SYbou; kg_dfid_collect=d41d8cd98f00b204e9800998ecf8427e; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1590041687,1590280210,1590367138,1590367386; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1590367431',
'referer': 'https://www.kugou.com/yy/html/search.html',
'sec-fetch-mode': 'no-cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}aa=input('请输入歌名:')
data={
'callback': 'jQuery112408716317197794392_1590368232677',
'keyword':aa,
'page': '1',
'pagesize':'30',
'userid':'-1',
'clientver': '',
'platform': 'WebFilter',
'tag': 'em',
'filter': '2',
'iscorrection': '1',
'privilege_filter': '0',
'_': '1590368232679',
}requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=4)

这样就实现了模拟请求,我们来验证下:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

可以看出它成功打印出了和我们上面一模一样的地址。

4、获取音乐文件列表

rep=requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=5)
print(rep.url)
res=requests.get(rep.url,timeout=4)
print(res.text)

当我们将请求地址填写正确后,我发现竟然内容与预期不相符,但是请求地址对的一批。

我以为是这样的结果:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

实际上的结果:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

可以看到差距很大,而且用Json也根本获取不到,报格式错误,说明不是一个Json,看来这比QQ音乐难度高点。不过我们今天要下载的是音频文件,所以暂时跳过,不管它。

5、下载音频文件

我们在搜索后弹出来的列表中选择原唱曲目,进去听一下:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

我选择第一首,打开是这样,我们开始骚操作,打开Network:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

我们输入后缀Mp3,然后定位到对应的请求,然后打开它的请求结果,可以看到一个Json结果:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

我们将Json结果粘贴到控制台,可以看到里面有一段关于Mp3的结果,不过添加了点干扰符号,我们把它提取出来:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

这样我们就可以把酷狗音乐的歌曲下载下来了。

【五、项目总结】

1、其实,酷狗音乐与QQ音乐不同,酷狗音乐的下载链接更好捕获,你可以直接在它的播放界面捕获到:

一篇文章教会你使用Python网络爬虫下载酷狗音乐

模拟请求这个界面,一切都搞定了。

2、关于QQ音乐的获取,可以参考之前发布的系列文章:

3、需要本文源码的小伙伴,后台回复“酷狗音乐”四个字,即可获取。

IT共享之家

入群请在微信后台回复【入群】

****看完本文有收获?请转发分享给更多的人****

—————— End ——————

往期精彩文章推荐: