这段代码实现了一个带有动态效果的聊天机器人界面,包含输入框、操作按钮和标签区域,整体风格为深色主题,带有渐变和阴影效果。


大家复制代码时,可能会因格式转换出现错乱,导致样式失效。建议先少量复制代码进行测试,若未能解决问题,私信我,我会发送完整的压缩包给你。

演示效果

HTML&CSS :AI聊天框界面

HTML&CSS


html>
html lang="en">

head>
    meta charset="UTF-8">
    meta name="viewport" content="width=device-width, initial-scale=1.0">
    title>公众号关注:前端Hardytitle>
    style>
        body {
            margin: 0;
            padding: 0;
            background: #212121;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        .container_chat_bot {
            display: flex;
            flex-direction: column;
            max-width: 260px;
            width: 100%;
        }

        .container_chat_bot .container-chat-options {
            position: relative;
            display: flex;
            background: linear-gradient(to bottom right,#7e7e7e,#363636,#363636,#363636,#363636);
            border-radius: 16px;
            padding: 1.5px;
            overflow: hidden;

            &::after {
                position: absolute;
                content: "";
                top: -10px;
                left: -10px;
                background: radial-gradient(ellipse at center, #ffffff,  rgba(255, 255, 255, 0.3),  rgba(255, 255, 255, 0.1),  rgba(0, 0, 0, 0),  rgba(0, 0, 0, 0),  rgba(0, 0, 0, 0),  rgba(0, 0, 0, 0));
                width: 30px;
                height: 30px;
                filter: blur(1px);
            }
        }

        .container_chat_bot .container-chat-options .chat {
            display: flex;
            flex-direction: column;
            background-color: rgba(0, 0, 0, 0.5);
            border-radius: 15px;
            width: 100%;
            overflow: hidden;
        }

        .container_chat_bot .container-chat-options .chat .chat-bot {
            position: relative;
            display: flex;
        }

        .container_chat_bot .chat .chat-bot textarea {
            background-color: transparent;
            border-radius: 16px;
            border: none;
            width: 100%;
            height: 50px;
            color: #ffffff;
            font-family: sans-serif;
            font-size: 12px;
            font-weight: 400;
            padding: 10px;
            resize: none;
            outline: none;

            &::-webkit-scrollbar {
                width: 10px;
                height: 10px;
            }

            &::-webkit-scrollbar-track {
                background: transparent;
            }

            &::-webkit-scrollbar-thumb {
                background: #888;
                border-radius: 5px;
            }

            &::-webkit-scrollbar-thumb:hover {
                background: #555;
                cursor: pointer;
            }

            &::placeholder {
                color: #f3f6fd;
                transition: all 0.3s ease;
            }

            &:focus::placeholder {
                color: #363636;
            }
        }

        .container_chat_bot .chat .options {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            padding: 10px;
        }

        .container_chat_bot .chat .options .btns-add {
            display: flex;
            gap: 8px;

            & button {
                display: flex;
                color: rgba(255, 255, 255, 0.6);
                background-color: transparent;
                border: none;
                cursor: pointer;
                transition: all 0.3s ease;

                &:hover {
                    transform: translateY(-5px);
                    color: #ffffff;
                }
            }
        }

        .container_chat_bot .chat .options .btn-submit {
            display: flex;
            padding: 2px;
            background-image: linear-gradient(to top, #292929, #555555, #292929);
            border-radius: 10px;
            box-shadow: inset 0 6px 2px -4px rgba(255, 255, 255, 0.5);
            cursor: pointer;
            border: none;
            outline: none;
            transition: all 0.15s ease;

            & i {
                width: 30px;
                height: 30px;
                padding: 6px;
                background: rgba(0, 0, 0, 0.1);
                border-radius: 10px;
                backdrop-filter: blur(3px);
                color: #8b8b8b;
            }

            & svg {
                transition: all 0.3s ease;
            }

            &:hover svg {
                color: #f3f6fd;
                filter: drop-shadow(0 0 5px #ffffff);
            }

            &:focus svg {
                color: #f3f6fd;
                filter: drop-shadow(0 0 5px #ffffff);
                transform: scale(1.2) rotate(45deg) translateX(-2px) translateY(1px);
            }

            &:active {
                transform: scale(0.92);
            }
        }

        .container_chat_bot .tags {
            padding: 14px 0;
            display: flex;
            color: #ffffff;
            font-size: 10px;
            gap: 4px;

            & span {
                padding: 4px 8px;
                background-color: #1b1b1b;
                border: 1.5px solid #363636;
                border-radius: 10px;
                cursor: pointer;
                user-select: none;
            }
        }
    style>
head>

body>
    div class="container_chat_bot">
        div class="container-chat-options">
            div class="chat">
                div class="chat-bot">
                    textarea id="chat_bot" name="chat_bot" placeholder="Imagine Something...✦˚">textarea>
                div>
                div class="options">
                    div class="btns-add">
                        button>
                            svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24">
                                path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
                                    stroke-width="2" d="M7 8v8a5 5 0 1 0 10 0V6.5a3.5 3.5 0 1 0-7 0V15a2 2 0 0 0 4 0V8">
                                path>
                            svg>
                        button>
                        button>
                            svg viewBox="0 0 24 24" height="20" width="20" xmlns="http://www.w3.org/2000/svg">
                                path
                                    d="M4 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm0 10a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1zm0-8h6m-3-3v6"
                                    stroke-width="2" stroke-linejoin="round" stroke-linecap="round"
                                    stroke="currentColor" fill="none">path>
                            svg>
                        button>
                        button>
                            svg viewBox="0 0 24 24" height="20" width="20" xmlns="http://www.w3.org/2000/svg">
                                path
                                    d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10m-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.01 8.01 0 0 0 5.648 6.667M10.03 13c.151 2.439.848 4.73 1.97 6.752A15.9 15.9 0 0 0 13.97 13zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.01 8.01 0 0 0 19.938 13M4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333A8.01 8.01 0 0 0 4.062 11m5.969 0h3.938A15.9 15.9 0 0 0 12 4.248A15.9 15.9 0 0 0 10.03 11m4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.01 8.01 0 0 0-5.648-6.667"
                                    fill="currentColor">path>
                            svg>
                        button>
                    div>
                    button class="btn-submit">
                        i>
                            svg viewBox="0 0 512 512">
                                path fill="currentColor"
                                    d="M473 39.05a24 24 0 0 0-25.5-5.46L47.47 185h-.08a24 24 0 0 0 1 45.16l.41.13l137.3 58.63a16 16 0 0 0 15.54-3.59L422 80a7.07 7.07 0 0 1 10 10L226.66 310.26a16 16 0 0 0-3.59 15.54l58.65 137.38c.06.2.12.38.19.57c3.2 9.27 11.3 15.81 21.09 16.25h1a24.63 24.63 0 0 0 23-15.46L478.39 64.62A24 24 0 0 0 473 39.05">
                                path>
                            svg>
                        i>
                    button>
                div>
            div>
        div>
        div class="tags">
            span>Create An Imagespan>
            span>Analyse Dataspan>
            span>Morespan>
        div>
    div>
body>

html>

HTML 结构

  • container_chat_bot:整个聊天机器人的容器,包含聊天框和标签。
  • container-chat-options:聊天框的容器,包含背景和装饰效果。
  • chat:聊天框的主体部分,包含输入框和操作按钮。
  • chat-bot:聊天框的输入区域。
  • textarea:用户输入内容的文本框。
  • options:聊天框的操作区域,包含按钮。
  • btns-add:包含附加功能按钮的容器。
  • button:操作按钮,如添加功能按钮和提交按钮。
  • tags:显示标签的区域,包含多个标签。

CSS 样式

  • body:设置页面背景颜色、布局方式(居中对齐)和全屏高度。
  • .container_chat_bot:定义聊天机器人容器的布局方式和最大宽度。
  • .container-chat-options:定义聊天框的背景渐变、圆角和阴影效果,包含顶部装饰性渐变圆圈。
  • .chat:定义聊天框主体的背景颜色和圆角。
  • .chat-bot textarea:定义输入框的样式,包括透明背景、字体颜色、滚动条样式和占位符效果。
  • .options:定义操作区域的布局方式。
  • .btns-add button:定义附加功能按钮的样式,包括图标、悬停效果和动画。
  • .btn-submit:定义提交按钮的样式,包括背景渐变、阴影、悬停效果和点击动画。
  • .tags:定义标签区域的样式,包括字体颜色、背景颜色和间距。
  • .tags span:定义单个标签的样式,包括背景颜色、边框和圆角。

各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!