HTML5+CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮?

news2025/2/25 6:48:17

转眼从2005年到现在,《亮剑》已经播出多年,但热度依然不减,而且每次重温我都会看出不一样的意蕴,今天,我就用HTML5+CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮?

63748e72dc314943857316f3b1f6a386.gif#pic_center

 

目录

1. 实现思路

2. 素材介绍

3. 微信群聊顶部 + 底部 + 聊天区域实现

4. 聊天区域的实现

5. 聊天内容构思

6. 完整源代码

7. 最后


 

1. 实现思路

既然要实现《亮剑》的平安县城一役,还要做出精彩的微信群聊,那么必然要微信聊天的相关素材,例如顶部群聊名称、底部发送区域、中间的群聊区域、微信头像、微信文字、表情、聊天图片、其他人发送的消息和本人发送的消息等。

 

2. 素材介绍

  • 微信界面icon3个
  • 出场人物9人
  • 聊天表情 + 图片 3个

 

 

3. 微信群聊顶部 + 底部 + 聊天区域实现

由于群聊必定内容较多,所以顶部和底部区域肯定是固定定位的形式,而且我们每天看到的微信聊天窗口底部会包含,打字按钮,输入框,表情按钮,加号按钮,所以此处会使用fixed定位和flex布局,同时很多小icon我已转成了base64的实现方式。

HTML代码如下:

<div class="chat-box">
    <div class="head">
       <div class="back"></div>
       <div class="title">《亮剑》讨论群(45)</div>
       <div class="opera-point">...</div>
    </div>
    <div class="char-body">
        <!-- 此处稍后添加群聊代码 -->
    </div>
    <div class="foot">
        <div class="keyboard"></div>
        <div class="input-box">
            <input type="text" />
        </div>
        <div class="face"></div>
        <div class="add"></div>
     </div>
</div>

CSS3代码如下:

