HTML5&CSS3Day02:CSS3新增选择器,用户界面属性,样式属性边框和盒阴影,渐变背景,文本效果,特殊文字,多列布局,多媒体查询

目录

0x00 CSS3新增选择器

0x01 CSS3新增的用户界面属性

0x02 CSS3 常用的样式属性边框与盒阴影

0x03 CSS3背景新特性

0x04精灵图片的使用

0x05 渐变背景

1.标准语法:

2.角度渐变:

3.重复线性渐变:

4.径向渐变:

扫描二维码关注公众号,回复: 9255431 查看本文章

5.重复径向渐变

0x06 css3文本效果及特殊字体的引入

1.text-shadow:给文本添加阴影效果

2.text-overflow:指定当文本溢出时包含它的元素的形式

4.word-break:指定内容的断行规则

0x07 CSS3的多列布局

0x08 设备兼容必备知识多媒体查询


0x00 CSS3新增选择器

1.ele1~ele2:表示匹配ele1之后的每一个ele2。ele1和ele2必须在同一个父元素下

注:搜狗输入”波浪线“可以打出~

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    h1~p{
        color:red;
    }
    </style>
</head>
<body>
<div>
<h1>HTML5</h1>
<p>css3</p>
<p>js</p>
</div>
</form>
</body>
</html> 

2.标签名[attribute^=value]匹配元素属性以指定value值开头的元素

3.标签名[attribute$=value]匹配元素属性以指定value值结尾的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    h1~p{
        color:red;
    }
    p[class^='head']{
        color:green;
    }
    p[class$='2']{
        background:black;
    }
    </style>
</head>
<body>
<div>
<h1 class="head1">HTML5</h1>
<p class="head2">css3</p>
<p class="foot2">js</p>
</div>
</form>
</body>
</html> 

4.标签名[attr*=value] 匹配元素属性包含指定value值的元素

5.元素:first-of-type 匹配的元素是其父元素的第一个子元素

6.元素:last-of-type 匹配的元素是其父元素下最后一个子元素

7.el:only-of-type 匹配的元素是其父元素下唯一的子el元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
   p:first-of-type{
       color:red;
   }
   p:last-of-type{
       color:green;
   }
   span:only-of-type{
       color:yellow;
       background:black;
   }
    </style>
</head>
<body>
<div>
<h1 class="head1">HTML5</h1>
<p class="head2">css3</p>
<span>php</span>
<p class="foot2">js</p>
</div>
</form>
</body>
</html> 

8.标签:only-child 匹配属于父元素中的唯一子元素的元素

9.标签el:nth-child(n)匹配父元素中的第n个子元素,子元素不是el元素则不生效

n可以是数字,关键字或者公式

10.el:nth-last-child(n)匹配父元素中的倒数第n个子元素,子元素不是el元素则不生效

11.el:nth-last-of-type(n)匹配父元素中同类型的倒数第n个子元素,n可以是数字,关键字或者公式

12.el:last-child匹配父元素中最后一个子元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    h1:only-child{
        color:red;
    }
    p:nth-child(2){
        color:green;
    }
    </style>
</head>
<body>
<div>

<div>
<h1 class="head1">HTML5</h1>
</div>

<div>
<p>c++</p>
<p>python</p>
</div>

<div>
<span>php</span>
<p class="head2">css3</p>
<p class="foot2">js</p>
</div>

</div>
</form>
</body>
</html> 

13.:root匹配文档的根元素,该选择器等同于html(在html文档中根元素就是html)

14.el:empty 匹配每个没有任何子集的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
   :root{
       background:black;
   }
   p:empty{
       width:100px;
       height:100px;
       background:greenyellow;
   }
    </style>
</head>
<body>
<p></p>
</body>
</html> 

15.:target 匹配当前活动的target元素的样式

a标签锚链接的用法

https://www.jianshu.com/p/361968442a2c

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    :target{
        background:yellow;
    }
    </style>
</head>
<body>
<a href="#html5">html5</a>
<a href="#css3">css3</a>
<div id="html5">点击了html5</div>
<div id="css3">点击了css3</div>
</body>
</html> 

当点击html5时,当前活动的target元素就是id=html5的标签

16.el:enabled匹配每个启用的元素(主要用于表单元素)

