[Ionic 2从入门到精通] 4.6 自定义样式

我们快要完成这个应用了,做完一点点自定义样式之后,就算正式完成了。在定义我们的样式之前我们将要给模板文件添加一些类。
> 修改src/pages/home/home.ts 为如下:

<ion-header>
    <ion-navbar color="secondary">
        <ion-title>
        <ion-searchbar color="primary" placeholder="enter subreddit name..."   [(ngModel)]="subredditValue" [formControl]="subredditControl"  value=""></ion-searchbar>
        </ion-title>
        <ion-buttons end>
        <button ion-button icon-only (click)="openSettings()"><ion-icon   name="settings"></ion-icon></button>
        </ion-buttons>
    </ion-navbar>
</ion-header>
<ion-content>
<ion-list>
    <div *ngFor="let post of redditService.posts">
    <ion-item (click)="playVideo($event, post)" no-lines  style="background-color: #000;">
    <img src="assets/images/loader.gif" *ngIf="post.showLoader" class="video-loader" />
    <video loop [src]="post.data.url" [poster]="post.data.snapshot">
    </video>
    </ion-item>
    <ion-list-header (click)="showComments(post)" style="text-align: left;">
    {{post.data.title}}
    </ion-list-header>
    </div>
    <ion-item *ngIf="redditService.loading" no-lines style="text-align:center;">
    <img src="assets/images/loader.gif" style="width: 50px" />
    </ion-item>
    </ion-list>
    <button ion-button color="light" full (click)="loadMore()">Load More...</button>
</ion-content>

如果你复习过基础部分的话,你应该知道有一些定义样式的方法,如果你跳过了基础部分的定制主题的话,强烈建议你回去读一遍。
> 修改src/pages/home/home.scss 为如下:

page-home {

    ion-item {
        background-color: #000;
        position: relative;
    }

    ion-item .video-loader {
        position: absolute;
        top: 10px;
        right: 10px;
        width: 25px;
        height: 25px;
    }

    ion-list-header {
        background-color: #fff;
    }

    ion-label {
        margin: 0px !important;
    }

    ion-list {
        margin: 0px !important;
    }

    ion-item-content, .item-inner, .item {
        margin: 0 !important;
        padding: 0 !important;
        text-align: center;
    }

    video {
        max-width: 100%;
        height: auto;
        background-color: #000;
    }
}

这些都是很基本的样式,大部分我们都只是改变一下颜色,移除间隙和边距。这里最重要的样式是ion-item-contentvideo样式用于缩放视频以适配离别。理想情况下我们希望视频从宽度上填满整个项,但是本案例中GIF不会都有肖像,所以我们让GIF居中显示,然后添加黑色背景,这样其实也蛮好看的。
现在我们将针对iOS做一些特别的样式。我们顶部的搜索条看起来有点小,因为我们把他加入到<ion-title>部分,所以我们得把他变大点。搜索条在Android的显示很好,所以我们不想要样式在Android上产生作用。
> 添加如下样式到 src/app/app.scss:

.ios {
    ion-title {
        padding: 0px 35px 1px 0px;
    }
}

当在iOS上运行的时候,Ionic将自动添加一个ios类到<body>这样我们可以通过以上方法对iOS进行定制。同理,也可以通过md对Android进行定制,wp对Windows进行定制。接下来,我们要给body标签添加一个背景色,这个我们将会在同一的.scss文件中添加。
同时我们也会对整个应用进行样式定制。
> 将以下样式添加到 src/app/app.scss:

body {
    background-color: #e74c3c;
}

终于,我们来到了定义应用共享变量的地方了,variables.scss文件。
> 修改 src/theme/variables.scss到如下样式:

$colors: (
    primary: #ecf0f1,
    secondary: #e74c3c,
    danger: #f53d3d,
    light: #e74c3c,
    dark: #222222
);

$searchbar-ios-background-color: #e74c3c;
$searchbar-ios-input-background-color: #c94234;

$button-ios-border-radius: 0px;

此处我们进行了一些颜色变更,对搜索条进行了一些修改,设置了iOS的按钮边缘半径让我们的‘Load More’从矩形变成了圆角矩形。

3.6.1.jpg

好看多了!如果你查看Android版本的话(在Chrome Dev Tools中设置Emulator为Samsung或者其他Android设备,或者使用ionic server -l命令),效果是这样的:

3.6.2.jpg

(请忽略右边的白色条,他不会出现在真实设备上的)
他看起来明显不同了,但是看起来还是很不错。Ionic最好的事情之一是他自动根据运行平台进行调整适配。通常,越少跟平台纠缠越好。如果你主要是用iOS设备的话,或者主用Android设备,其他平台的样式看起来可能会有点怪异,但是此平台用户而言可能不会那么怪异。如果有很好的理由,否则不应该去改动平台特定样式(当然可以实现的)来让他看起来跟另一平台相同。

总结

跟其他课程相比本节课相当简短,但是同时他也给你展示了付出一点点的努力为应用制作一个不错的自定义主题是多么的简单。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容