20211202のHTMLに関する記事は5件です。

HTML、CSS、JavaScriptで電卓をつくりました。

作ったアプリ https://xenodochial-clarke-ebb79c.netlify.app/ 四則演算だけできるシンプルな電卓です。できるだけWindows10の標準電卓と同じ動作になるように作りました。 今回は外部ライブラリとして、fittyとbig.jsを使いました。 今回学んだこと 数字が枠からはみ出る問題 電卓のディスプレイ部分ですが、入力する数字の桁が大きすぎると枠からはみ出てしまいます。 [1]を連打しまくる... で、数字が何桁入力されても幅が固定された枠の中に収まるように文字サイズを調整したい!と思っていたところ、fittyというとっても便利なライブラリを見つけました。fittyを使うと、次のようにフォントサイズが自動調整されて桁数が多い場合でも、1行に収まるようにしてくれます。 index.html <div class="result-display"><div><div id="result">0</div></div></div> script.js import fitty from './fitty.module.js' fitty('#result', { maxSize: 48 // 最大フォントサイズを設定。最小も設定できる。 }) 使い方はとても簡単で、fittyに文字サイズを自動調整したい要素を渡して、最大/最小フォントサイズなどを設定するだけです。一見必要なさそうな<div>は、.result-displayにpaddingを設定しているためで、公式の次の注意に従っています。 If the parent element of the fitty element has horizontal padding the width calculation will be incorrect. You can fix this by wrapping the fitty element in another element. 電卓としては1行に収めてくれるとはいえ、あまり桁数が多くなっても困るので数字を入力するたびにその桁数を評価して16桁以上は入力できないようにしています。 script.js if (currentNum.length > 16) { currentNum = currentNum.slice(0, -1) // この時のCurrentNumはStringです } 小数点を含む場合に正しく計算できない 原因はあまり詳しく調べていないですが、JavaScriptでは小数点を含む場合に正しく計算できないことがあるようで、これに対処するために色々やり方はあるみたいですが、今回はbig.jsというライブラリを使いました。 普通に計算した場合 big.jsを使った場合 アプリでの実装は次のような感じで、[+]や[-]が押されたときにbig.jsのメソッドで計算して、Number型に変換しています。 script.js if (ope === '+') { answer = Big(firstTerm).plus(secondTerm).toNumber() } else if (ope === '-') { answer = Big(firstTerm).minus(secondTerm).toNumber() } else if (ope === '×') { answer = Big(firstTerm).times(secondTerm).toNumber() } else if (ope === '÷') { answer = Big(firstTerm).div(secondTerm).toNumber() } キーボード入力で、ボタンをクリックしたときと同じ処理をさせる 例えば、キーボードの[1]を押したときに、画面に表示してある[1]のボタンに登録してあるイベントハンドラを実行させるという実装をしました。dispatchEventメソッドを使って、clickイベント発生時に実行するイベントハンドラをkeydownイベント発生時にも実行させています。 script.js one.addEventListener('click', appendNum) // oneは[1]ボタン要素への参照。クリック時に[1]を計算式に追加する // 同じ動作をキーボードの[1]キーが入力されたときに実行したい window.addEventListener('keydown', getKeyboardValue) // 何らかのキーが押されたときに、getKeyboardValueを実行 const getKeyboardValue = e => { switch (e.key) { // 入力されたキーを判断 case '0': zero.dispatchEvent(new Event('click')) break case '1': // 入力されたキーが[1]であれば、'click'イベントが発火したと捉える→appendNumが実行される one.dispatchEvent(new Event('click')) break // 以下、入力されたキーごとに条件分岐 } type="module"設定時にローカル環境でテストする 今回はscript.jsに外部ライブラリを読み込んでいるので<script>のtype="module"を設定しますが、ローカル環境で普通にindex.htmlを開いて...とやると、エラーが出ます。 index.html <script type="module" src="script.js" defer></script> エラー Access to script at 'file:///path/to/script.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https. で、これはfile://でアクセスしているのが原因らしく、http://でアクセスしてやればいいらしいです。やり方については、下記のMDNの記事がとても分かりやすいです。pythonでローカルサーバを立ち上げればいいらしい。 参考文献・記事 fitty big.js How do you set up a local testing server? JavaScript コードレシピ集
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

!!初心者必見!!今だからわかるプログラミングをやり始めて知った専門用語集

