オシャレな割り勘電卓を作成しよう！【HTML・CSS・JavaScript】

## はじめに
飲み会や食事の際、割り勘を簡単に計算できる「割り勘電卓」を作りたいと思ったことはありませんか？今回は、HTML・CSS・JavaScriptを使って、オシャレで電卓風の割り勘計算アプリを作成する方法をご紹介します。

この記事では、次の機能を持った割り勘電卓を作成します：
- 合計金額と人数を入力して、1人あたりの金額を計算
- 余りの金額を特定の人数に振り分ける
- 各人の支払い金額を個別に表示
- スタイリッシュなデザイン

それでは、早速作ってみましょう！

## 完成イメージ
以下のようなシンプルでオシャレな割り勘電卓を作成します。

<p class="codepen" data-height="300" data-default-tab="html,result" data-slug-hash="VwoYpYO" data-pen-title="Untitled" data-user="domlzqyy-the-decoder" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;">
  <span>See the Pen <a href="https://codepen.io/domlzqyy-the-decoder/pen/VwoYpYO">
  Untitled</a> by 野口正人 (<a href="https://codepen.io/domlzqyy-the-decoder">@domlzqyy-the-decoder</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>

## 1. HTMLの構築
まずは基本的なHTMLを作成します。`input`フィールドで合計金額と人数を入力し、ボタンで計算を行います。

```html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>割り勘電卓</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="calculator">
        <h1>割り勘電卓</h1>
        <div class="input-section">
            <label for="totalAmount">合計金額:</label>
            <input type="number" id="totalAmount" placeholder="5000">
            <br>
            <label for="peopleCount">人数:</label>
            <input type="number" id="peopleCount" placeholder="3">
        </div>
        <button class="calculate-btn" onclick="calculateSplit()">計算する</button>
        <div class="result-section">
            <h2 id="result">1人あたりの金額: ¥0</h2>
            <h3 id="remainder">余りの金額: ¥0</h3>
            <h3 id="individualPayments"></h3>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>
```

### ポイント
- `input`でユーザーが合計金額と人数を入力します。
- `button`で「計算する」ボタンを押すとJavaScriptで計算が実行されます。

## 2. JavaScriptで計算ロジックを作成
次に、JavaScriptで割り勘の計算ロジックを作成します。

```javascript
function calculateSplit() {
    const totalAmount = parseFloat(document.getElementById('totalAmount').value);
    const peopleCount = parseInt(document.getElementById('peopleCount').value);

    if (isNaN(totalAmount) || isNaN(peopleCount) || peopleCount <= 0 || totalAmount <= 0) {
        document.getElementById('result').innerText = '正しい金額と人数を入力してください。';
        document.getElementById('remainder').innerText = '';
        document.getElementById('individualPayments').innerText = '';
        return;
    }

    // 1人あたりの金額を計算（切り捨て）
    const baseAmount = Math.floor(totalAmount / peopleCount);
    const remainder = totalAmount % peopleCount;

    // 余りをカバーする人数を決定（上位の人が1円多く支払う）
    let payments = [];
    for (let i = 0; i < peopleCount; i++) {
        if (i < remainder) {
            payments.push(baseAmount + 1); // 余りをカバー
        } else {
            payments.push(baseAmount); // 基本金額
        }
    }

    // 結果を表示
    document.getElementById('result').innerText = `1人あたりの金額: ¥${baseAmount}`;
    document.getElementById('remainder').innerText = `余りの金額: ¥${remainder}`;
    
    // 各人の支払い金額をリスト表示
    let paymentDetails = "各人の支払い金額: ";
    for (let i = 0; i < payments.length; i++) {
        paymentDetails += `\n${i + 1}人目: ¥${payments[i]}`;
    }
    document.getElementById('individualPayments').innerText = paymentDetails;
}
```

### ポイント
- 合計金額と人数を取得し、1人あたりの基本金額を計算します。
- 余りの金額がある場合、最初の数人が1円多く支払います。
- 計算結果として、1人あたりの金額、余り、そして個別の支払い金額を表示します。

## 3. CSSでスタイリッシュに
最後に、CSSを使ってデザインを整えます。電卓らしいデザインを意識して、シンプルかつスタイリッシュに仕上げます。

```css
body {
    font-family: 'Arial', sans-serif;
    background-color: #f4f4f4;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
}

.calculator {
    background-color: #fff;
    padding: 20px;
    border-radius: 15px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    width: 320px;
    text-align: center;
}

h1 {
    font-size: 24px;
    margin-bottom: 20px;
}

.input-section {
    margin-bottom: 20px;
}

label {
    font-size: 16px;
    margin-right: 10px;
}

input {
    width: 80%;
    padding: 10px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 5px;
    margin-bottom: 10px;
}

.calculate-btn {
    background-color: #4CAF50;
    color: white;
    border: none;
    padding: 15px 20px;
    font-size: 16px;
    cursor: pointer;
    width: 100%;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}

.calculate-btn:hover {
    background-color: #45a049;
}

.result-section {
    margin-top: 20px;
}

h2, h3 {
    margin: 10px 0;
    font-size: 18px;
}

h3 {
    white-space: pre-line; /* 複数行テキストの改行を維持 */
}
```

### ポイント
- 電卓を意識したシンプルでクリーンなデザインを採用しています。
- 背景をライトグレーにして、電卓部分を中央に配置し、立体感を出しています。
- ホバー時のボタンの色変化で、インタラクションを追加しています。

## まとめ
今回の割り勘電卓は、基本的なHTML、CSS、JavaScriptの知識があれば簡単に作成できます。スタイリッシュなデザインとシンプルな使い勝手で、ちょっとした計算が楽しくなるはずです。ぜひカスタマイズして、自分だけの割り勘電卓を作ってみてください！