Ionic Framework学习(一)

1.安装
(1)安装nodejs
(2)新建文件夹,shift+右键,打开命令行:npm install -g ionic
(3)Start an App:ionic start myApp tabs
(4)运行cd myApp,ionic serve

2.Packages & CDN
(1)集成Angular:npm install @ionic/angular@latest --save
(2)Using Ionic from a CDN:在<head></head>间

<script src="https://unpkg.com/@ionic/core@latest/dist/ionic.js"></script>
    <link href="https://unpkg.com/@ionic/core@latest/css/ionic.bundle.css" rel="stylesheet">

(3)ionicons的使用:放在页面末尾附近,</body>之前   

 <script src="https://unpkg.com/ionicons@latest/dist/ionicons.js"></script>

3.环境配置
查看nodejs和npm版本

node --version
npm --version
git --version

4.iOS 设置
(1)XCode:Xcode是用于创建本机iOS应用程序的IDE。它包括iOS SDK和Xcode命令行工具。可以使用Apple帐户免费下载 Xcode 。它也可以通过App Store安装。
(2)ios-sim和ios-deploy:该ios-sim和ios-deploy是在开发过程中的应用程序部署到了iOS模拟器和iOS设备的实用程序。它们可以在全球范围内安装NPM。
    npm install -g ios-sim
    npm install -g ios-deploy

5.Android 设置
(1)Java:Native Android apps are compiled with the Java programming language(原生Android应用程序使用Java编译语言编译).
(2)Gradle:Android应用程序使用的构建工具。
(3)Android Studio:创建Android应用程序的IDE,
(4)安装Android SDK:打开Android Studio,在SDK Components Setup屏幕中,完成SDK的安装。
(5)创建Android虚拟设备(AVD):进入Tools » AVD Manager,单击 Create Virtual Device 并选择合适的设备定义。如果不确定,选择Pixel 2 XL。然后,选择合适的系统映像。

6.Building 构建
(1)ionic start myApp tabs(\sidemenu\blank)
    myApp是项目名,tabs是启动器模板
    tabs: A tabs based layout
    sidemenu: A sidemenu based layout
    blank: An empty project with a single page
(2)查看可用的模板
ionic start --list
(3)项目结构


(4)生成新功能:ionic generate,然后选择要生成的功能。选择完成后,Ionic CLI将提示输入名称。名称可以是路径,允许在有组织的项目结构中轻松生成功能。或者,可以在命令行上输入type和name生成的和:ionic g page "User Detail"。
tip:Could not find an NgModule. Use the skip-import option to skip importing in NgModule.解决方式:进入src结构下的app下进行操作。

7.Layout 布局
(1)结构体:
①页眉和页脚布局
头:

   <ion-app>
      <ion-header>
        <ion-toolbar>
          <ion-title>Header</ion-title>
        </ion-toolbar>
      </ion-header>
      
      <ion-content padding>
        <h1>Main Content</h1>
      </ion-content>
    </ion-app>

页脚:    

   <ion-app>
      <ion-content padding>
        <h1>Main Content</h1>
      </ion-content>    

      <ion-footer>
        <ion-toolbar>
          <ion-title>Footer</ion-title>
        </ion-toolbar>
      </ion-footer>
    </ion-app>


②标签布局   

   <ion-app>
      <ion-tabs>
        <ion-tab tab="home">
          <h1>Home Content</h1>
        </ion-tab>
        <ion-tab tab="settings">
          <h1>Settings Content</h1>
        </ion-tab>

        <ion-tab-bar slot="bottom">
          <ion-tab-button tab="home">
            <ion-label>Home</ion-label>
            <ion-icon name="home"></ion-icon>
          </ion-tab-button>
          <ion-tab-button tab="settings">
            <ion-label>Settings</ion-label>
            <ion-icon name="settings"></ion-icon>
          </ion-tab-button>
        </ion-tab-bar>
      </ion-tabs>
    </ion-app>


③菜单布局

<ion-app>
  <ion-menu>
    <ion-header>
      <ion-toolbar color="primary">
        <ion-title>Menu</ion-title>
      </ion-toolbar>
    </ion-header>

    <ion-content>
      <ion-list>
        <ion-list-header>
          Navigate
        </ion-list-header>
        <ion-menu-toggle auto-hide="false">
          <ion-item button>
            <ion-icon slot="start" name='home'></ion-icon>
            <ion-label>
              Home
            </ion-label>
          </ion-item>
        </ion-menu-toggle>
      </ion-list>
    </ion-content>
  </ion-menu>

  <ion-page class="ion-page" main>
    <ion-header>
      <ion-toolbar>
        <ion-buttons slot="start">
          <ion-menu-toggle>
            <ion-button>
              <ion-icon slot="icon-only" name="menu"></ion-icon>
            </ion-button>
          </ion-menu-toggle>
        </ion-buttons>
        <ion-title>Header</ion-title>
      </ion-toolbar>
    </ion-header>
    <ion-content padding>
      <h1>Main Content</h1>
      <p>Click the icon in the top left to toggle the menu.</p>
    </ion-content>
  </ion-page>