html, body, * {
                margin: 0;
                padding: 0;
                font-size: 14px;
                font-family: Microsoft Yahei;
            }
            .chat-box {
                width: 375px;
                height: 667px;
                background: #000;
            }
            .head {
                position: fixed;
                top: 0;
                left: 0;
                height: 40px;
                width: 375px;
            }
            .head .back {
                position: absolute;
                height: 40px;
                width: 40px;
                background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzRCQTEyN0IzOTcwMTFFODk1OEZCOEVCMEE2QUU1NkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzRCQTEyN0MzOTcwMTFFODk1OEZCOEVCMEE2QUU1NkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NEJBMTI3OTM5NzAxMUU4OTU4RkI4RUIwQTZBRTU2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NEJBMTI3QTM5NzAxMUU4OTU4RkI4RUIwQTZBRTU2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PulQWg8AAAF/SURBVHja7Ni9SsRAEAfwnd1wldiIlqK1td4LiL7CFQaFCHZWgmVqH+GK4FejryA+gPcA9vZ2YnVkd5yAcBLOYJKZ3UWyRbIchPsxSzb/HUBEFfPQKvIxAP89MGn7wPHpuTLOtXoGMdl1WF4rUBug9cX25tpdnufRVHBssXxGhTu0Y6yjs1P6bRTLEo9Lp56ohquLasKcbk5sifvgAMBRRc5oWoau4FIcfRJOaPoQ+i1uwt2H3mZYcdxAdhwnUATHBRTDcQBFcX2B4rg+QC+4rsA9X7gunzpQ1j7S3QuudQWz7HKFjjBbNXNR4QhaYcMCi+LqkwxvtbSX0SWNJVGjAZhQ1T4W8Qk11e2GpkexRP5ZotVBHUmXWwlk122mCZnGAPwV+b3caQxAL0iOsCCK5IpbYkjOwCqC5I787EiJQxMrUurY2YScxNI8Woq0qKZtUpR062NmQB/+RALgqM3/+mgevRhI9imMvVIcewdtqtbH/M8BdOhRD8DA40uAAQDL2thNJDxLvAAAAABJRU5ErkJggg==) no-repeat;
                background-size: 80%;
                background-position: center;
            }
            .head .title {
                margin: 0 70px;
                height: 40px;
                font-size: 16px;
                line-height: 40px;
                text-align: center;
                color: #FFF;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }
            .head .opera-point {
                position: absolute;
                top: 12px;
                right: 12px;
                width: 40px;
                background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAAG2I8urAAAAAXNSR0IArs4c6QAAAddJREFUSA3VVr1OwzAQto0oqgQPABszD4BY4TVIfwR0aBgQb8ALIAbSoVD1J7wGrFRiAokVsbGwMSAVCXPn4PSSxklMGol6SM539913/jnbjEFzGu0j/GOTUvJACr5Owx0L5SBZVxtqDffbqbel7gNqG6K441ABglN3PyJ9YBHKk2qZXNVdzcJVJAwJzR92IvmgjlLH7RSrBhNPAwPohs508FqPf5wIjQVhOtg0xrgNA1GsQIW5yZ7ZFrVwTA+XIaLm/M4feHsRXUKnDOzSy+s7Lnclxrf59PhwFtPNdMvACn/orTGYEcpWXals0L5JLgOrtnGwx/k54+x51L/c4ZxPq8iUza9+3liss1vY57uUdzTwRJ6kysDi6RBJBhOrNY/vaYJGuQRscrlKtmVMIstQEJucEJenWbxGe0GsmKkodQZ1royExFAGVlVZq3Wy/jn5uknaT4ofkqxWlve73Ys3kk9hcRF4oerhtieXeeqoOWv5g3yrmRoHjIvCC6cQnM95m41vVkybWDa+c+YVeHllxQztNr4hyCDYxLLxNdCFaptY4CvwZo8/PcJgVIBzSPlSXQF5UXjDF716iTbdQ8b4AZxJwb2qZlv2Rn3vOs9L5C/z9d95fwDELzC7i+rQHQAAAABJRU5ErkJggg==) no-repeat;
                background-size: 80%;
                background-position: center;
            }
            .foot {
                display: flex;
                position: fixed;
                left: 0;
                top: 627px;
                width: 375px;
                height: 40px;
                background: #222;
            }
            .foot .keyboard {
                margin-top: 8px;
                margin-left: 10px;
                width: 26px;
                height: 26px;
                background: url(./keyboard.png) no-repeat;
                background-size: 26px;
            }
            .foot .input-box {
                margin-left: 18px;
            }
            .foot .input-box input {
                margin-top: 7px;
                height: 26px;
                width: 240px;
                border: none;
                background: #302b2f;
                outline: none;
            }
            .foot .face {
                margin-top: 8px;
                margin-left: 10px;
                width: 26px;
                height: 26px;
                background: url(./face.png) no-repeat;
                background-size: 26px;
            }
            .foot .add {
                margin-top: 7px;
                margin-left: 6px;
                width: 26px;
                height: 26px;
                background: url(./add.png) no-repeat;
                background-size: 26px;
            }
            .char-body {
                width: 375px;
                height: 587px;
                overflow-y: auto;
                position: absolute;
                top: 40px;
            }
            .char-body::-webkit-scrollbar {  
                display: none;
            }

阶段实现效果如下:

e2259a34cc82412d95275e4b59e8a11c.png

 

4. 聊天区域的实现

聊天区域要注意几点:

  • 聊天区域不显示滚动条
  • 其他人头像和文字的排版以及本人头像与文字的排版问题
  • 如果需要插入表情和图片的排版控制
  • 实现聊天内容引用的排版
  • 聊天文案的小三角形的实现

 部分HTML代码如下(这里只展示部分,最后还会有完整源代码):

<div class="other-people-li">
     <img src="./李云龙.png" class="head-photo" />
     <div class="word">
         我要攻打平安县城啦!
      </div>
</div>
<div class="other-people-li">
      <img src="./孔二愣子.png" class="head-photo" />
      <div class="word">
          听上去很过瘾呐!不过是为什么啊???
       </div>
</div>

部分CSS3代码如下(这里只展示部分,最后还会有完整源代码):