はじめに 初めまして!私は今年の春からプログラミングを始めた納豆と申します!!自分がプログラミングを始めた際と比べて自分の中のプログラミング用語集が増えてきたので今回はこれからプログラミングを始める方向けに、今後聞く機会が増えるであろう単語集を紹介したいと思います。この記事が少しでも読んでくださった方の役に立てば幸いです。 1.github githubを使うことによって、エンジニアが書いたコードをローカルではなく、WEB上で保存することができます。また、もし新しいコードを書いたけど、前に書いたコードに戻したいって思ったときに、githubを使えば、過去のコードをみれたり、また、チームで開発する際に使えたりします。 2.デプロイ デプロイとは、簡単に言うと、つくったWEBアプリやWEBサイトをネットに公開することです。 3.ソースコード コンピュータのプログラムやアプリケーションソフトウェアを動作させるための文字列のことです。この下のおまけに書かれているのがまさにソースコードです。 4.コンパイル 簡単に言うと、人間が書いたソースコードを機械語に翻訳することです。 5.デバッグ 簡単に言うとバグを見つけてそれを修正することです。 6.ローコード・ノーコード開発 ローコード開発とはコードを最小限しか書かずにアプリなどを開発する開発方法で、ノーコード開発は名前の通り、プログラミングをせずに開発する開発方法です。 おまけ さまざまなプログラミング言語 HTML/CSS これはWEBサイトを製作する際に使われる言語で、HTMLという言語でWEBページの文字や画像、アイコンなどを表示させることができ、それをCSSという言語で色を付けたり、文字の大きさをつけたりするといった感じです。 index.html <h1>こんにちは</h1> htmlで表示した文字をcssで、色を付けたり、背景に色を付けたりすることができます style.css .h1{ color :blue; background-color :green; } Python Pythonというプログラミング言語は、現在かなり、人気がある言語として取り扱われています。主にPythonで作れるものとしては、最近はやりのAI(人工知能)、WEBサイト、ゲーム、業務自動化ツールなど、Pythonという言語を勉強しておけば、かなりのものを作ることができます。比較的学びやすいという点もPythonのいい点です。 python print("こんにちは") javascript こちらの言語は主にWEBサイトやWEBアプリを作る際に使われます。WEBサイトを作る際にこの言語を使うと、サーバーと通信して情報を送ったり、受信できたり、HTMLやCSSで書かれた画面に動きを与えることができたり、様々なことが可能です。 javascript console.log("こんにちは") C言語 こちらの言語は習得するのが難しいかわりに、WEBサイト、WEBアプリ、ゲームの開発ができ、これに加え、システムの開発や家電などの家電に組み込むシステム、ロボットなども作ることができます c #include <stdio.h> int main() { printf("こんにちは"); return 0; } Java こちらの言語でほかの言語と同じようにWEBサイト、WEBアプリ、ゲームの開発ができ、これに加え、システムの開発や家電などの家電に組み込むシステムも作ることができます。また、この言語はオブジェクト指向という概念に基づいています。 java public class Hello{ public static void main(String argv[]){ System.out.println("こんにちは"); } } Ruby ruby String.new("Hello") ・Unity こちらの言語はゲーム制作に特化した言語であり、2D、3Dのゲームを作ることができ、なんとあのポケモンGOもUnityで作られています。 さいごに いかがだったでしょうか。途中から用語というより言語の紹介になってしまった気がしますが、もしお役に立てたなら幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

高さが違うコンテナをgridで綺麗に並べる

【やりたいこと】 PC、タブレット表示でMasonryっぽい並びをgridレイアウトで実装する。ウィンドウ幅縮小で並び替えはしない。スマホサイズになると昇順で縦に並ぶ。 【結果】 See the Pen grid layout by yoshida (@yoshi090) on CodePen. 【解説】 ポイントは以下です。 style.scss grid-template-areas: "a1 a2" "a1 a2" "a1 a4" "a3 a4" "a3 a6" "a5 a6" "a5 a7" "a5 a7"; エリアの指定を上記のようにすることで左右のコンテナの数や高さが違うものも勝手に揃ってくれます。 style.scss grid-template-rows: 0.6fr 0.8fr 0.9fr 0.6fr 0.8fr 0.9fr 0.9fr 0.4fr; また上記のrow(行)の高さを編集することで各コンテナの高さも調節できます。 IE11でも同様に表示されます(要ベンダープレフィクス)。 【余談】 Flexboxで実装するのは難しそうでした。 例えばスマホでのコンテナの並びが縦に「1→3→5→2→4→6→7」ならば左右でコンテナとして括れるので可能かと思います。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