17.el:disabled匹配每个禁用的元素(主要用于表单元素)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
   input[type="text"]:enabled{
       border:1px solid green;
   }
   input[type="text"]:disabled{
       border:1px solid red;
   }
   input[type="password"]:disabled{
       border:1px solid red;
   }
    </style>
</head>
<body>
<form action="">
用户名:<input type="text" enabled>
密码:<input type="password" disabled>
</form>
</body>
</html> 

18.el:checked 匹配每个选中的input元素(仅适用于单选按钮和复选框)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
   input:checked~label{
       color:green;
   }
    </style>
</head>
<body>
<form action="">
<div><input type="radio" name="sex" id="male" value="male" checked="checked"><label for="male">male</label></div>
<div><input type="radio" name="sex" id="female" value="female"  ><label for="female">female</label> </div>
</form>
</body>
</html> 

19:not(选择器)匹配除了指定 选择器元素的其他元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
   input:checked~label{
       color:green;
   }
   :not(#male){
       background:black;
   }
    </style>
</head>
<body>
<form action="">
<div><input type="radio" name="sex" id="male" value="male" checked="checked"><label for="male">male</label></div>
<div><input type="radio" name="sex" id="female" value="female"  ><label for="female">female</label> </div>
</form>
</body>
</html> 

20. ::selection匹配被用户选中或处于高亮状态的元素

该选择器只可以应用于少数的css属性:color,background,cursor和outline

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    ::selection{
        color:red;
        background:green;
    }
    </style>
</head>
<body>
<p>hello world</p>
<p>talk is cheap,show me the code</p>
<p>php is the best language all over the world</p>
</body>
</html> 

21.el:out-of-range匹配值在指定区间外的input元素

22el:in-range匹配值在指定区间内的input元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        input:out-of-range{
            border:1px solid red;
        }
        input:in-range{
            border:1px solid green;
        }
    </style>
</head>
<body>
<label for="number">数学成绩:</label><input type="number" id="number" min="0" max="150" autofocus>
</body>
</html> 

23.el:read-wirte匹配可读及可写的元素

24.el:read-only匹配设置了readonly属性的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        input:read-only{
            border:1px solid blue;
            color:red;
            background:blue;
        }
        input:read-write {
            border:1px solid green;
            background:green;
        }
    </style>
</head>
<body>
<label for="number">数学成绩:</label><input type="text" id="number" min="0" max="150" autofocus>
<label for="chinese">语文成绩:</label><input type="text" id="chinese" value="123" readonly>
</body>
</html> 

25.el:optional匹配可选的输入元素

optional选择器只适用于表单元素:input select 和textarea

26.el:required匹配设置了required属性的元素

optional选择器只适用于表单元素:input select 和textarea

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        input:optional{
            border:1px solid blue;
            color:red;
            background:blue;
        }
        input:required{
            border:1px solid green;
            background:green;
        }
    </style>
</head>
<body>
<label for="number">数学成绩:</label><input type="text" id="number" min="0" max="150" autofocus>
<label for="chinese">语文成绩:</label><input type="text" id="chinese" value="123" required>
</body>
</html> 

27el:valid匹配输入值为合法的元素

valid选择器只作用于能指定区间值的元素,例如input元素中的min和max属性,以及正确的email字段,合法的数字字段等。

28.el:invalid匹配输入值为非法的元素

0x01 CSS3新增的用户界面属性

1、resize属性规定是否可以调整元素的尺寸:

none:无法调整元素的尺寸

both:可以调整元素的高度和宽度

horizontal:只可以调整宽度

vertical:只可以调整高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       #a{
           resize:none;
       }
       #b{
           resize:vertical;
           border:1px solid green;
           /* 加上该属性div元素也能调整宽和高 */
           overflow:auto;
           height:100px;
       }
    </style>
</head>
<body>
<textarea name="" id="a" cols="30" rows="10"></textarea>
<div id="b"></div>
</body>
</html> 

2、box-sizing 改变盒子模型

content-box 默认值,正常的盒子模型,padding和border不计入width和height内

border-box 怪异的盒子模型 padding和border计入width和height内

inherit:表示继承父元素的盒子模型

注意:不同的浏览器修改盒子模型需要在box-sizing之前加上前缀

3.outline-offset 设置轮廓框架在border边缘外的偏移

outline和border的区别:

outline不占用空间