.other-people-li, .me-people-li {
                display: flex;
                margin-top: 20px;
}
.other-people-li .head-photo {
                margin-left: 12px;
                width: 50px;
                height: 50px;
                vertical-align: top;
                border-radius: 6px;
}
.other-people-li .word {
                display: inline-block;
                padding: 15px;
                background: #302b2f;
                color: #EEEfFF;
                margin-left: 10px;
                border-radius: 10px;
}
.other-people-li .word img {
                max-width: 238px;
}

 

5. 聊天内容构思

其实《亮剑》整部电视剧来说都是非常精彩的,在上班摸鱼回味电视剧本身,我又结合HTML5+CSS3的小知识做了这个群聊,但技术其实不是什么难点,难点在于构思群聊的内容

 

6. 完整源代码

我把完整的源代码拿出来,粘贴到自己的HTML文档中就可以实现本文的效果啦,至于素材大家可以去百度上找,还是挺多的,完整源代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>HTML5+CSS3的《亮剑》群聊</title>
        <style>
            html, body, * {
                margin: 0;
                padding: 0;
                font-size: 14px;
                font-family: Microsoft Yahei;
            }
            .chat-box {
                width: 375px;
                height: 667px;
                background: #000;
            }
            .head {
                position: fixed;
                top: 0;
                left: 0;
                height: 40px;
                width: 375px;
            }
            .head .back {
                position: absolute;
                height: 40px;
                width: 40px;
                background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzRCQTEyN0IzOTcwMTFFODk1OEZCOEVCMEE2QUU1NkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzRCQTEyN0MzOTcwMTFFODk1OEZCOEVCMEE2QUU1NkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NEJBMTI3OTM5NzAxMUU4OTU4RkI4RUIwQTZBRTU2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NEJBMTI3QTM5NzAxMUU4OTU4RkI4RUIwQTZBRTU2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PulQWg8AAAF/SURBVHja7Ni9SsRAEAfwnd1wldiIlqK1td4LiL7CFQaFCHZWgmVqH+GK4FejryA+gPcA9vZ2YnVkd5yAcBLOYJKZ3UWyRbIchPsxSzb/HUBEFfPQKvIxAP89MGn7wPHpuTLOtXoGMdl1WF4rUBug9cX25tpdnufRVHBssXxGhTu0Y6yjs1P6bRTLEo9Lp56ohquLasKcbk5sifvgAMBRRc5oWoau4FIcfRJOaPoQ+i1uwt2H3mZYcdxAdhwnUATHBRTDcQBFcX2B4rg+QC+4rsA9X7gunzpQ1j7S3QuudQWz7HKFjjBbNXNR4QhaYcMCi+LqkwxvtbSX0SWNJVGjAZhQ1T4W8Qk11e2GpkexRP5ZotVBHUmXWwlk122mCZnGAPwV+b3caQxAL0iOsCCK5IpbYkjOwCqC5I787EiJQxMrUurY2YScxNI8Woq0qKZtUpR062NmQB/+RALgqM3/+mgevRhI9imMvVIcewdtqtbH/M8BdOhRD8DA40uAAQDL2thNJDxLvAAAAABJRU5ErkJggg==) no-repeat;
                background-size: 80%;
                background-position: center;
            }
            .head .title {
                margin: 0 70px;
                height: 40px;
                font-size: 16px;
                line-height: 40px;
                text-align: center;
                color: #FFF;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }
            .head .opera-point {
                position: absolute;
                top: 12px;
                right: 12px;
                width: 40px;
                background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAAG2I8urAAAAAXNSR0IArs4c6QAAAddJREFUSA3VVr1OwzAQto0oqgQPABszD4BY4TVIfwR0aBgQb8ALIAbSoVD1J7wGrFRiAokVsbGwMSAVCXPn4PSSxklMGol6SM539913/jnbjEFzGu0j/GOTUvJACr5Owx0L5SBZVxtqDffbqbel7gNqG6K441ABglN3PyJ9YBHKk2qZXNVdzcJVJAwJzR92IvmgjlLH7RSrBhNPAwPohs508FqPf5wIjQVhOtg0xrgNA1GsQIW5yZ7ZFrVwTA+XIaLm/M4feHsRXUKnDOzSy+s7Lnclxrf59PhwFtPNdMvACn/orTGYEcpWXals0L5JLgOrtnGwx/k54+x51L/c4ZxPq8iUza9+3liss1vY57uUdzTwRJ6kysDi6RBJBhOrNY/vaYJGuQRscrlKtmVMIstQEJucEJenWbxGe0GsmKkodQZ1royExFAGVlVZq3Wy/jn5uknaT4ofkqxWlve73Ys3kk9hcRF4oerhtieXeeqoOWv5g3yrmRoHjIvCC6cQnM95m41vVkybWDa+c+YVeHllxQztNr4hyCDYxLLxNdCFaptY4CvwZo8/PcJgVIBzSPlSXQF5UXjDF716iTbdQ8b4AZxJwb2qZlv2Rn3vOs9L5C/z9d95fwDELzC7i+rQHQAAAABJRU5ErkJggg==) no-repeat;
                background-size: 80%;
                background-position: center;
            }
            .foot {
                display: flex;
                position: fixed;
                left: 0;
                top: 627px;
                width: 375px;
                height: 40px;
                background: #222;
            }
            .foot .keyboard {
                margin-top: 8px;
                margin-left: 10px;
                width: 26px;
                height: 26px;
                background: url(./keyboard.png) no-repeat;
                background-size: 26px;
            }
            .foot .input-box {
                margin-left: 18px;
            }
            .foot .input-box input {
                margin-top: 7px;
                height: 26px;
                width: 240px;
                border: none;
                background: #302b2f;
                outline: none;
            }
            .foot .face {
                margin-top: 8px;
                margin-left: 10px;
                width: 26px;
                height: 26px;
                background: url(./face.png) no-repeat;
                background-size: 26px;
            }
            .foot .add {
                margin-top: 7px;
                margin-left: 6px;
                width: 26px;
                height: 26px;
                background: url(./add.png) no-repeat;
                background-size: 26px;
            }
            .char-body {
                width: 375px;
                height: 587px;
                overflow-y: auto;
                position: absolute;
                top: 40px;
            }
            .char-body::-webkit-scrollbar {  
                display: none;
            }
            .other-people-li, .me-people-li {
                display: flex;
                margin-top: 20px;
            }
            .me-people-li {
                display: flex;
                flex-direction: row-reverse;
                margin-top: 20px;
            }
            .other-people-li .head-photo {
                margin-left: 12px;
                width: 50px;
                height: 50px;
                vertical-align: top;
                border-radius: 6px;
            }
            .me-people-li .head-photo {
                margin-right: 12px;
                width: 50px;
                height: 50px;
                vertical-align: top;
                border-radius: 6px;
            }
            .me-people-li .word {
                display: inline-block;
                padding: 15px;
                background: #a1e75c;
                color: #000;
                margin-right: 10px;
                border-radius: 10px;
            }
            .other-people-li .word {
                display: inline-block;
                padding: 15px;
                background: #302b2f;
                color: #EEEfFF;
                margin-left: 10px;
                border-radius: 10px;
            }
            .other-people-li .word img {
                max-width: 238px;
            }
            .me-people-li .word::before {
                display: block;
                content: '';
                width: 0;
                height: 0;
                border-left: #a1e75c 10px solid;
                border-top: transparent 10px solid;
                border-bottom: transparent 10px solid;
                position: absolute;
                right: 64px;
            }
            .other-people-li .word::before {
                display: block;
                content: '';
                width: 0;
                height: 0;
                border-right: #302b2f 10px solid;
                border-top: transparent 10px solid;
                border-bottom: transparent 10px solid;
                position: absolute;
                margin-left: -22px;
            }
            .into-box {
                margin-bottom: 20px;
                padding-right: 74px;
                text-align: right;
            }
            .into-box span {
                display: inline-block;
                margin-top: 8px;
                padding: 2px 6px;
                background: #CCC;
                border-radius: 4px;
                color: #898989;
            }
        </style>
    </head>
    <body>
        <div class="chat-box">
            <div class="head">
                <div class="back"></div>
                <div class="title">《亮剑》讨论群(45)</div>
                <div class="opera-point">...</div>
            </div>

            <div class="char-body">
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        我要攻打平安县城啦!
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./孔二愣子.png" class="head-photo" />
                    <div class="word">
                        听上去很过瘾呐!不过是为什么啊???
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./丁伟.png" class="head-photo" />
                    <div class="word">
                        老李的话我信,但总得有个原因吧?
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./秀琴.png" class="head-photo" />
                    <div class="word">
                        因为小日本把我抓走啦
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./山本.png" class="head-photo" />
                    <div class="word">
                        捕虜の携帯電話を没収した
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./大彪.png" class="head-photo" />
                    <div class="word">
                        团长,他们把秀琴嫂子手机没收啦
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        1营,2营,骑兵连,王德胜,TND给我打
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./老兵不抢东西.png" class="head-photo" />
                    <div class="word">
                        <img src="./意大利炮.png" />
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./老兵不抢东西.png" class="head-photo" />
                    <div class="word">
                        团长,看
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        这是啥?
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./孔二愣子.png" class="head-photo" />
                    <div class="word">
                        啥玩意?
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./丁伟.png" class="head-photo" />
                    <div class="word">
                        炮!!!
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./山本.png" class="head-photo" />
                    <div class="word">
                        私のおさん
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./大彪.png" class="head-photo" />
                    <div class="word">
                        团长,小日本说“WC”
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./楚云飞.png" class="head-photo" />
                    <div class="word">
                        <img src="./捂脸.png" />
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        那还废什么话,开炮!!!
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./山本.png" class="head-photo" />
                    <div class="word">
                        あなたはあなたの嫁を必要としないのですか。
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./大彪.png" class="head-photo" />
                    <div class="word">
                        团长,嫂子还在上面
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./山本.png" class="head-photo" />
                    <div class="word">
                        話をしよう
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./大彪.png" class="head-photo" />
                    <div class="word">
                        团长,山本说想谈一谈
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./老兵不抢东西.png" class="head-photo" />
                    <div class="word">
                        <img src="./爆炸.png" />
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./老兵不抢东西.png" class="head-photo" />
                    <div class="word">
                        团长,炸了
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./山本.png" class="head-photo" />
                    <div class="word">
                        卧槽
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./秀琴.png" class="head-photo" />
                    <div class="word">
                        。。。。。。
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./老兵不抢东西.png" class="head-photo" />
                    <div class="word">
                        不是我开的跑
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        谁干的?
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        谁干的?
                    </div>
                </div>
                <div class="other-people-li">
                    <img src="./李云龙.png" class="head-photo" />
                    <div class="word">
                        谁干的?
                    </div>
                </div>
                <div class="me-people-li">
                    <img src="./小田.png" class="head-photo" />
                    <div class="word">
                        不是要开炮吗?
                    </div>
                </div>
                <div class="into-box">
                    <span>
                        李云龙:那还废什么话,开炮!!!
                    </span>
                </div>
            </div>

            <div class="foot">
                <div class="keyboard"></div>
                <div class="input-box">
                    <input type="text" />
                </div>
                <div class="face"></div>
                <div class="add"></div>
            </div>
        </div>
    </body>
