gin 框架:CSS 基础开发

CSS 基础开发

在本文中我将介绍以下几点:

  • CSS介绍

  • 使用方法

  • 选择器

  • 常用属性

1 CSS 介绍

期初网页上的内容可以通过 html 进行展示和渲染,但是我们可以看到相对来说比较朴素,这时候就需要我们对其做一些适当的修饰和美化,这时候就需要使用到我们的 CSS

CSS:是一种用于修饰网页的文本样式语言,还可以配合 Javascript 脚本语言动态对网页各标签名操作。

2 CSS 使用方式

1、内联方式(行内样式),直接在标签中指定 style 来设置 CSS 样式属性

<p style="color:red">在HTML中如何使用css样式</p>

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
</head>
<body>
<!-- 继承上面 style 中 div 指定的红色 -->
    <div style="color: green">
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
</body>
</html>

字体为绿色

2、内部方式(内嵌样式),在 head 标签中使用,这种方式使用相对较多

<style type="text/css">
    p {
    color:red;
    }
</style>

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
<!-- 对 head 中的 div 指定颜色为红色,常用方法 -->
    <style>
        div {
           color: red;
        }
    </style>
</head>
<body>
<!-- 继承上面 style 中 div 指定的红色 -->
    <div>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
</body>
</html>

可以字体看到已经为红色

3、外部导入方式(推荐),在head标签中使用

<link href="main.css" type="text/css" rel="stylesheet"/>

2.1 选择器

所谓的选择器也就是说,如何在 html 中的多个代码块中如何指定一个我们想要改变样式的代码块

选择器的目的就是让 css 找到我们想要改变样式的那个 html 标签名,如 form、div 等这类标签

选择器:指定需要改变样式的HTML标签名(标签)

常见选择器:标签选择器、类选择器、ID选择器、派生选择器

格式: 选择器{属性:值;属性:值;属性:值;….}

我们学 css 主要就是两点:

  1. 找那块标签字段
  2. 对找到后的字段需要进行什么操作

2.1.1 选择器:标签名

标签名选择器:使用html标签作为选择器,为指定标签设置样式。

示例1:h1标签名设置样式

h1 {
    color: red; 
    font-size: 14;
}

范例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 对 head 中的 div 指定颜色为红色 */
        div {
           color: red;
        }
        /* 指定 h1 为紫色 */
        h1{
            color: blueviolet;
        }
    </style>
</head>
<body>
    <h1>你好前端!</h1>

    <!-- 继承上面 style 中 div 指定的红色 -->
    <div style="color: green">
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
</body>
</html>

示例2:多个标签名设置样式,这里是对 h1,h2,h3,h4,h5,h6 标签里的内容都设置为绿色

h1,h2,h3,h4,h5,h6 {
    color: green;
}

示例3:子标签名会继承最高级标签名所有属性

body {
    color: #000;
    font-family: Verdana, serif; /*字体*/ 
}

2.1.2 选择器:ID

上面的例子中我们可以看到覆盖的范围都很大,生效都是一大块的生效,那么有什么方式可以只修改特定的标签,这时候就需要通过 id 选择器的方式来实现,这是一种相对使用较多的方案

id 选择器:使用 “id” 作为选择器,为指定 id 设置样式。

使用格式:#id名{样式...}

特点:

  • 每个id名称只能在HTML文档中出现一次
  • 在实际开发中,id一般预留JavaScript使用

第一步:给标签指定id

<p id="t">...</p>

第二步:针对 id 设置样式

#t {
    color: red;
}

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        h1{
            color: blueviolet;
        }
        /*指定 id t 选择器为红色*/
        #t{
          color: red;
        }
        /*指定 id tp 选择器为蓝色,会覆盖父属性,前提属性一样*/
        #tp {
            color: blue;
        }
    </style>
</head>
<body>
    <h1>你好前端!</h1>
    <h1>你好css!</h1>
    <div>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
<!-- 引用 id=t 的选择器 -->
    <div id="t">
        <!-- 引用 id=tp 的选择器 -->
        <p id="tp">这是第2个段落</p>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
    </div>
