(css)AI智能问答页面布局

(css)AI智能问答页面布局

效果:
在这里插入图片描述


html

<!-- AI框 -->
 <div class="chat-top">
   <div class="chat-main" ref="chatList">
     <div v-if="!chatList.length" class="no-message">
       <span>欢迎使用</span>
       <span>ESG实践智能交互系统</span>
       <img src="@/assets/image/light.png" alt />
     </div>
     <div
       v-for="(item, index) in chatList"
       class="chat-item"
       :class="[index%2===1 ? 'question' :'answer']"
       :key="index"
     >
       <div class="header-img-wrapper">
         <div class="wrapper-img">
           <el-image v-if="index%2===1" :src="otherImg" :fit="fit" class="header-img"></el-image>
         </div>
       </div>
       <div class="content">
         <!-- <span class="itemTime" v-if="index%2===1">{{ itemTime }}</span> -->
         <div class="content-width">{{ item.content }}</div>
         <div class="indicator"></div>
       </div>
       <div class="header-img-wrapper">
         <div class="wrapper-img">
           <el-image v-if="index%2===0" :src="meImg" :fit="fit" class="header-img"></el-image>
         </div>
       </div>
     </div>
   </div>
   <el-row class="chat-input">
     <el-col :span="22">
       <el-input
         v-model.trim="searchValue"
         placeholder="请输入您想咨询的问题..."
         class="input-with-select"
         @keyup.enter.native="onSend"
         :disabled="disabled"
       ></el-input>
     </el-col>
     <el-col :span="2" class="sendImg">
       <el-image :src="sendImg" :fit="fit" v-if="!isQuestionIng" @click="onSend"></el-image>
     </el-col>
   </el-row>
 </div>

css


