【Gradio】Building With Blocks 自定义您的演示与 CSS 和 JavaScript

Gradio 允许您通过多种方式自定义演示。您可以自定义演示的布局,添加自定义 HTML,并添加自定义主题。本教程将更进一步,指导您如何向演示中添加自定义 CSS 和 JavaScript 代码,以添加自定义样式、动画、自定义 UI 功能、分析等。

向您的演示添加自定义 CSS 

Gradio 主题是自定义应用程序外观和感觉的最简单方法。您可以从多种主题中选择,或创建自己的主题。要这样做,请将 theme= kwarg 传递给 Blocks 构造函数。例如:

with gr.Blocks(theme=gr.themes.Glass()):
    ...

Gradio 附带了一套预构建的主题,您可以从 gr.themes.* 加载。您可以扩展这些主题或从头开始创建自己的主题 - 有关更多详细信息,请参阅主题指南。

为了增加额外的样式能力,您可以使用 css= kwarg 将任何 CSS 传递给您的应用程序。您可以传递 CSS 文件的文件路径,或者 CSS 代码的字符串。

警告:在自定义 JS 和 CSS 中使用查询选择器不能保证在所有 Gradio 版本中都能正常工作,因为 Gradio HTML DOM 可能会变化。我们建议谨慎使用查询选择器。

Gradio 应用的基类是 gradio-container ,这里有一个示例,它更改了 Gradio 应用的背景颜色:

with gr.Blocks(css=".gradio-container {background-color: red}") as demo:
    ...

如果您想在 css 中引用外部文件,请在文件路径(可以是相对或绝对路径)前加上 "file=" ,例如:

with gr.Blocks(css=".gradio-container {background: url('file=clouds.jpg')}") as demo:
    ...

注意:默认情况下,运行 Gradio 应用的用户无法访问主机机器中的文件。因此,您应确保任何引用的文件(例如这里的 clouds.jpg )要么是 URL,要么通过 allow_list 参数在 launch() 中允许。在我们的安全和文件访问部分中了解更多信息。

elem_id 和 elem_classes 参数

您可以 elem_id 添加 HTML 元素 id 到任何组件,并且 elem_classes 添加一个类或类列表。这将允许您更容易地用 CSS 选择元素。这种方法在 Gradio 版本之间也更可能稳定,因为内置的类名或 id 可能会改变(但是,如上面的警告所提到的,如果您使用自定义 CSS,我们不能保证 Gradio 版本之间的完全兼容性,因为 DOM 元素本身可能会改变)。

css = """
#warning {background-color: #FFCCCB}  # 为id为warning的元素设置背景颜色为浅红色
.feedback textarea {font-size: 24px !important}  # 将class为feedback的文本区域字体大小设置为24px,并覆盖其他样式
"""


with gr.Blocks(css=css) as demo:  # 使用gr.Blocks创建应用界面,并应用自定义CSS样式
    box1 = gr.Textbox(value="Good Job", elem_classes="feedback")  # 创建一个带有初始值和类名为feedback的文本框
    box2 = gr.Textbox(value="Failure", elem_id="warning", elem_classes="feedback")  # 创建一个带有初始值、类名为feedback和id为warning的文本框

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值