outline可以使非矩形的状态

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
     
       div{
          float:left;
          border:10px solid red;
          /* 在border外加上一层outline */
          outline:10px solid green;
          /* 还可以设置outline相对于border的偏移 */
          outline-offset:20px;
          height:100px;
          width:100px;
          margin:100px;
       }
    </style>
</head>
<body>
<div></div>
<div></div>
</body>
</html> 

0x02 CSS3 常用的样式属性边框与盒阴影

1.CSS3圆角属性:border-radius

border-radius属性每个半径四个值的顺序分别是左上角,右上角,右下角,左下角

椭圆的水平半轴/椭圆的垂直半轴

画一个椭圆:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          float:left;
          border:1px solid red;
          /* 水平半轴是宽度的一半,垂直半轴是高度的一半 */
          border-radius:50px/100px;
          width:100px;
          height:200px;
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

2.CSS3盒阴影属性box-shadow:

被用来添加阴影

box-shadow:h-shadow v-shadow blur spread color insert;

h-shadow:必须的,水平阴影的位置,允许负值

v-shadow:必须的,垂直阴影的位置,允许负值

blur:可选,模糊距离。

spread:可选,阴影的大小,表示在原来的基础上扩展的大小。

color:可选,阴影的颜色。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          border:1px solid red;
          /* 水平位移 垂直位移 模糊距离 阴影大小 阴影颜色 */
          box-shadow:10px 10px 2px 5px green;
          width:100px;
          height:100px;
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

inset:可选,阴影向内扩散。

3.css3图片边框属性

border-image:指定一个图片作为边框

border-image:图片地址 切割大小 /【图片边框的宽度】【 定义边框图片向外偏移的宽度】 【用于设置图像边界是否重复:repeat重复,拉伸stretch 铺满:round】

1.切割大小:可以分别设置

距离上边界切割的距离

距离右边界切割的距离

距离下边界切割的距离

距离左边界切割的距离

2.图片边框的宽度 默认和 border:15px solid transparent 中的宽度即15px保持一致的,可以不设置。

如果设置为20px,则会向内再扩展5px(会占据content),更新为20px.

3.向外偏移的宽度:默认向外偏移的宽度为0,即和边框重合,如果设置为15px,则图片边框距离边框内侧的距离是15px;

因为图片是81X81的所以设置切割距离为81/3=27

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          border:15px solid transparent;
          width:200px;
          height:200px;
          border-image:url('border.png') 27 / 20px / 15px round;
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

0x03 CSS3背景新特性

1.background-image 添加背景图片

可添加多个背景,每张图片用逗号隔开,前面的图片会绘制在后面的图片上

2.background-size 设置背景图片的大小

length方式:指定图片大小像素值

百分比方式:相对于父元素的百分比

cover 表示背景图片完全覆盖背景区,图片自动伸缩。

contain 按图片原有比例,把整张图片在背景区显示出来

3.background-orign:指定背景图片的位置

可传的值

border-box:将背景图片左上角从border区域开始绘制

padding-box:默认值,背景图片左上角从padding区域开始绘制,至于绘制到什么位置看clip属性

content-box:背景图片左上角从content区域开始绘制

注意:

当使用background-attachment为fixed时,该属性忽略不计

4.background-clip:指定从哪个位置开始绘制

可传的值如下:

border-box 默认值,背景延伸至边框外沿(但是在边框下层)

padding-box背景延伸至内边距外沿,不会绘制到边框处

content-box:背景被剪裁到内容区外沿

text:背景被剪裁成文字的前景色。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          border:15px solid transparent;
          width:200px;
          height:200px;
          border-image:url('border.png') 27 / 15px / 15px round;
          /* background-image:url('border.png'),url("2.jpg"); */
          background-image:url('2.jpg');
          /* background-size:200px 200px; */
          /* background-size:100% 100%; */
          /* background-size:contain; */
          background-size:cover;  
          /* background-origin:border-box; */
          background-origin:content-box;
          background-clip:content-box;
          background-repeat:no-repeat;
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

0x04精灵图片的使用

其实就是从一张图片中扣出一部分来显示

background-position:x y 设置图片左上角在背景区的坐标

只要限制背景区的大小,然后移动图片,让想要扣出来的部分在被背景区显示出来即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:27px;
          height:27px;
          background-image:url('border.png');
          background-repeat:no-repeat;
          background-position:-27px 0;
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