</html>

 

7. 最后

如果你在上班摸鱼的时候看到这篇博客,或者是在工作学习忙碌之余看到这篇博客,希望读完以后可以让你感到轻松一些,如果你真的感到轻松了,那么这篇博客的目的也就算是达到了。

另外,狗哥和天哥最近也在输出实战类专栏(采用SpringBoot + SpringCloud + Vue前后端分离的形式),目的是希望初学者或者是需要做毕业设计的毕业生,可以跟着专栏从0到1实现一个属于自己的项目。目前专栏的进度我跟大家做一个汇报,喜欢的小伙伴可以抓紧订阅一下:

Vue + SpringBoot前后端分离项目实战 - 前端目录

1. 手把手带你做一套毕业设计-征程开启
2. 我应该把毕业设计做到什么程度才能过关?
3. 做毕业设计,前端部分你需要掌握的6个核心技能
4. 基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目

SpringBoot+Vue前后端分离项目实战 - 服务端目录

1. 基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇
2. 天狗实战SpringBoot+Vue(一)环境安装
3. 天狗实战SpringBoot+Vue(二)项目结构搭建(上)

 

回归《亮剑》和本文的内容,我想出了一个非常有意思的投票内容,希望你喜欢这个投票环节呀

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/408299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础JavaScript学习【第四期】

