Dify 知识库搭建教程 新手从文档上传到智能问答
<div class="ce-block ce-block--focused" data-id="3pkpJzZsiV" ><div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">很多人第一次看 Dify,最容易想得太大。又想做客服,又想做内部助理,又想接工作流,最后打开后台反而不知道先点哪里。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="zQAW6Tl7ml" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">新手先从一个最小版本开始就够了。准备一份文档,建一个聊天助手,把文档导成知识库,再让助手按这份资料回答问题。这个流程走通以后,后面再加更多资料,心里就有数了。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="lnIujqiT21" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">下面这篇按真实操作截图来讲。你照着做,先别急着追求复杂效果。</span></div>
</div>
</div><div class="ce-block" data-id="IpEeNi4Jfd" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">一 先配置模型供应商</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="uisBHO-l9X" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Dify 自己负责应用页面,知识库和流程编排,真正回答问题还要靠模型。所以第一步要先去设置里看模型供应商。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="rR0i2rRiTy" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">如果你本地已经用 Ollama 跑了模型,可以在模型供应商里搜索 Ollama,然后安装对应插件。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="AC6X1MW216" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_AC6X1MW216" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101206sakh2es52xca2hzh.png" title="" alt="" data-aid="2686"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="VoFNXIDt_Y" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">安装后还要把模型名称和访问地址填进去。截图里用的是本地 Ollama,模型名填的是 </span><span md-inline="code" spellcheck="false" class="md-pair-s" style="box-sizing: border-box;"><code>deepseek-r1:1.5b</code></span><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">,基础 URL 填的是本地部署环境对应的地址。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="NR5-Pg8KTW" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">这一步别随便跳过。后面创建应用时,右上角能选到模型,才说明这里配置成功了。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="56FhUa8onN" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_56FhUa8onN" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101229jbn2jum0c4j2hobn.png" title="" alt="" data-aid="2687"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block" data-id="CmGlCG3Xcw" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">二 创建一个聊天助手应用</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="sw3ekz10vT" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">模型接好以后,回到应用页面,新建一个空白应用。新手做知识库问答,先选聊天助手。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="EkF1tTxR7C" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">聊天助手比较适合这种场景。用户直接提问,应用从知识库里找相关内容,再组织成一段能读懂的回答。客服问答,课程资料,公司制度,产品说明,都可以先用这个入口试。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="iuKGeQlYi6" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_iuKGeQlYi6" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101252nihfdkhhdap6t06e.png" title="" alt="" data-aid="2688"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="vav3cUbtkA" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">应用名称不用太复杂,先写清用途。比如课程资料助手,产品说明助手,售后问答助手。名称越贴近资料,后面自己找起来越省事。</span></div>
</div>
</div><div class="ce-block" data-id="tQG1FfRaQ9" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">三 先在编辑页测试一下模型</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="lMvKuuE4rS" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">应用创建完成以后,会进入编辑页。左边是提示词,变量和知识库设置,右边是调试预览。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="zSjUW-66Ra" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">这时可以先问一句普通问题,看看模型能不能正常回复。能回复,说明模型这边已经能用。不能回复,就先回去查模型供应商配置,别急着上传文档。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="Io66XHO3nP" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_Io66XHO3nP" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101314lv616otgtn1q1uvv.png" title="" alt="" data-aid="2689"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="kxOMutFV0m" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">提示词一开始不用写得太花。你可以先让它做一件简单的事,按资料回答用户问题,资料里没有就说明没有找到相关内容。这样后面测试知识库时,问题更容易定位。</span></div>
</div>
</div><div class="ce-block" data-id="vXa6wWXG6p" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">四 从应用里添加知识库</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="wd0cApWucM" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">编辑页往下看,会看到知识库区域。这里点击添加,就能把应用和知识库接起来。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="569f_ZP969" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">如果当前还没有知识库,Dify 会提示创建。这个地方很多新手会卡一下,以为必须先去别的页面建好。其实从应用里加也可以,流程能顺着走下去。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="nZVnH_0DzS" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_nZVnH_0DzS" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101505pdq1m1gqmg4uzi1d.png" title="" alt="" data-aid="2690"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="9mDU2Hwq7c" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">知识库适合放整理好的资料。比如 PDF 课件,Markdown 文档,Word 文档,产品说明书,常见问题表。资料越乱,回答越容易跑偏。先拿一份干净文档试,比一次塞几十个文件更稳。</span></div>
</div>
</div><div class="ce-block" data-id="a9Fv_Q4DE7" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">五 上传文档</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="5n1hyQWCis" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">创建知识库时,先选择数据来源。最常用的是导入已有文本,然后上传文件。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="3gfoXUUC4F" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">截图里上传的是一个 PDF 课件。Dify 支持多种常见文档格式,新手不用先研究所有格式,先拿手上最完整的一份资料测试。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="1dKPUk3-2K" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_1dKPUk3-2K" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101526csd9z77aarpr0krr.png" title="" alt="" data-aid="2691"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="9ntTeiT8SX" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">上传文件以后,不要马上想着发布。先看下一步的文本处理和索引方式。</span></div>
</div>
</div><div class="ce-block" data-id="s5BeI6cVXK" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">六 看一下分段和索引</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="Xfo2MqZ9_K" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">知识库能不能答准,很大程度取决于文档怎么切分。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="oy2NaBeeVs" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">分段太短,模型拿到的上下文会碎。分段太长,检索时又可能带进太多没用内容。新手可以先用默认设置,跑几轮问题以后再改。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="CpvTgVjXgn" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">截图里能看到分段设置,索引方式,还有知识库创建完成后的状态。只要文档显示可用,应用那边才有资料可以引用。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="qWfFUfprK1" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_qWfFUfprK1" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101549zu1bjb6kez1j1jgi.png" title="" alt="" data-aid="2692"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="S6zxC2vq2g" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">这里有个小经验。第一份文档不要选太大,最好是十几页以内,问题也先围绕文档里明确写过的内容来问。这样你能判断是资料没导好,还是提示词没写清。</span></div>
</div>
</div><div class="ce-block" data-id="V-rKViEa3r" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">七 把知识库接回应用并测试</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="F2vCDKOHdS" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">知识库创建好以后,回到应用编辑页,在知识库区域选中刚才那份资料。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="mpZEW_wI3D" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">接上以后,右侧调试区再问一个和文档有关的问题。截图里能看到,应用已经带着 PDF 资料回答。这个状态才算最小版本跑通。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="lmpkSpUPIf" >
<div class="ce-block__content">
<div class="cdx-block image-tool image-tool--filled ">
<div class="image-tool__image">
<div class="image-tool__image-preloader" style=""></div>
<img id="aimg_lmpkSpUPIf" class="image-tool__image-picture _zoom" src="https://bbs.gpt.com.cn/data/attachment/forum/202608/11/101607vyyyal3ydow5mw9l.png" title="" alt="" data-aid="2693"/>
</div>
<div class="cdx-input image-tool__caption" data-placeholder=""></div>
</div>
</div>
</div><div class="ce-block ce-block--focused" data-id="SAbb202N5D" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">测试时建议问三类问题。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="i9Lp5zpav3" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">第一类,文档里能直接找到答案的问题。它应该答得比较稳。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="EdnFlNEYIX" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">第二类,文档里只有部分信息的问题。它应该把能找到的内容说出来,并提醒缺少哪些材料。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="F-Uod2XFxW" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">第三类,文档里完全没有的问题。它最好别硬编。能做到这一点,才适合给别人用。</span></div>
</div>
</div><div class="ce-block" data-id="jL8ktAnVLQ" >
<div class="ce-block__content" style="">
<h2 class="ce-header ce-header--left">八 Dify 知识库适合哪些场景</h2>
</div>
</div><div class="ce-block ce-block--focused" data-id="RU5iS-qJv8" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">客服常见问题适合。问题重复,答案范围固定,资料也容易整理。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="syHTRtrjGj" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">产品说明适合。安装步骤,参数解释,售后流程,版本差异,都可以放进文档里。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="sagz5ceCID" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">公司制度适合。请假,报销,审批,入职流程,这些问题本来就需要按资料回答。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="kMlhADKZHA" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">课程资料适合。课件,讲义,学习笔记,考试说明,都能先做成小知识库。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="wpAfb7qTaY" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">个人资料整理也适合。比如把自己写过的教程,项目记录,常用命令放进去,后面查起来会方便很多。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="5c73fF_22i" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Dify 知识库不太适合资料经常变来变去的场景,也不适合答案必须百分百准确的严肃业务。至少在新手阶段,先把它当成资料问答工具,别一上来就让它替人做决定。</span></div>
</div>
</div><div class="ce-block ce-block--focused" data-id="W-BhQpA6Se" >
<div class="ce-block__content">
<div class="ce-paragraph cdx-block ce-paragraph--left"><span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">把这条线跑通以后,你对 Dify 的理解会清楚很多。到最后要看的就是三件事。资料能不能整理清楚,问题能不能落回资料,回答能不能经得起测试。</span></div>
</div>
</div><style type="text/css">
.ce-block {
margin-bottom: 20px;
}
.ce-block__content,.ce-toolbar__content {
/* max-width:calc(100% - 50px) */
margin-left: auto;
margin-right: auto;
}
.ce-paragraph {
line-height: 1.6em;
outline: none;
text-indent: 2em;
font-size: 16px;
}
.ce-paragraph--right {
text-align: right;
}
.ce-paragraph--center {
text-align: center;
}
.ce-paragraph--left {
text-align: left;
}
.ce-paragraph--justify {
text-align: justify;
}
.ce-paragraph-text-indent {
text-align: justify;
}
.ce-paragraph:empty::before{
content: attr(data-placeholder);
color: #707684;
font-weight: normal;
opacity: 0;
}
/** Show placeholder at the first paragraph if Editor is empty */
.codex-editor--empty .ce-block:first-child .ce-paragraph:empty::before {
opacity: 1;
}
.codex-editor--toolbox-opened .ce-block:first-child .ce-paragraph:empty::before,
.codex-editor--empty .ce-block:first-child .ce-paragraph:empty:focus::before {
opacity: 0;
}
.ce-paragraph p:first-of-type{
margin-top: 0;
}
.ce-paragraph p:last-of-type{
margin-bottom: 0;
}
.svg-icon {
width: 1em;
height: 1em;
}
.svg-icon path,
.svg-icon polygon,
.svg-icon rect {
fill: #4691f6;
}
.svg-icon circle {
stroke: #4691f6;
stroke-width: 1;
}
</style><style type="text/css">
.ce-block {
margin-top: 20px;
margin-bottom: 20px;
}
.ce-block__content,.ce-toolbar__content {
/* max-width:calc(100% - 50px) */
margin-left: auto;
margin-right: auto;
}
/**
* Plugin styles
*/
.ce-header {
position: relative;
padding: 1px 0px 1px 15px;
margin: 0;
line-height: 1.25em;
outline: none;
margin-bottom: 10px;
}
.ce-header p,
.ce-header div {
padding: 0 !important;
margin: 0 !important;
}
.ce-header::before {
content: "";
background-color: #3e8fe3;
width: 6px;
height: 100%;
position: absolute;
left: 0;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
/**
* Styles for Plugin icon in Toolbar
*/
.ce-header__icon {
}
.ce-header::before {
position: absolute;
content: attr(data-placeholder);
color: #707684;
font-weight: normal;
display: none;
cursor: text;
}
.ce-header:empty::before {
display: block;
}
.ce-header:empty:focus::before {
display: none;
}
/* FontSize */
h1.ce-header {
font-size: 2.0em;
}
h2.ce-header {
font-size: 1.7em;
}
h3.ce-header {
font-size: 1.4em;
}
h4.ce-header {
font-size: 1.15em;
}
h5.ce-header {
font-size: 0.95em;
}
h6.ce-header {
font-size: 0.8em;
}
/* Alignment*/
.ce-header--right {
text-align: right;
}
.ce-header--center {
text-align: center;
}
.ce-header--left {
text-align: left;
}
.ce-header--justify {
text-align: justify;
}
</style><style type="text/css">
.ce-block {
margin-bottom: 20px;
}
.ce-block__content,.ce-toolbar__content {
/* max-width:calc(100% - 50px) */
margin-left: auto;
margin-right: auto;
}
.image-tool {
--bg-color: #cdd1e0;
--front-color: #388ae5;
--border-color: #e8e8eb;
}
.image-tool__image {
border-radius: 3px;
overflow: hidden;
margin-bottom: 10px;
}
.image-tool__image-picture {
max-width: 100%;
vertical-align: bottom;
display: block;
margin-left: auto;
margin-right: auto;
}
.image-tool__image-preloader {
width: 50px;
height: 50px;
border-radius: 50%;
background-size: cover;
margin: auto;
position: relative;
background-color: #cdd1e0;
background-position: center center;
}
.image-tool__image-preloader::after {
content: "";
position: absolute;
z-index: 3;
width: 60px;
height: 60px;
border-radius: 50%;
border: 2px solid #cdd1e0;
border-top-color: #388ae5;
left: 50%;
top: 50%;
margin-top: -30px;
margin-left: -30px;
animation: image-preloader-spin 2s infinite linear;
box-sizing: border-box;
}
.image-tool__caption::before {
position: absolute !important;
content: attr(data-placeholder);
color: #707684;
font-weight: normal;
display: none;
}
.image-tool__caption:empty::before {
display: block;
}
.image-tool__caption:empty:focus::before {
display: none;
}
.image-tool--empty .image-tool__image {
display: none;
}
.image-tool--empty .image-tool__caption, .image-tool--loading .image-tool__caption {
display: none;
}
.image-tool .cdx-button {
display: flex;
align-items: center;
justify-content: center;
}
.image-tool .cdx-button svg {
height: auto;
margin: 0 6px 0 0;
}
.image-tool--filled .cdx-button {
display: none;
}
.image-tool--filled .image-tool__image-preloader {
display: none;
}
.image-tool--loading .image-tool__image {
min-height: 200px;
display: flex;
border: 1px solid #e8e8eb;
background-color: #fff;
}
.image-tool--loading .image-tool__image-picture {
display: none;
}
.image-tool--loading .cdx-button {
display: none;
}
/**
* Tunes
* ----------------
*/
.image-tool--withBorder .image-tool__image {
border: 1px solid #e8e8eb;
}
.image-tool--withBackground .image-tool__image {
padding: 15px;
background: #cdd1e0;
}
.image-tool--withBackground .image-tool__image-picture {
max-width: 60%;
margin: 0 auto;
}
.image-tool--stretched .image-tool__image-picture {
width: 100%;
}
.image-tool__caption {
text-align: center;
font-size: 14px;
color: #a3a3a3;
}
@keyframes image-preloader-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style><style type="text/css">
.inline-code {
background: rgba(250, 239, 240, 0.78);
color: #b44437;
padding: 3px 4px;
border-radius: 5px;
margin: 0 1px;
font-family: inherit;
font-size: 0.86em;
font-weight: 500;
letter-spacing: 0.3px;
}
</style>
页:
[1]