</body>
</html>

可以看到第二个 div 的内容为红色,而第一个 p 标签的内容为蓝色

可以看到通过这种指定 id 的方式从而实现了不同标签的单独赋值,这种方式可以针对性的对每一个标签进行管理

2.1.3 选择器:class

ID 选择器在 css 中使用较少,而我们常用的则是 class 选择器

类选择器:使用“类名”作为选择器,为指定类设置样式。

class 选择器与 ID 选择器的区别:

  • class 选择器在 html 代码中能够出现多次,而 id 选择器只能够出现一次
  • class 选择器是具有可复用性

使用格式:.类名{样式…}

第一步:给标签指定类

<p class="c">...</p>

第二步:针对类设置样式

.c {
    color: red;
}

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 指定 h1 标签为 紫色 */
        h1{
            color: blueviolet;
        }
        /* 指定 .c 类型为 red */
        .c{
            color: red;
        }
        /* 指定 .p 类型为 green */
        .p{
            color: green;
        }
    </style>
</head>
<body>
    <h1>你好前端!</h1>
    <h1>你好css!</h1>
    <!-- 引用 style 中 .c 类型指定的红色 -->
    <div class="c">
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <!-- 引用 style 中 .p 类型指定的绿色 -->
        <p class="p">这是第一个段落</p>
    </div>
    <div>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
    </div>
</body>
</html>

可以看到第一个 div 中已经赋值了红色,然后 class="p" 选择器的就为绿色

2.1.4 选择器:派生

派生选择器:依据标签名在其位置的上下文关系来定义样式。


如上图:

在一个 html 中类似于像树形结构一样的关系,可以看到顶级就是 html,而接着就是 head、body,第三级则是一些常用的 h1、div 等标签。

所以能够看出 html 中是有对应的结构,而我们就能够通过这种结构来找到对应的标签

示例:

<style type="text/css">
    .c p {
        color: red;
    }
</style>

<div class="c">
    <h1>一号标题</h1>
    <p>这是一个段落</p>
</div>

代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 定义 .c 的 class 然后 h3 标签指定为红色 */
        .c h3{
            color: red;
        }
    </style>
</head>
<body>
    <h1>你好前端!</h1>
    <h1>你好css!</h1>
    <!-- 引用 style 中 .c 类型指定的红色 -->
    <div class="c">
        <h3>派生选择器</h3>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
    <div>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
    </div>
</body>
</html>

h3 中的派生选择器已经为红色

3 CSS 常用属性

在第二章节中,我们已经实现了对标签的寻找,但是只是简单修改颜色,接下来我们就看看其他几个常见的功能

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 分别给 cc1 和 cc2 的 class 选择器设置两个不同的背景 */
        .cc1 {
            background:palegreen;
        }
        .cc2 {
            background: aquamarine;
        }
    </style>
</head>
<body>
    <h1>你好前端!</h1>
    <h1>你好css!</h1>
    <!-- 引用 style 中 .c 类型指定的红色 -->
    <div class="cc1">
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
    <div class="cc2">
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
    </div>
</body>
</html>

当我们访问浏览器的时候可以发现现在有两个背景,但是正常情况下我们会给这两个背景调试一定的距离,所以当 div 布局完之后我们会给他定义长度和宽度

所以我这里将其代码进行修改,并设置了宽和高

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 分别给 cc1 和 cc2 的 class 选择器设置两个不同的背景 */
        .cc1 {
            background:palegreen;
            /* 设置宽度和高度为 200px ,正常情况下 div 都需要设置宽和高 */
            width: 200px;
            height: 200px;
        }
        .cc2 {
            background: aquamarine;
            /* 设置宽度和高度为 200px */
            width: 200px;
            height: 200px;
        }
    </style>
</head>
<body>
    <h1>你好前端!</h1>
    <h1>你好css!</h1>
    <!-- 引用 style 中 .c 类型指定的红色 -->
    <div class="cc1">
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
        <p>这是第一个段落</p>
    </div>
    <div class="cc2">
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
        <p>这是第2个段落</p>
    </div>