博主有话说:不知不觉这一已经第四期了,感谢大家的支持。 个人空间:GUIDM的个人空间 专栏内容:零基础JavaScript学习 基础还是关键。 欢迎大家的一键三连。 往期回顾: 前情回顾:第一期https://blog.csdn.net/m0_61901625/article/details/124772807?spm=1001.2014.3001.…

Spring-Security实现登录接口

目录简介原理初探实现思路登录接口实现准备工作编码实现效果展示简介 Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 具体介绍和入门看springSecurity入门 原理初探 在实…

CSS 实现六边形柱状图

前言 &#x1f44f;CSS 实现六边形柱状图 速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义全局css变量&#xff0c;柱状宽度为–w&#xff0c;最大高度为–h&#xff0c;柱形整体为渐变色&#xff0c;定义上部分颜色为…

VUE-webpack超详细教程

一.认识webpack 官网解释&#xff1a;从本质上来讲&#xff0c;webpack是一个现代的JavaScript应用的静态模块打包工具。 从模块化和打包两个角度来理解&#xff1a; 模块化&#xff1a; webpack其中一个核心就是让我们可能进行模块化开发&#xff0c;并且会帮助我们处理模块…

【uni-app导入vant】

uni-app导入vant一、为什么要写这篇文章二、 安装vant三、 进行全局导入Vant组件四、 导入Vant全局公共样式五、 在页面中使用Vant组件一、为什么要写这篇文章 相信有很多人在进行小程序转为uni-app的时候都会遇到转换后vant组件不能用的问题&#xff0c;为了解决这个问题本人…

