UI5-文档-4.14-Custom CSS and Theme Colors
有时我们需要定义一些更细粒度的布局,这时我们可以通过向控件添加自定义样式类来使用CSS的灵活性,并根据自己的喜好对它们进行样式化。
Preview

The space between the button and the input field is now smaller and the output text is bold
谨慎:正如兼容性规则所述,SAPUI5生成的HTML和CSS不是公共API的一部分,可能会在补丁和小版本中更改。如果决定重写样式,则有义务在每次更新SAPUI5时测试和更新修改。这样做的一个先决条件是,您可以控制正在使用的SAPUI5版本,例如,在一个独立的场景中。当您在SAP Fiori launchpad中运行您的应用程序时,这是不可能的,因为SAPUI5是为所有应用程序集中加载的。因此,SAP Fiori launchpad应用程序不应该覆盖样式。
Coding
You can view and download all files at Walkthrough - Step 14.
webapp/css/style.css (New)
html[dir="ltr"] .myAppDemoWT .myCustomButton.sapMBtn {
margin-right: 0.125rem
}
html[dir="rtl"] .myAppDemoWT .myCustomButton.sapMBtn {
margin-left: 0.125rem
}
.myAppDemoWT .myCustomText {
display: inline-block;
font-weight: bold;
}
我们创建一个文件夹css,其中将包含我们的css文件。在css文件夹内的新样式定义文件中,我们将创建与自定义名称空间类相结合的自定义类。这确保样式只应用于应用程序中使用的控件。
一个按钮有一个我们想要覆盖的默认空白为0:我们使用样式类myCustomButton向按钮添加一个2px的自定义空白(或相对于默认字体大小16px计算出的0.125rem)。我们添加了CSS类sapMBtn以使选择器更加特定:在CSS中,具有最特定选择器的规则“获胜”。
对于从右到左(rtl)语言,如阿拉伯语,在应用程序显示颠倒时设置左边框并重置右边框。如果你只使用标准的SAPUI5控件,你不需要关心这个,在我们使用自定义CSS的情况下,你必须添加这个信息。
在另一个类myCustomText中,我们定义了一个粗体文本,并将显示设置为内联块。这一次,我们只定义了自定义类,没有任何其他选择器。我们还没有在这里设置颜色值,我们将在视图中这样做。
webapp/manifest.json
...
"sap.ui5": {
...
"models": {
...
},
"resources": {
"css": [
{
"uri": "css/style.css"
}
]
}
}
在sap.ui5命名空间的参考资料部分,可以加载应用程序的其他资源。我们通过定义相对于组件的URI来加载CSS样式。然后SAPUI5将这个文件作为<link>标记添加到HTML页面的标题中,就像在普通Web页面中一样,浏览器会自动加载它。
webapp/view/App.view.xml
<mvc:View
controllerName="sap.ui.demo.walkthrough.controller.App"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc"
displayBlock="true">
<App class="myAppDemoWT">
<pages>
<Page title="{i18n>homePageTitle}">
<content>
<Panel
headerText="{i18n>helloPanelTitle}"
class="sapUiResponsiveMargin"
width="auto">
<content>
<Button
text="{i18n>showHelloButtonText}"
press="onShowHello"
class="myCustomButton"/>
<Input
value="{/recipient/name}"
valueLiveUpdate="true"
width="60%"/>
<FormattedText
htmlText="Hello {/recipient/name}"
class ="sapUiSmallMargin sapThemeHighlight-asColor myCustomText"/>
</content>
</Panel>
</content>
</Page>
</pages>
</App>
</mvc:View>
app控件使用自定义名称空间类myAppDemoWT配置。该类没有样式化规则集,在CSS规则的定义中用于定义仅对该应用程序有效的CSS选择器。
我们将自定义CSS类添加到按钮,以精确定义按钮和输入字段之间的空间。现在我们有了一个像素完美的面板内容设计。
为了突出显示输出文本,我们使用了一个FormattedText控件,该控件可以通过使用自定义CSS或HTML代码单独设置样式。我们添加自定义CSS类(myCustomText)并添加一个与主题相关的CSS类来设置主题中定义的高亮颜色。
现在实际的颜色取决于选择的主题,确保颜色始终适合主题,语义清晰。获取可用CSS类名的完整列表,see CSS Classes for Theme Parameters.
Conventions
不要在自定义CSS中指定颜色,而是使用标准的主题相关类。
Parent topic: Walkthrough
Previous: Step 13: Margins and Paddings
Next: Step 15: Nested Views
Related Information
Descriptor for Applications, Components, and Libraries
CSS Classes for Theme Parameters
Creating Themable User Interfaces
API Reference:sap.ui.core.theming
UI5-文档-4.14-Custom CSS and Theme Colors的更多相关文章
- ElasticSearch部署文档(Ubuntu 14.04)
ElasticSearch部署文档(Ubuntu 14.04) 参考链接 https://www.elastic.co/guide/en/elasticsearch/guide/current/hea ...
- 创建HTML文档
目录 创建HTML文档 构筑基本的文档结构 DOCTYPE元素 DOCTYPE元素 代码清单1 使用DOCTYPE元素 html元素 html元素 代码清单2 使用html元素 head元素 head ...
- XML的文档声明
1.XML的文档声明 <?xml version="1.0" encoding="utf-8"?> 文档声明必须写在第一行第一列 属性: versi ...
- 制作Aspose CHM文档的过程记录
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- AngularJS1.X学习笔记14-动画(解读文档)
最近在看算法分析,那个大O啊,小o啊,分治法啊(目前就看到这里),真是搞死了.这回呢休息一下,学学AngularJS动画,上一篇文章根据自由男人的书简单谈到了动画的话题,发现反响很大(好吧,我说慌了, ...
- 浏览器怎么解析一个hmtl文档
注意 link里面的css文件是并行请求下载的 script里面的js文件是同步请求下载的 html页面中的语句都是从上往下执行的 浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到 def ...
- ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理
分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...
- Javascript - DOM文档对象模型
文档对象模型(DOM) DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的APIJavascript和DOM一般经常作为一个整体,因为Ja ...
- 关于文档模式、DCOTYPE声明及严格模式
1.文档模式 文档模式的概念是由IE5.5引入,通过使用文档类型(DOCTYPE)切换实现的.不同的文档模式主要影响CSS内容的呈现,尤其是浏览器对盒模型的解析,但在某些情况下也会影响到JavaScr ...
随机推荐
- IE浏览器从页面向后台Controller传中文值出现乱码问题
地址前面添加encodeURI() 1. var url = encodeURI('xxxAction.action?para='+中文); $('#cc').combobox({ url : url ...
- go http client, http server
Go语言中的HTTP client, server非常简单.具体如下. HTTP Server package main import ( "fmt" "html&quo ...
- PHP中文件类型 文件属性 路径以及 文件相关的函数
一: 文件类型判断: 1.is_dir() 判断是不是目录 2.is_file() 判断是不是文件 3.is_executable() 判断是不是可执行文件 4.is_readable() 判断是 ...
- Flask视图函数与普通函数的区别,响应对象Response
视图函数与普通函数看似没什么区别,其实他们的返回值上有着很大的区别. from flask import Flask app = Flask(__name__) @app.route('/hello' ...
- Python的数据库连接池DBUtils
DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程 ...
- 【Tomcat-原】如何在Myeclipse中添加本地的Tomcat
2014-10-27 16-24-09 liulin 说明: Myeclipse中自带Tomcat,如果不想用Myeclipse自带的Tomcat,可以使用本地的Tomcat, 下面将介绍如何在My ...
- jmeter监控服务器的方法
先下载Jmeter资源监控插件,我的百度云jmeter视频里面有说. 地址如下: JMeterPlugins-Standard-1.3.1.zip 下载 https://jmeter-plugins ...
- Valgrind memcheck 8种错误实例
调不尽的内存泄漏,用不完的Valgrind Valgrind 安装 1. 到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz2 2. 解压安装包:tar –jxvf ...
- Linux版本使用的文件系统类型
1. cat /etc/fstab 2. df -T -h
- MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)解决方案详细说明
1.首先这个问题出现的原因不详,可能是mysql的bug吧 2 解决步骤 1.首先停下mysql的服务 作者系统下命令为 /etc/init.d/mysqld stop 具体的停 ...