/* 中区 */
.chat-wrapper {
  height: 100%;
  // AI区
  .chat-top {
    width: 100%;
    height: 88%;
    background-image: url("../assets/image/chat-main-1.png");
    background-size: 100% 100%;
    padding: 20px;
    font-size: 16px;
    font-family: Regular-font;
    .AITip {
      height: 10%;
      color: #01ffff;
      font-size: 24px;
      padding-bottom: 4px;
      display: flex;
      justify-content: center;
      align-items: flex-end;
      line-height: 1;
    }
    .chat-main {
      width: 100%;
      height: 84%;
      padding: 20px 30px;
      overflow-y: auto;
      background-image: url("../assets/image/chat-main-2.png");
      background-size: 100% 100%;
      .no-message {
        width: 50%;
        height: 100%;
        font-size: 40px;
        font-family: iFonts;
        text-align: center;
        margin: 0 auto;
        display: flex;
        justify-content: center;
        flex-direction: column;
        span:nth-child(1) {
          font-size: 34px;
        }
        img {
          display: block;
          width: 100%;
          height: 14px;
          margin-top: -12px;
        }
      }
      // 单条信息
      .chat-item {
        display: flex;
        justify-content: space-between;
        text-align: left;
        position: relative;
        margin-bottom: 50px;
        // 头像
        .header-img-wrapper {
          width: 60px;
          height: 65px;
          .wrapper-img {
            background-image: url("../assets/image/head-portrait-background.png");
            background-size: 100% 100%;
            display: flex;
            justify-content: center;
            align-items: flex-end;
            .header-img {
              width: 60px;
              height: 60px;
            }
          }
        }
        // 内容
        .content {
          flex: 1;
          color: #ffffff;
          margin: 0 30px;
          padding: 16px 20px;
          //   border: 2px solid #2da8f0;
          border: 2px solid rgba(31, 159, 191, 0.9);
          border-radius: 10px;
          background: rgba(22, 68, 124, 0.8);
          //   background: linear-gradient(0deg, #125eab 0%, #3a94f4 100%);
          line-height: 30px;
          position: relative;
          .itemTime {
            position: absolute;
            top: -36px;
            left: 46%;
            width: 50px;
            height: 20px;
            background: rgba(22, 68, 124, 0.8);
            text-align: center;
            font-size: 14px;
            line-height: 18px;
          }
        }
      }
      .chat-item.question .indicator {
        width: 0;
        height: 0;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        border-right: 10px solid rgba(31, 159, 191, 0.9);
        // border-right: 10px solid #2da8f0;
        position: absolute;
        left: -10px;
        top: 16px;
      }
      .chat-item.answer .indicator {
        width: 0;
        height: 0;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        border-left: 10px solid rgba(31, 159, 191, 0.9);
        // border-left: 10px solid #2da8f0;
        position: absolute;
        right: -10px;
        top: 16px;
      }

      .chat-item:not(:first-child) {
        margin-top: 38px;
      }
    }
    .chat-input {
      width: 100%;
      height: 11%;
      background-image: url("../assets/image/chat-main-3.png");
      background-size: 100% 100%;
      padding-right: 2%;
      margin: 3% auto;
      display: flex;
      justify-content: space-between;
      align-items: center;
      /deep/ .el-input__inner {
        background-color: transparent;
        border: none;
        color: #fff;
      }
      .sendImg {
        width: 26px;
        height: 26px;
        cursor: pointer;
      }
    }
  } 
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

特定Adreno GPU的Android设备发生冻屏问题

1&#xff09;特定Adreno GPU的Android设备发生冻屏问题 ​2&#xff09;Unity版本升级后&#xff0c;iOS加载UnityFramework bundle闪退 3&#xff09;关于RectTransfrom.rect在屏幕空间中表示的相关问题 4&#xff09;Unity Mesh泄露问题 这是第345篇UWA技术知识分享的推送&a…

【每日一题】2050. 并行课程 III

【每日一题】2050. 并行课程 III 2050. 并行课程 III题目描述解题思路 2050. 并行课程 III 题目描述 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。同时给你一个二维整数数组 relations &#xff0c;其中 relations[j] [prevCoursej, nextCour…

Linux安装部署Nacos和sentinel

1.将nacos安装包下载到本地后上传到linux中 2.进入nacos的/bin目录,输入命令启动nacos [rootlocalhost bin]# sh startup.sh -m standalone注:使用第二种方式启动,同时增加日志记录的功能 2.2 startup.sh文件是不具备足够的权限,否则不能操作 给文件赋予执行权限 [rootlocalh…

yo!这里是STL::string类简单模拟实现

目录 前言 常见接口模拟实现 默认成员函数 1.构造函数 2.析构函数 3.拷贝构造函数 4.赋值运算符重载 迭代器 简单接口 1.size() 2.c_str() 3.clear() 操作符、运算符重载 1.操作符[] 2.运算符 3.运算符> 扩容接口 1.reserve() 2.resize() 增删查改接口 …

【数字IC基础】竞争与冒险

竞争-冒险 1. 基本概念2. 冒险的分类3. 静态冒险产生的判断4. 毛刺的消除使用同步电路使用格雷码增加滤波电容增加冗余项&#xff0c;消除逻辑冒险引入选通脉冲 1. 基本概念 示例一&#xff1a; 如上图所示的这个电路&#xff0c;使用了两个逻辑门&#xff0c;一个非门和一个与…

mybatis-spring

简介 通过简化实现流程&#xff0c;把MyBatis的最核心的内容展示出 mybatis的加载过程 执行流程 类图 核心流程 public class ApiTest {Testpublic void test_queryUserInfoById() {String resource "mybatis-config-datasource.xml";Reader reader;try {reader…

工业平板电脑优化汽车工厂的生产流程

汽车行业一直是自动化机器人系统的早期应用领域之一。通过使用具有高负载能力和远程作用的大型机械臂&#xff0c;汽车装配工厂可以实现点焊、安装挡风玻璃、安装车轮等工作&#xff0c;而较小的机械手则用于焊接和安装子组件。使用机器人系统不仅提高了生产效率&#xff0c;还…

STM32+FPGA的导常振动信号采集存储系统

摘 要 &#xff1a; 针 对 工 厂 重 要 设 备 运 输 途 中 可 能 损 坏 的情 况 &#xff0c; 本 文 设计 了一 套 采 用 &#xff33;&#xff34;&#xff2d;&#xff13;&#xff12;&#xff26;&#xff11;&#xff10;&#xff13;&#xff0b;&#xff26;&#xff3…

nginx mirror代码分析

实现方式 mirror逻辑的工作阶段&#xff1a; ngx在log phase之后&#xff08;在ngx_http_free_request处调用&#xff09;已完成向client端返回response&#xff0c;在log phase之后完成close connection&#xff08;短链接&#xff09;&#xff0c;在该阶段处理mirror逻辑不…

Godot 4 源码分析 - 获取属性信息

在管道通信基础上&#xff0c;可进行宿主程序与Godot的双向通信。 先拿属性信息试试手。 DrGraph端 static UnicodeString command "Book.position"; if (InputQuery("输入窗口", "请输入待获取的属性信息", command)) {TDrStream_Get drGet…

Vue2.x和Vue3.x面试常问知识点-面试题

SPA单页面的理解&#xff0c;它的优缺点分别是什么&#xff1f; 是什么 SPA&#xff08; single page application &#xff09;仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。 一旦页面加载完成&#xff0c;SPA 不会因为用户的操作而进行页面的重新加载或跳转 而…

数据结构和算法——表排序(算法概述、物理排序、复杂度分析,包含详细清晰图示过程)

目录 算法概述 物理排序 复杂度分析 算法概述 表排序用于 待排元素都为一个庞大的结构&#xff0c;而不是一个简单的数字&#xff0c;例如&#xff1a;一本书&#xff0c;一部电影等等。 如果这些待排元素都用之前的排序方法&#xff0c;元素需要频繁互换&#xff0c;那么…

内网穿透远程查看内网监控摄像头

内网穿透远程查看内网监控摄像头 在现代社会中&#xff0c;大家总是奔波于家和公司之间。大部分时间用于工作中&#xff0c;也就很难及时知晓家中的动态情况&#xff0c;对于家中有老人、小孩或宠物的&#xff08;甚至对居住环境安全不放心的&#xff09;&#xff0c;这已然是…

01)docker学习 centos7离线安装docker