</body>
</html>

这次就可以看到对应的高度和宽度

虽然设置了高度和宽度,但是有的时候希望将 div 放到一个我们自己想放的一个位置,所以接下来我们就需要学习如何来控制 div 的一个位置

3.1 CSS常用属性:内边距和外边距

  • padding(内边距):钻戒到盒子内边框的距离
  • margin(外边距):钻戒盒子距离桌子边缘的距离,假设将戒指放到桌子上,也就是钻戒盒子到桌子边框的这么一个距离,所以我们可以将桌子想象成一个 html 的这么一个文档,然后将 div 想象成一个钻戒盒子,然后在这个 div 中也会放其他的元素这就表示钻戒。
  • border:钻戒盒子边框宽度

padding:用于调整内边距,也就是相当于上面钻戒到盒子边缘的这么一个距离

margin:用于调整外边距,相当于上面钻戒到桌面边缘的这么一个距离

示例:

padding: 10px 5px 15px 20px # 上右下左

padding: 10px 5px 15px # 上右下

padding: 10px 5px # 上右

padding: 10px # 四边都是10px

3.1.1 代码示例

这里我就在百度上找一个钻戒的图片用来举例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
/* 桌子宽高 300px 背景为灰色 */
        .zuozi{
            width: 300px;
            height: 300px;
            background: gray;
        }
/* 盒子宽高 100px 背景为红色 */
        .hezi{
            width: 100px;
            height: 100px;
            background: red;
        }
        /* 通过派生方式查找 img */
        .hezi img{
            width: 50px;
            height: 50px;
        }
    </style>
</head>
<body>
<!-- 定义一个桌子 -->
    <div class="zuozi">
        <!-- 定义一个钻戒盒子 -->
        <div class="hezi">
            <!-- 导入钻戒图片 -->
            <img src="images/钻戒.jpg" alt="" >
        </div>
    </div>
</body>
</html>


但是现在这个图片可以看到都是默认在靠左边,那么我们该如何移动到桌子的中央来。

修改代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
/* 桌子宽高 300px 背景为灰色 */
        .zuozi{
            width: 300px;
            height: 300px;
            background: gray;
        /* 添加边框用来锁定布局,以实现盒子能够正常移动 */
            border: 1px dashed gray;
        }
/* 盒子宽高 100px 背景为红色 */
        .hezi{
            width: 100px;
            height: 100px;
            background: red;
            /* margin-left 和 margin-top 将上外边距和左外边距设置为 100px */
            /* 因为本身盒子的高宽为 100px 而桌子则为 300px 所以让左外和上外边距分别设置为 100 px 这样盒子就会在中间 */
            margin-left: 100px; /* 盒子向右移动 100px */
            margin-top: 100px; /* 盒子向下移动 100px */
        }
        /* 通过派生方式查找 img */
        .hezi img{
            width: 50px;
            height: 50px;
            /* 因为戒子的高宽为 50px 而盒子则为 100px 所以让左外和上外边距分别设置为 25 px 这样戒子就会在中间 */
            margin-left: 25px; /* 钻戒向右移动 25*/
            margin-top: 25px;  /* 钻戒向下移动 25*/
        }
    </style>
</head>
<body>
<!-- 定义一个桌子 -->
    <div class="zuozi">
        <!-- 定义一个盒子 -->
        <div class="hezi">
            <!-- 导入钻戒图片 -->
            <img src="images/钻戒.jpg" alt="" >
        </div>
    </div>
</body>
</html>

可以看到钻戒就跑到了中间