0x05 渐变背景

1.标准语法:

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

direction:渐变方向,默认情况是从上到下

注意:

标准语法中direction指渐变的末尾位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:100px;
          height:100px;
          /* background:linear-gradient(black,white); */
          background:linear-gradient(to right,black,white);
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

其他浏览器前缀语法,direction值渐变的起始位置。例如:

background:-webkit-linear-gradient(top,red,green);

还可以指定每种颜色开始渐变的位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:100px;
          height:100px;
          /* background:linear-gradient(black,white); */
          background:linear-gradient(to right,red 10%,orange 50%,yellow);
          /* 为了兼容各版本浏览器加上的代码,其实不加也可以兼容 */
          background:-webkit-linear-gradient(left,red 10%,orange 50%,yellow);
          background:-moz-linear-gradient(left,red 10%,orange 50%,yellow);
          background:-o-linear-gradient(left,red 10%,orange 50%,yellow);
          background:-ms-linear-gradient(left,red 10%,orange 50%,yellow);
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

2.角度渐变:

标准语法0度指向北(从下向上渐变),其他浏览器前缀语法0deg指向东。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:100px;
          height:100px;
          /* background:linear-gradient(black,white); */
          background:linear-gradient(0deg,red 10%,orange 50%,yellow);
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

3.重复线性渐变:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:100px;
          height:100px;
          background:repeating-linear-gradient(0deg,red,orange 10%,yellow 20%);
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

4.径向渐变:

background:radial-gradient(shape size at position,color1,color2,...)

1.shape:可选,

默认为椭圆ellipse

circle

2.size:定义渐变的大小

farthest-corner(默认) 指定径向渐变的半径长度从圆心到离圆心最远的角

closest-side 指定径向渐变的半径长度为从圆心到离圆心最近的边

closest-corner:指定径向渐变的半径长度为从圆心到离圆心最近的角

farthest-side:指定径向渐变的半径长度为从圆心到离圆心最远的边

3.position:定义渐变的位置

center(默认):设置 中间为径向渐变圆心的纵坐标

top:设置顶部为径向渐变圆心的纵坐标值

bottom:设置底部为径向渐变圆心的纵坐标值

注意:前三个参数之间没有逗号!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:200px;
          height:100px;
          background:radial-gradient(circle farthest-corner at top,red 10%,orange 50%,yellow 70%);
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

5.重复径向渐变

repeating-radial-gradient()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
       div{
          width:200px;
          height:100px;
          background:repeating-radial-gradient(circle farthest-corner at top,red 10%,orange 20%,yellow 30%);
       }
    </style>
</head>
<body>
<div></div>
</body>
</html> 

0x06 css3文本效果及特殊字体的引入

1.text-shadow:给文本添加阴影效果

text-shadow:h-shadow v-shadow blur color

h-shadow  必需。水平阴影的位置,可以负值

v-shadow 必需,垂直阴影的位置,允许负值

blur 可选,模糊距离

color 可选 阴影的颜色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        *{
            background:black;
        }
        html,body{
            position:relative;
            width:100%;
            height:100%;
        }
        div{
           width:300px;
           height:50px;
           position:absolute;
           top:50%;
           left:50%;
           margin-left:-150px;
           margin-top:-25px;
           text-shadow:2px 2px 2px green;
           color:green;
           text-align:center;
       }
    </style>
</head>
<body>
<div>
Talk is cheap,show me the code;
</div>
</body>
</html> 

2.text-overflow:指定当文本溢出时包含它的元素的形式

text-overflow:clip|ellipsis|string

clip: 修建文本

ellipsis 显示省略号来代表被修剪的文本

string 使用给定的字符串来代表被修剪的文本(只在firefox有效)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        div{
            width:200px;
           /* 对于溢出的处理 */
           overflow:hidden;
           white-space:nowrap; /* 禁止换行 */
           text-overflow:ellipsis;
       }
    </style>
</head>
<body>
<div>
text-overflow:指定当文本溢出时包含它的元素的形式

text-overflow:clip|ellipsis|string

clip: 修建文本

ellipsis 显示省略号来代表被修剪的文本

string 使用给定的字符串来代表被修剪的文本
</div>
</body>
</html> 