こたつ寝防止!

こたつ寝防止! 寒い季節到来!こたつシーズンも到来ですね! 毎年、温かいこたつでそのまま寝てしまい怒られる、そんなシーン皆さんあるのでは、ないでしょうか? 私は、毎年そうです!笑 むしろ日課です! ただ、そろそろこの習慣ともお別れしたいとも思ってます!(ほんとかよ!笑) その習慣を改善できる仕組みはないかと思い、こんな仕組みを制作しました! IFTTT×WebSpeech APIを連携させた仕組み IFTTT×WebSpeechAPIを活用し、長時間こたつで寝てたら、軍隊ラッパで起こされる仕組みを作りたいと思います。(ビックリさせたい!) 作りたかった仕組み イメージ動画 課題となっているCodePen 環境 ・IFTTT(youtube、line) ・
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

猿でも簡単に実装できるお手軽レスポンシブWebデザイン?  

はじめに 筆者は大学生限定プログラミングコミュニティ『GeekSalon』で活動しているものです! 興味があればぜひお話を聞きに来てくださいね!!! レスポンシブWebデザインとは? そもそもレスポンシブWebデザインがどんなものなのかご存知でしょうか? これはWebサイトを閲覧しているユーザーが使用しているデバイス(パソコン、スマホ、ipadなど...)の画面サイズにそれぞれ表示を対応させるデザイン手法のことを指します! パソコンで見たときにはちゃんと表示されてるのにスマホに変えた途端レイアウトがグチャグチャになっちゃった経験ありませんか??? そんな悩みを解決できるのがこのレスポンシブWebデザインです!!! この記事では「メディアクエリ」というものを使って、スマホで見たときに画像が中央に寄って見やすくなるようにします!!! 実装方法 HTMLとCSSだけを使うのでとても簡単に実装することができます! 写真を用意 こちらの画像を使わせてもらいます! (執筆者は生粋のガオラーです笑) viewページを用意 htmlとcssのファイル二つを用意します!!! まずはhtmlファイルから! ear.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=devise-width"> <title>Little Glee Monster</title> <link rel="stylesheet" href="css/earstyle.css"> </head> <body> <div class="container"> <header> <h1>Little Glee Monster</h1> </header> <section clsss="sekawara"> <div class="sekawara"> <h1>世界はあなたに笑いかけている</h1> <img src="img/sekawara.jpg" alt="世界はあなたに笑いかけている">   <p>2018年8月に発売された12枚目のシングル<br> 第60回日本レコード大賞では、作曲賞を受賞した<br> YouTubeでは2000万回以上再生されている超人気曲となっている </p> </div> </section> <div> </body> </html> 次にCSSファイルも用意しましょう!!! earstyle.css @import url(sanitize.css); body{ background-color: #f0f0f0; font-size: 14px; color: #666; } .container{ width: 1000px; box-shadow: 0 0 10px rgba(0,0,0, .3); margin: 0 auto; } header{ background-color: #422814; padding: 10px; color: #fff; } h1{ margin: 0; font-size: 24px; font-weight: normal; text-align: center; } .sekawara img{ float: left; margin: 0 10px 10px 0; } .sekawara{ height: 540px; } p{ font-size: 20px; text-align: center; } @media only screen and (max-width: 1000px){ .sekawara img{ float: none; display: block; margin: 0 auto; } header{ padding: 5px; } header h1{ font-size: 12px; } } cssのコードの解説を少しだけさせてもらいます! @media only screen and (max-width: 1000px) 画面の最大の幅が1000pxになった際のcssを指定することができます! @mediaのコードはスマホだけでなく大型のディスプレイにも適応させることができる非常に便利なコードです! どんな内容を指定するかは{}の中に書いていくようにしましょう! .sekawara img{ float: none; display: block; margin: 0 auto; } 写真のまわりこみを解除して、中央に寄せる記述になっています! これで実装することができました!実際に見てましょう! PCver スマホver(レスポンシブ対応前) スマホver(レスポンシブ対応後) 上のようにスマホなどタブレットで頻繁にWebサイトを開く際はこのようにレスポンシブ対応させた方が画面いっぱいに見ることができます! とてもスッキリしたかと思います!!! メディアクエリを使ったレスポンシブWebデザインの実装でした!!!?
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む