3.2 CSS常用属性:字体 font-*

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .cc{
            color: red;
            /* 设置字体大小 16像素 */
            font-size:16px;
            /* 字体加粗 */
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="cc" >
        <p>这是一个段落</p>
        <p>这是一个段落</p>
        <p>这是一个段落</p>
    </div>
</body>
</html>

3.3 CSS 常用属性:文本

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .cc{
            color: red;
            /* 设置字体大小 16像素 */
            font-size:16px;
            /* 字体加粗 */
            font-weight: bold;
            /* 设置宽度和高度 */
            width: 200px;
            height: 200px;
            /* 设置背景为灰色 */
            background: gray;
            /* 设置字体居中 */
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="cc" >
        <p>这是一个段落</p>
        <p>这是一个段落</p>
        <p>这是一个段落</p>
    </div>
</body>
</html>

3.3.1 去掉超链接下划线

如下图可以看到默认情况下是有超链接的

那么如何去掉超链接中的下划线

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
</head>
<body>
    <!-- style="text-decoration:none" 可以去除超链接中的下划线 -->
    <a href="www.baidu.com" style="text-decoration:none " >百度</a>
</body>
</html>

3.4 CSS常用属性:边框 border-*

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .cc{
            width: 300px;
            height: 300px;
            background: coral;
            /* 添加边框 5px像素并且是实心蓝色的 */
            border: 5px solid blue ;
            /* 将边框四个角边圆 */
            border-radius: 10px;
            /* 给边框添加阴影 */
            box-shadow: 1px 2px 3px 1px #c2c2c2;
        }
    </style>
</head>
<body>
    <div class="cc" >
        <p>这是一个段落</p>
        <p>这是一个段落</p>
        <p>这是一个段落</p>
    </div>
</body>
</html>

可以看到这里就已经有圆边框和阴影等样式

3.4.1 如何实现卡片效果

我们可以通过 box-shadow 这种方式实现卡片效果,而常用的有以下两种

示例一:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .cc{
            width: 300px;
            height: 300px;
            /* 将边框四个角边圆 */
            border-radius: 10px;
            /* 给边框添加阴影 */
            box-shadow: 1px 2px 3px 1px #c2c2c2;
        }
    </style>
</head>
<body>
    <div class="cc" >
        <p>这是一个段落</p>
        <p>这是一个段落</p>
        <p>这是一个段落</p>
    </div>
</body>
</html>

可以看到已经有类似于卡片效果了

示例二:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .cc{
            width: 300px;
            height: 300px;
            /* 将边框四个角边圆 */
            border-radius: 10px;
            /* 给边框添加阴影 */
            box-shadow: 0 5px 20px 0 #e8e8e8;
        }
    </style>
</head>
<body>
    <div class="cc" >
        <p>这是一个段落</p>
        <p>这是一个段落</p>
        <p>这是一个段落</p>
    </div>
</body>
</html>

3.5 CSS常用属性:背景 background-*

3.5.1 图片相关处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .cc {
            width: 300px;
            height: 300px;
            /*通过 background-image: url("./images/钻戒.jpg") 导出本地 /images/钻戒.jpg 图片*/
            background-image: url("./images/钻戒.jpg");
            /* 通过 background-size: 300px 300px 设置图片高宽分别都为 100px,因为有的图片比我设置的 div 高宽要多就会导致图片溢出 */
            background-size: 300px 300px;
            /* 只让图片显示一次*/
            background-repeat: no-repeat;
        }
    </style>
</head>
<body>
    <div class="cc" >

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

可以看到现在该图片就已经将 div 填充满了

3.6 CSS常用属性:Flex弹性布局

在之前要控制HTML元素的布局,会用到 padding、margin、postion、float 等方法,经过反反复复调试才能实现效果。

自从 Flex 弹性布局出现,一切似乎豁然开朗!

启用 Flex 布局,只需要在外部元素设置 display: flex 属性


如上图,假如一个个绿色小方框就是对应的 div ,Flex布局有一个隐式的坐标空间,水平方向有一条主轴,垂直方向有一条交叉轴:

我们可以基于交叉轴和主轴来改变里面这三个 div 的布局

改变主轴(横向)的布局:

justify-content:

  • flex-end:右对齐

  • center:居中对齐

  • space-evenly:平分空间

  • space-between:两端对齐

改变交叉轴(竖向)的布局:

align-items

  • flex-end:靠下对齐

  • center:居中对齐

调整空间占比(子元素宽度):

例如第一个元素三分之一,第二个元素占三分之二,第三个元素占三

分之一:flex:1;flex2;flex1

3.6.1 默认布局范例演示

1 这里我先写一个演示代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        .flex{

        }
        /*红色*/
        .flex1{
            background: red;
        }
        /*绿色*/
        .flex2{
            background: green;
        }
        /*橙色*/
        .flex3{
            background: orange;
        }
    </style>
</head>
<body>
    <div class="flex" >
            <!-- 分别在三个不同的 div 中引用对应的 flex1 -->
            <div class="flex1">DIV1</div>
            <div class="flex2">DIV2</div>
            <div class="flex3">DIV3</div>
    </div>
</body>
</html>

可以看到当前是采用了 html 的默认布局

3.6.2 启用 flex 布局

现在我就准备启用 flex 布局,启用 flex 布局只能在父元素进行定义

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 给父元素 div 进行布局 */
        .flex{
            /* 添加灰色边框为 3 像素 */
            border: 3px gray solid ;
        }
        /*红色*/
        .flex1{
            background: red;
        }
        /*绿色*/
        .flex2{
            background: green;
        }
        /*橙色*/
        .flex3{
            background: orange;
        }
    </style>
</head>
<body>
    <div class="flex" >
            <!-- 分别在三个不同的 div 中引用对应的 flex1 -->
            <div class="flex1">DIV1</div>
            <div class="flex2">DIV2</div>
            <div class="flex3">DIV3</div>
    </div>
</body>
</html>

可以看到现在整个都被灰色的边框所包裹

3.6.3 定义宽度和高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 给父元素 div 进行布局 */
        .flex{
            /* 添加灰色边框为 3 像素 */
            border: 3px gray solid ;
        }
        /*红色*/
        .flex1{
            width: 300px;
            height: 300px;
            background: red;
        }
        /*绿色*/
        .flex2{
            width: 300px;
            height: 300px;
            background: green;
        }
        /*橙色*/
        .flex3{
            width: 300px;
            height: 300px;
            background: orange;
        }
    </style>
</head>
<body>
    <div class="flex" >
            <!-- 分别在三个不同的 div 中引用对应的 flex1 -->
            <div class="flex1">DIV1</div>
            <div class="flex2">DIV2</div>
            <div class="flex3">DIV3</div>
    </div>
</body>
</html>


但是现在可以看到还是采用的 html 默认布局,但是现在我想让他排列,就需要使用到改变主轴(横向)的布局:

justify-content:

  • flex-end:右对齐
  • center:居中对齐
  • space-evenly:平分空间
  • space-between:两端对齐

3.6.4 主轴使用案例

只需在 style 中的第一个父元素 div 下启用 flex

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试css</title>
    <style>
        /* 给父元素 div 进行布局 */
        .flex{
            /* 添加灰色边框为 3 像素 */
            border: 3px gray solid ;
            /* 启用 flex ,默认就会变成一行 */
            display: flex;
        }
        /*红色*/
        .flex1{
            width: 300px;
            height: 300px;
            background: red;
        }
        /*绿色*/
        .flex2{
            width: 300px;
            height: 300px;
            background: green;
        }
        /*橙色*/
        .flex3{
            width: 300px;
            height: 300px;
            background: orange;
        }
    </style>
</head>
<body>
    <div class="flex" >
            <!-- 分别在三个不同的 div 中引用对应的 flex1 -->
            <div class="flex1">DIV1</div>
            <div class="flex2">DIV2</div>
            <div class="flex3">DIV3</div>
    </div>
</body>
</html>

通过 justify-content: flex-end; 实现右对齐


通过 justify-content: center; 实现居中对齐



通过 justify-content: space-evenly; 实现平分对齐


可以看到这里将整个横切面都平分了

通过 justify-content: space-between; 实现两端对齐


可以看到红色和黄色分别将两端对齐

3.6.5 交叉轴使用案例

所谓交叉轴就是竖向的

这里通过 align-items: center; 来实现,但是前提需要定义高度,这里我定了 500px


效果如下:

通过 align-items: flex-end; 放下布局


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