3.word-wrap:允许内容在过长情况下可以自动换行

word-wrap:normal | break-word

normal 只允许在断字点换行

break-word 在长单词或url地址内部进行换行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        div{
            width:200px;
           /* 对于溢出的处理 */
           overflow:hidden;
           word-wrap:break-word;
           /* word-wrap:normal; */
       }
    </style>
</head>
<body>
<div>
this is a long worddddddddddddddddddddddddddd;
</div>
</body>
</html> 

4.word-break:指定内容的断行规则

normal:使用浏览器默认的换行规则

break-all 允许在单词内换行

keep-all 只能在半角空格或连字符处换行。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        div{
            width:200px;
           /* 对于溢出的处理 */
           overflow:hidden;
           word-wrap:break-word;
           word-break:break-all;
           /* word-wrap:normal; */
       }
    </style>
</head>
<body>
<div>
this is a long worddddddddddddddddddddddddddd;
</div>
</body>
</html> 

5.@font-face规则:定义自己的字体

首先定义字体的名称(比如:myFirstFont)然后指向该字体文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    /* 定义字体 */
    @font-face{
        font-family:myFont;
        src:url("Dexsar.ttf");
    }
        div{
            width:200px;
           /* 对于溢出的处理 */
           overflow:hidden;
           word-wrap:break-word;
           word-break:break-all;
           /* 使用字体 */
           font-family:myFont;
       }

    </style>
</head>
<body>
<div>
this is a long worddddddddddddddddddddddddddd;
</div>
</body>
</html> 

0x07 CSS3的多列布局

column-count 指定了需要分割的列数

column-gap 指定了列与列间的间隙大小

column-rule-style 指定了列与列之间的边框样式solid dashed

column-rule-width 指定了两列的边框厚度

column-rule-color:指定了两列的边框颜色

column-rule是column-rule-*的简写

column-rule:1px solid green;

column-width:指定列的宽度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    div{
        column-count:3;
        column-gap:40px;
        column-rule-style:dashed;
        column-rule-width:2px;
        column-rule-color:grey;
    }
    </style>
</head>
<body>
<div>
月溅星河,长路漫漫,风烟残尽,独影阑珊;谁叫我身手不凡,谁让我爱恨两难,到后来,肝肠寸断。幻世当空,恩怨休怀,舍悟离迷,六尘不改;且怒且悲且狂哉,是人是鬼是妖怪,不过是,心有魔债。叫一声佛祖,回头无岸,跪一人为师,生死无关;善恶浮世真假界,尘缘散聚不分明,难断!我要这铁棒有何用,我有这变化又如何;还是不安,还是氐惆,金箍当头,欲说还休。我要这铁棒醉舞魔,我有这变化乱迷浊;踏碎灵霄,放肆桀骜,世恶道险,终究难逃。梦醒太晚!这一棒,早已灰飞烟灭…...
</div>
</body>
</html> 

0x08 设备兼容必备知识多媒体查询

使用多媒体查询可以在指定的设备上使用对应的样式替代原有样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
    /* 大于480px的时候 */
    @media screen and (min-width:480px) and (max-width:600px){
        body{
            background:red;
        }
    }
    /* 大于600px且小于900px */
    @media screen and (min-width:600px) and (max-width:900px){
        body{
            background:green;
        }
    }

    </style>
</head>
<body>
<div>
月溅星河,长路漫漫,风烟残尽,独影阑珊;谁叫我身手不凡,谁让我爱恨两难,到后来,肝肠寸断。幻世当空,恩怨休怀,舍悟离迷,六尘不改;且怒且悲且狂哉,是人是鬼是妖怪,不过是,心有魔债。叫一声佛祖,回头无岸,跪一人为师,生死无关;善恶浮世真假界,尘缘散聚不分明,难断!我要这铁棒有何用,我有这变化又如何;还是不安,还是氐惆,金箍当头,欲说还休。我要这铁棒醉舞魔,我有这变化乱迷浊;踏碎灵霄,放肆桀骜,世恶道险,终究难逃。梦醒太晚!这一棒,早已灰飞烟灭…...
</div>
</body>
</html> 
发布了156 篇原创文章 · 获赞 19 · 访问量 8929

猜你喜欢

转载自blog.csdn.net/weixin_43415644/article/details/104133460