</ion-app>

<ion-menu-controller></ion-menu-controller>


④拆分窗格布局

<ion-app>
  <ion-split-pane when="sm">
    <ion-menu>
      <ion-header>
        <ion-toolbar color="primary">
          <ion-title>Menu</ion-title>
        </ion-toolbar>
      </ion-header>

      <ion-content>
        <ion-list>
          <ion-list-header>
            Navigate
          </ion-list-header>
          <ion-menu-toggle auto-hide="false">
            <ion-item button>
              <ion-icon slot="start" name='home'></ion-icon>
              <ion-label>
                Home
              </ion-label>
            </ion-item>
          </ion-menu-toggle>
        </ion-list>
      </ion-content>
    </ion-menu>

    <ion-page class="ion-page" main>
      <ion-header>
        <ion-toolbar>
          <ion-buttons slot="start">
            <ion-menu-toggle>
              <ion-button>
                <ion-icon slot="icon-only" name="menu"></ion-icon>
              </ion-button>
            </ion-menu-toggle>
          </ion-buttons>
          <ion-title>Header</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content padding>
        <h1>Main Content</h1>
      </ion-content>
    </ion-page>

  </ion-split-pane>
</ion-app>


(2)响应式网格
①网格大小
默认情况下,网格将占用100%的宽度。要根据屏幕大小设置特定宽度,请添加fixed属性。每个断点的网格宽度在--ion-grid-width-{breakpoint}CSS变量中定义。

XS    100%    不要为xs屏幕设置网格宽度
SM    540px    设置网格宽度为540px时(最小宽度:576px)
MD    720px    (最小宽度:768px)时将网格宽度设置为720px
LG    960px    (最小宽度:992px)时将网格宽度设置为960px
XL    1140px    (最小宽度:1200px)时将网格宽度设置为1140px

②网格属性

属性           描述
no-padding     从网格和直接子列中删除填充。
fixed          根据屏幕大小设置最大宽度。

③默认断点

名称      值            宽度前缀    偏移前缀        推送前缀    拉前缀            描述
XS        0            size-        offset-    push-    pull-        (min-width:0)时设置列
SM        576px        size-sm-    offset-sm-        push-sm-    pull-sm-        设置列时(最小宽度:576px)
MD        768px        size-md-    offset-md-        push-md-    pull-md-        设置列时(最小宽度:768px)
LG        992px        size-lg-    offset-lg-        push-lg-    pull-lg-        设置列时(最小宽度:992px)
XL        1200px    size-xl-    offset-xl-        push-xl-    pull-xl-        设置列时(最小宽度:1200px)

(3)CSS实用工具
①文字对齐

.ion-text-left        text-align: left    内联内容与行框的左边缘对齐。
.ion-text-right        text-align: right    内联内容与行框的右边缘对齐。
.ion-text-start        text-align: start    一样text-left如果方向是左到右和text-right如果方向是从右到左。
.ion-text-end        text-align: end        一样text-right如果方向是左到右和text-left如果方向是从右到左。
.ion-text-center    text-align: center    内联内容在行框中居中。
.ion-text-justify    text-align: justify    内联内容是合理的。文本应该间隔开,以使其左右边缘与行框的左右边缘对齐,但最后一行除外。
.ion-text-wrap        white-space: normal    空白的序列被折叠。源中的换行符作为其他空格处理。根据需要打破行以填充行框。
.ion-text-nowrap    white-space: nowrap    折叠空白normal,但抑制文本中的换行符(文本换行)。

②文字转换

.ion-text-uppercase        text-transform: uppercase    强制将所有字符转换为大写。
.ion-text-lowercase        text-transform: lowercase    强制将所有字符转换为小写。
.ion-text-capitalize    text-transform: capitalize    强制将每个单词的第一个字母转换为大写。

③响应文本类

.ion-text-{modifier}    将修改器应用于所有屏幕尺寸的元素。
.ion-text-sm-{modifier}    在何时将修改器应用于元素min-width: 576px。
.ion-text-md-{modifier}    在何时将修改器应用于元素min-width: 768px。
.ion-text-lg-{modifier}    在何时将修改器应用于元素min-width: 992px。
.ion-text-xl-{modifier}    在何时将修改器应用于元素min-width: 1200px。

④浮动元素

类                    风格规则                    描述
.ion-float-left        float: left                    该元素将浮动在其包含块的左侧。
.ion-float-right    float: right                元素将浮动在其包含块的右侧。
.ion-float-start    float: left / float: right    一样float-left如果方向是左到右和float-right如果方向是从右到左。
.ion-float-end        float: left / float: right    一样float-right如果方向是左到右和float-left如果方向是从右到左。

⑤响应式浮动

.ion-float-{modifier}        将修改器应用于所有屏幕尺寸的元素。
.ion-float-sm-{modifier}    在何时将修改器应用于元素min-width: 576px。
.ion-float-md-{modifier}    在何时将修改器应用于元素min-width: 768px。
.ion-float-lg-{modifier}    在何时将修改器应用于元素min-width: 992px。
.ion-float-xl-{modifier}    在何时将修改器应用于元素min-width: 1200px。