docker学习 centos7离线安装docker 在实操前可以先看下docker教程,https://www.runoob.com/docker/docker-tutorial.html , 不过教程上都是在线安装方式,很方便,离线安装肯定比如在线麻烦点。 一、什么是Docker 在学习docker时,在网上看到一篇博文讲得很好,自己总结一下…

NAT协议(网络地址转换协议)详解

NAT协议&#xff08;网络地址转换协议&#xff09;详解 为什么需要NATNAT的实现方式静态NAT动态NATNAPT NAT技术的优缺点优点缺点 NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程&#xff0c;主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代…

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

一、目标 在Hive的ODS层建外部表&#xff0c;然后加载HDFS中的CSV文件数据 注意&#xff1a;CSV文件中含有未解析的JSON格式的字段数据&#xff0c;并且JSON字段中还有逗号 二、第一次建外部表&#xff0c;直接以&#xff0c;分隔行字段&#xff0c;结果JSON数据只显示一部分…

(树) 剑指 Offer 07. 重建二叉树 ——【Leetcode每日一题】

❓剑指 Offer 07. 重建二叉树 难度&#xff1a;中等 输入某二叉树的 前序遍历 和 中序遍历 的结果&#xff0c;请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,20,7] …

[NLP]Huggingface模型/数据文件下载方法

问题描述 作为一名自然语言处理算法人员&#xff0c;hugging face开源的transformers包在日常的使用十分频繁。在使用过程中&#xff0c;每次使用新模型的时候都需要进行下载。如果训练用的服务器有网&#xff0c;那么可以通过调用from_pretrained方法直接下载模型。但是就本人…

5.2.tensorRT基础(2)-使用onnx解析器来读取onnx文件(源码编译)

目录 前言1. ONNX解析器2. libnvonnxparser.so3. 源代码编译4. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 t…

已解决:多线程环境中,新线程在使用cout函数打印输出到显示器出现数据混乱的情况

错误展示错误原因解决办法1. 在本问题情况下&#xff1a;使用printf函数替代cout&#xff1a;2. 使用互斥锁使 cout函数线程保持原子状态 什么是原子操作&#xff1f; 错误展示 最近学习多线程的时候&#xff0c;创建了一堆线程&#xff0c;然后每个线程都运行这个方法&#x…