ExtJS自定义主题(theme)样式详解

下面我来为你详细讲解“ExtJS自定义主题(theme)样式详解”的完整攻略。

一、什么是ExtJS主题(theme)?

在 ExtJS 中,主题 (theme) 可以定义应用程序的整体外观,例如字体、颜色、样式等元素。主题有自己的文件及文件夹,其中包含了 CSS, images以及其他资源。

通过使用主题,我们可以快速地创建一个自定义的漂亮应用程序。

二、如何实现ExtJS主题样式定制?

要实现ExtJS主题定制,我们需要做以下几个步骤:

1. 复制现有ExtJS主题文件夹

首先,我们需要复制一个现有的主题文件夹,例如默认主题 neptune:

cp -R ext-6.2.1/packages/neptune/classic/ custom_theme

2. 修改主题变量

在custom_theme/sass/var目录下,我们可以找到一些 sass 文件,这些文件定义了一些 ExtJS 变量,例如颜色、字体等。我们可以修改这些变量来定制主题。例如,我们可以在 custom_theme/sass/var/defaults文件中定义一些新的变量:

$base-color: #8B0000;
$background-color: #FFF;
$foreground-color: $background-color;
$panel-header-color: #2F4F4F;

这将会改变主要区域的颜色和涉及到的其他样式变量。

3. 构建主题

构建主题需要使用 Sencha Cmd。在 custom_theme 目录下执行以下命令:

sencha app build --theme=name --destination=build/

其中,--theme 名称为我们新建的主题名称,例如:

sencha app build --theme=custom_theme --destination=build/

4. 应用主题

构建主题成功后,在我们应用程序的 app.json 文件中添加以下代码:

"theme": {
    "extend": "custom_theme"
}

这样我们就成功的应用了我们自定义的主题。

三、主题示例

下面提供两个示例:

示例1:使用自己的图标

在 custom_theme/sass/src目录下,我们可以找到许多 sass 文件, 其中有一个叫做 ext-all.scss

在这个文件中,我们可以找到下面的代码片段:

$icon-font-url: '/packages/ext-theme-neptune/build/resources/ext-icons.ttf' !default;

这行代码表示 ExtJS 所使用的默认图标存储在 "ext-icons.ttf"这个字体文件中。

我们可以通过下载一个自定义的图标字体并将其存储在我们主题文件夹中来修改应用程序中的图标。

示例2:修改按钮样式

要更改按钮样式,我们可以在 custom_theme/sass/src/button目录下找到以下 sass 文件:

_ext-buttons.scss

在这个文件中,我们可以遵循 Sass 的继承规则轻松修改 ExtJS 默认按钮的样式,例如,更改按钮的背景色和字体:

.x-btn-base-custom {
    @extend .x-btn-base;

    background-color: #8B0000;
    color: #FFFFFF;
    border: 2px solid white;
}

以上就是 ExtJS 自定义主题样式详解的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ExtJS自定义主题(theme)样式详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • js和jquery如何获取图片真实的宽度和高度

    获取图片真实宽度和高度是前端开发中一个常见的需求,在JavaScript和jQuery中有多种方法可以实现。 使用原生JavaScript获取图片真实宽度和高度 使用Image对象的naturalWidth和naturalHeight属性 使用Image对象的naturalWidth和naturalHeight属性可以获取图片的原始宽度和高度,如下所示: v…

    css 2023年6月10日
    00
  • 绝对定位的元素在ie6下不显示隐藏了的有效解决方法

    确保绝对定位元素所在的父元素拥有相对定位 在IE6浏览器中,如果想让绝对定位的元素能够正确显示,则需要保证该元素所在的父级元素拥有相对定位。因此,我们需要给该父元素添加position:relative属性,这样就可以让绝对定位的子元素相对于其父元素来定位。 .parent { position: relative; } .child { position:…

    css 2023年6月10日
    00
  • vue-cli配置flexible过程详解

    下面我将为你详细讲解“vue-cli配置flexible过程详解”的完整攻略。 1. 安装依赖 我们需要安装以下依赖:- postcss-px2rem- lib-flexible 在vue-cli项目中,使用以下命令安装: npm install postcss-px2rem lib-flexible –save-dev 2. 配置postcss 在 vu…

    css 2023年6月11日
    00
  • 浅谈CSS中的百分比

    下面我将为你详细讲解“浅谈CSS中的百分比”的攻略。 什么是CSS百分比? CSS百分比是指在CSS样式中,以%作为单位的数值。CSS百分比可以用于各种属性中,例如宽度、高度、字体大小、内外边距等。 在使用CSS百分比时,我们需要注意的是,百分比是相对于父元素计算的,因此在使用时需要注意父元素的大小。 CSS百分比的应用 1. 宽度高度 CSS百分比在设置宽…

    css 2023年6月9日
    00
  • 系统之外的字体引用及过渡效果

    系统之外的字体引用及过渡效果是前端开发中的一个重要内容。下面是详细的攻略。 导入外部字体 在网页中使用系统之外的字体,需要先将字体文件引入网页中。通过@font-face属性,我们可以将字体文件导入到网页中。 @font-face { font-family: ‘Open Sans’; src: url(‘OpenSans-Regular.ttf’) for…

    css 2023年6月9日
    00
  • 详解canvas绘制网络字体几种方法

    让我详细讲解一下“详解canvas绘制网络字体几种方法”的攻略。 详解canvas绘制网络字体几种方法 什么是网络字体? 在网页中,有时我们需要使用一些特定的字体以符合设计需求。而这些字体是否能够在用户设备中正确显示就成了一个问题。如果用户没有该字体,则无法正确显示网页中的文字。因此,网络字体应运而生,它可以让设计者在网页中使用非系统自带字体,并且无须下载安…

    css 2023年6月10日
    00
  • CSS中常用的单位

    CSS中常用的单位 1. 像素(px) 像素是CSS中最常用的单位之一,一般用于定义页面元素的大小和边框大小。它的值是固定的,不受屏幕或窗口大小的影响,所以通常被用来定义固定大小的元素,例如导航栏、按钮等。 示例1:定义一个宽度为300像素的容器 .container { width: 300px; } 2. 百分比(%) 百分比是相对于父元素的大小而言,它…

    css 2023年6月9日
    00
  • 用一个DIV画图通过background-image叠加实现

    下面是用一个DIV画图通过background-image叠加实现的攻略。 什么是用一个DIV画图通过background-image叠加实现? 使用一个DIV元素来绘制复杂的图形,是一种常用的HTML和CSS技巧。这种技术有许多优点,包括简单、灵活、易于维护等。 background-image叠加则是指通过多张图片,依次叠加在背景上,实现一个图形的效果。…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部