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 ...
随机推荐
- ASP.NET 5 & MVC6系列教程
本系列的大部分内容来自于微软源码的阅读和网络,大部分测试代码都是基于VS RC版本进行测试的. 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介 解读ASP.NET 5 ...
- ShareMemory
项目地址 : https://github.com/kelin-xycs/ShareMemory ShareMemory 一个用 C# 实现的 No Sql 数据库 , 也可以说是 分布式 缓存 , ...
- 客户端用javascript获取grid的数据。
- bzoj1042硬币购物
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1042 dp预处理+容斥原理. 先预处理求出无限制的各面值的组成方案数 f (完全背包). 求s ...
- JFrame 与 Frame
JFrame是Frame的子类 Frame is part of java.awt package and exists since JDK1.0. JFrame is part of javax.s ...
- java 网络编程TCP
客户端 服务端
- Sublime Text 3 最新可用注册码(免破解)
12年的时候分享过Sublime Text 2的注册码和破解方法.4年后容我更新一下Sublime Text 3的注册码.. 最好还是购买正版主持版权.:D. 以下两枚注册码用最新的Sublime T ...
- 纯文本文件 numbers.txt, 里面的内容(包括方括号)如下所示
from collections import OrderedDict import xlwt with open('student.txt','r') as f: number_list = jso ...
- SpringMVC 获取请求参数
1.获取Request response对象 在SpringMVC的注解开发中,可以选择性的接收Request和Response对象来使用 2.获取request对象请求参数 a.通过request对 ...
- REST-assured 3发送图片
上传图片,需要media_id,从上传临时素材获取:https://work.weixin.qq.com/api/doc#10112 https://qyapi.weixin.qq.com/cgi-b ...