前端开发:颜色代码速查表【英文颜色、HEX(十六进制)格式、RGB格式、十进制】

&#x1f48c; 作者简介 &#x1f4d6; 个人介绍&#xff1a;小伙伴们&#xff0c;大家好&#xff01;我是水香木鱼&#xff0c;【前端领域创作者】&#x1f61c;&#x1f4dc; CSDN主页&#xff1a;水香木鱼&#x1f4d1; 个人博客&#xff1a;陈春波&#x1f3a8; 系列专栏&…

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作 制作顶部导航栏titleNView的过程。 1.官网上关于顶部导航栏的介绍 https://uniapp.dcloud.net.cn/collocation/pages.html#app-titlenview 其中关于顶部导航栏的介绍中&#xff0c;有如下的说明&#xff1a; 前端…

一学就会的Vue slot插槽,真的不看看吗?(使用脚手架)

目录 一、前言 完整内容请关注&#xff1a; 开始前的准备&#xff1a; 二、slot插槽的基本使用 子组件&#xff1a; 父组件&#xff1a; 展示效果&#xff1a; 三、域名插槽的基本使用 子组件: 父组件: 效果展示: 注意&#xff1a; 四、如何通过slot从子组件获取内…

实测有效防止colab自动断开连接

在Firefox和Chrome中&#xff0c;在colab页面&#xff0c;按CtrlShiti&#xff0c;打开检查页面&#xff08;也可以右击鼠标&#xff0c;选择“检查”&#xff09;&#xff0c;并切换到控制台或terminal标签&#xff0c;chrome中为Console。 如果你是联想电脑&#xff0c;可以…

vue项目中使用mapbox地图,切换底图

