スタイルの設定

このサンプルでは電卓コントロールのボタンスタイルやサイズ、背景色などをCSSで設定する方法を確認できます。

電卓コントロールで使用されている表示スタイルについて解説します。 スタイルの設定方法 電卓コントロールのスタイルは、CSSで設定します。電卓コントロールを構成する要素のクラス名を指定して、そのクラスのスタイルを設定します。 次のサンプルコードは、「BSボタン」要素のスタイルを設定する方法を示します。 ここではcolorプロパティで文字色を設定していますが、その他にも、背景色、フォント、余白、境界線などの様々なスタイルを設定できます。CSSにおけるスタイル設定方法については、CSSのリファレンスを参照してください。 クラス名 電卓を構成する要素のクラス名は次の通りです。 要素 クラス名 電卓全体 gcim__calculator 電卓のコンテンツ calculator-content 結果出力パネル calculator-output-panel 結果出力のコンテンツ calculator-content 電卓ボタンパネル calculator-btn-panel 電卓ボタン(行単位) calculator-btn-row 電卓ボタン calculator-btn 新しいスタイルの設定方法 InputManJSは2種類のデザインを提供しています。appearanceStyleプロパティを設定することで、従来のデザインまたは新しいデザインを適用できます。すべてのコントロールを初期化する前に設定する必要があります。 appearanceStyleプロパティの設定できる値は次のとおりで、既定値はClassicです。 値 説明 Classic 従来のデザイン Modern 新しいデザイン
import '@mescius/inputman/CSS/gc.inputman-js.css'; import './styles.css'; import { InputMan } from '@mescius/inputman'; InputMan.appearanceStyle = InputMan.AppearanceStyle.Modern; let gcCalculator1 = new InputMan.GcCalculator(document.getElementById('calculator1')); let gcCalculator2 = new InputMan.GcCalculator(document.getElementById('calculator2')); let gcCalculator3 = new InputMan.GcCalculator(document.getElementById('calculator3')); let gcNumber = new InputMan.GcNumber(document.getElementById('number'), { showCalculatorAsPopup: true, calculatorButtonPosition: InputMan.DropDownButtonAlignment.LeftSide, });
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>電卓コントロール - スタイルの設定</title> <!-- SystemJS --> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script> window.onload = function() { System.import('./src/app'); } </script> </head> <body> <div class="flexbox"> <div> デフォルト(スタイルの変更なし) <div id="calculator1"></div> </div> <div> 電卓ボタンのスタイルを変更する <div id="calculator2"></div> </div> <div> 電卓のサイズと背景色、結果パネルを変更する <div id="calculator3"></div> </div> <div> ポップアップ電卓(サイズを小さくして表示)<br> <input id="number" class="has_popup"><br> </div> </div> </body> </html>
/* 2つ目の電卓ボタンのスタイル */ #calculator2 .gcim__calculator .calculator-btn:hover { background-color:yellow } #calculator2 .gcim__calculator .calculator-btn:active { background-color: red; font-weight: bold; } #calculator2 .calculator-btn[data-key-type="Memory"] { background-color: gray; } #calculator2 .calculator-btn[data-key-type="Math"] { background-color: lightgrey; } #calculator2 .calculator-btn[data-key-type="Edit"] { background-color: pink; } #calculator2 .calculator-btn[data-key-type="Numeric"] { background-color: white; } #calculator2 .calculator-btn[data-key-type="Reset"] { background-color: magenta; } #calculator2 .gcim__calculator .calculator-btn[data-key="BS"] { font-size: 20px; } /* 3つ目の電卓のスタイル */ #calculator3 .gcim__calculator { width: 300px; height: 300px; background-color: black; } #calculator3 .gcim__calculator .calculator-output-panel{ height: 50px; } #calculator3 .gcim__calculator .calculator-output { color: red; font-size: 30px; text-align: center; } /* ポップアップ電卓のスタイル */ .has_popup .gcim__calculator { width: 300px; height: 300px; }
/* 2つ目の電卓ボタンのスタイル */ [gcim-control-appearance="modern"] #calculator2 .gcim__calculator .calculator-btn:hover { background-color: yellow; } [gcim-control-appearance="modern"] #calculator2 .gcim__calculator .calculator-btn:active { background-color: red; font-weight: bold; } [gcim-control-appearance="modern"] #calculator2 .calculator-btn[data-key-type="Memory"] { background-color: gray; } [gcim-control-appearance="modern"] #calculator2 .calculator-btn[data-key-type="Math"] { background-color: lightgrey; } [gcim-control-appearance="modern"] #calculator2 .calculator-btn[data-key-type="Edit"] { background-color: pink; } [gcim-control-appearance="modern"] #calculator2 .calculator-btn[data-key-type="Numeric"] { background-color: white; } [gcim-control-appearance="modern"] #calculator2 .calculator-btn[data-key-type="Reset"] { background-color: magenta; } [gcim-control-appearance="modern"] #calculator2 .gcim__calculator .calculator-btn[data-key="BS"] { font-size: 20px; } /* 3つ目の電卓のスタイル */ [gcim-control-appearance="modern"] #calculator3 .gcim__calculator { width: 300px; height: 300px; background-color: black; } [gcim-control-appearance="modern"] #calculator3 .gcim__calculator .calculator-output-panel { height: 50px; } [gcim-control-appearance="modern"] #calculator3 .gcim__calculator .calculator-output { color: red; font-size: 30px; text-align: center; } /* ポップアップ電卓のスタイル */ [gcim-control-appearance="modern"] .has_popup .gcim__calculator { width: 300px; height: 300px; }
System.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true }, meta: { '*.css': { loader: 'css' } }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, // map tells the System loader where to look for things map: { '@mescius/inputman': 'npm:@mescius/inputman/index.js', '@mescius/inputman/CSS': 'npm:@mescius/inputman/CSS', 'css': 'npm:systemjs-plugin-css/css.js', 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel/systemjs-babel-browser.js' }, // packages tells the System loader how to load when no filename and/or no extension packages: { src: { defaultExtension: 'js' }, "node_modules": { defaultExtension: 'js' }, } });