⑥显示元素

.ion-hide    display: none    该元素将被隐藏。

⑦响应式显示元素

.ion-hide-sm-{dir}    在min-width: 576px(up)或max-width: 576px(down)时将修饰符应用于元素。
.ion-hide-md-{dir}    在min-width: 768px(up)或max-width: 768px(down)时将修饰符应用于元素。
.ion-hide-lg-{dir}    在min-width: 992px(up)或max-width: 992px(down)时将修饰符应用于元素。
.ion-hide-xl-{dir}    在min-width: 1200px(up)或max-width: 1200px(down)时将修饰符应用于元素。

⑧元素填充(内边距padding)

类                        风格规则                描述
.ion-padding            padding: 16px            适用于所有方面的填充。
.ion-padding-top        padding-top: 16px        将填充应用于顶部。
.ion-padding-start        padding-start: 16px        应用填充到开头。
.ion-padding-end        padding-end: 16px        将填充应用到最后。
.ion-padding-bottom        padding-bottom: 16px    将填充应用于底部。
.ion-padding-vertical    padding: 16px 0            在顶部和底部应用填充。
.ion-padding-horizontal    padding: 0 16px            在左侧和右侧应用填充。
.ion-no-padding            padding: 0                不向所有方面应用填充。

⑨元素填充(外边距margin)

类                        风格规则            描述
.ion-margin                margin: 16px        所有方面的外边距。
.ion-margin-top            margin-top: 16px    顶部外边距。
.ion-margin-start        margin-start: 16px    左侧外边距。
.ion-margin-end            margin-end: 16px    右侧外边距。
.ion-margin-bottom        margin-bottom: 16px    底部外边距。
.ion-margin-vertical    margin: 16px 0        在顶部和底部应用外边距。
.ion-margin-horizontal    margin: 0 16px        向左和向右应用外边距。
.ion-no-margin            margin: 0            不向所有方面申请外边距。

8.CSS变量
(1)全局变量,在src/theme/variables.scss下   

 / *为所有模式设置变量* / 
    :root  { 
      / *设置整个应用程序的背景* / 
      --ion-background-color: #ff3700;
      / *设置整个app * /  
      --ion-font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif;
      / *仅为Material Design设置整个应用程序的文本颜色* / 
      .md {
        --ion-text-color: #222;
      }

(2)组件变量,要为特定组件设置CSS变量,请在其选择器内添加变量   

 / *设置所有离子按钮元素的颜色* / 
    ion-button {
      --color: #222;
    }
    / *设置在离子键与.fancy按钮类* /
    .fancy-button {
      --background: #00ff00;
    }

(3)通过JavaScript设置变量    

const el = document.querySelector('.fancy-button');
el.style.setProperty('--background', '#36454f');

(4)获取值
①使用CSS    

.fancy-button {
    --background: var(--charcoal, #36454f);
}

②使用JavaScript  

const el = document.querySelector('.fancy-button');
const color = el.style.getPropertyValue('--charcoal');

9.Color Generate、
(1)color:

    <ion-button>Default</ion-button>
    <ion-button color="primary">Primary</ion-button>
    <ion-button color="secondary">Secondary</ion-button>
    <ion-button color="tertiary">Tertiary</ion-button>
    <ion-button color="success">Success</ion-button>
    <ion-button color="warning">Warning</ion-button>
    <ion-button color="danger">Danger</ion-button>
    <ion-button color="light">Light</ion-button>
    <ion-button color="medium">Medium</ion-button>
    <ion-button color="dark">Dark</ion-button>

(2)分层颜色

名称            属性                                默认值                描述
Base            --ion-color-primary                    #3880ff                所有变化源自的主要颜色
Base (rgb)        --ion-color-primary-rgb                rgb( 56, 128, 255)    基色为红色,绿色,蓝色格式
Contrast        --ion-color-primary-contrast        #ffffff                基色的反面应该是基色可见的
Contrast (rgb)    --ion-color-primary-contrast-rgb    rgb( 255, 255, 255)    红色,绿色,蓝色格式的对比色
Shade            --ion-color-primary-shade            #3171e0                基色的浅色版本
Tint            --ion-color-primary-tint            #4c8dff                基色的略微更轻的版本

(3)要更改颜色的默认值,应设置该颜色的所有列出的变体
    

:root {
      --ion-color-secondary: #006600;
      --ion-color-secondary-rgb: 0,102,0;
      --ion-color-secondary-contrast: #ffffff;
      --ion-color-secondary-contrast-rgb: 255,255,255;
      --ion-color-secondary-shade: #005a00;
      --ion-color-secondary-tint: #1a751a;
    }

(4)添加颜色

 .ion-color-favorite {
      --ion-color-base: #69bb7b;
      --ion-color-base-rgb: 105,187,123;
      --ion-color-contrast: #ffffff;
      --ion-color-contrast-rgb: 255,255,255;
      --ion-color-shade: #5ca56c;
      --ion-color-tint: #78c288;
    }

 使用:

<ion-button color="favorite">Favorite</ion-button>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值