如何在vue项目中加载并使用mapbox mapbox用了感觉确实不错&#xff0c;操作很顺滑&#xff0c;矢量切片体验流畅&#xff0c;地图主题定制化地图漂亮&#xff0c;二三维一体化&#xff0c;二三维切换很是简单&#xff0c;一行代码搞定。 基本使用 这是mapbox官方文档地址&am…

CSS伪类选择器

CSS的选择器有很多种&#xff0c;有一种选择器&#xff0c;与其他选择器完全不同&#xff0c;我们来讲一讲这个选择器——伪类选择器 伪类选择器 伪类选择器&#xff1a;用来描述一个元素的特殊状态&#xff01;比如第一个元素、某个元素的子元素、鼠标点击的元素 我们伪类选…

CSS系列之盒子阴影box-shadow(CSS3)

文章の目录1、属性值规则2、取值2.1、inset 内/外阴影2.2、<offset-x> <offset-y>水平阴影/垂直阴影2.3、<blur-radius>模糊距离2.4、<spread-radius>阴影的尺寸2.5、<color>阴影的颜色3、示例4、注意点写在最后用于在元素的框架上添加阴影效果。…

【javaScript】学完js基础,顺便把js高级语法学了(尚硅谷视频学习笔记)

文章目录【1】基本总结深入一、什么是数据1、数据类型基本&#xff08;值&#xff09;类型对象&#xff08;引用&#xff09;类型2、判断相关问题二、什么是内存1、什么是数据2、什么是内存&#xff1f;3、什么是变量4、内存、数据、变量三者之间的关系相关问题1、问题&#xf…

【web系列十一】使用django创建数据库表

目录 基本介绍 Model ORM 创建数据库的流程 安装插件 安装python中操作MySQL的库&#xff0c;这里用了django官方推荐的mysqlclient 创建数据库 连接数据库 1、工程同名app下的settings.py 2、子应用的models.py 3、子应用中的admin.py 生成数据表 1、更新数据表变…

element-ui 修改el-form-item样式

文章目录form结构修改el-form-item所有样式只修改label只修改content只修改input只修改buttonform结构 <el-form :model"formData" label-width"80px"><el-form-item label"label1"><el-input v-model"formData.value1&quo…

vue中使用wangEditor以及设置菜单栏

首先安装&#xff0c;我最开始是安装wangEditor v5版本的也就是安装方式是下面两个 npm install wangeditor/editor-for-vue --save npm install wangeditor/editor --save 但是最后跟着官网的视频教程安装好了&#xff0c;不能够运行&#xff0c;提示是&#xff1a;Module par…

antd中的form表单中的wrapperCol和labelCol问题

之前在学这块时候比较模糊 有点不熟 以至于在后来的开发过程中看别人的代码中的xs sm等 以及{span&#xff1a;8}也表示困惑&#xff0c; 但也不敢问大佬&#xff08;怕因为太简单而被嘲讽&#xff09;&#xff0c;只能自己去百度去了解&#xff0c;总算是有些眉目&#xff0c;…

vue xlsx插件导入

首先安装xlsx插件 yarn add xlsx0.15.3安装时候就有一个坑。版本问题第一次安装没有指定版本直接yarn add xlsx&#xff0c;安装的最新版本0.18多&#xff0c;会报XLSX没有read方法&#xff08;读取Excel表格对象的方法&#xff09; 具体代码 <el-upload class"uplo…

uniapp配置网络请求

1.简介 由于平台的限制&#xff0c;小程序项目中不支持 axios&#xff0c;而且原生的 wx.request() API 功能较为简单&#xff0c;不支持拦截器等全局定制的功能。因此&#xff0c;建议在 uni-app 项目中使用 escook/request-miniprogram 第三方包发起网络数据请求。 官方文…

JavaScript常见数组方法,教你如何转置矩阵

&#x1f4dc;个人简介 ⭐️个人主页&#xff1a;微风洋洋&#x1f64b;‍♂️ &#x1f351;博客领域&#xff1a;编程基础,后端 &#x1f345;写作风格&#xff1a;干货,干货,还是tmd的干货 &#x1f338;精选专栏&#xff1a;【JavaScript】 &#x1f680;支持洋锅&#xff…