Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dificuldade de centralizar, realizei a construção deste código porem não apresenta erro e a calculadora não centraliza junto com a borda e não consigo realizar nenhuma operação nela.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>calculadora</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .fundo{
            background-image: linear-gradient(45deg,black, crimson);
            height: 100vh;
            color: #fff;
            font-family: Arial, Helvetica, sans-serif;
            text-align: center;
        }
        .calculadora{
            position: absolute;
            background-color: rgba(0, 0, 0, 0.8);
            top: 50%;
            left: 50%;
            transform: translate(-50%,-50%);
            border-radius: 15px;
            padding: 15px;
        }
        .botao{
            width: 50px;
            height: 50px;
            font-size: 25px;
            cursor: pointer;
            margin: 3px;
            background-color: rgb(31, 31, 31);
            border: none;
            color: white;
        }
        .botao:hover{
            background-color: black;
        }
        #resultado{
            background-color: white;
            width: 207px;
            height: 30px;
            margin: 5px;
            font-size: 25px;
            color: black;
            text-align: right;
            padding: 5px;
        }
    </style>
</head>
<body>
    <div class="fundo">
        <h1>Calculadora Básica</h1>
        <div class="calculadora"></div>
        <h1>calculadora</h1>
        <p id=" resultado"></p>
        <table>
            <tr>
                <td><button class="botao" onclick="clean()">C</button></td>
                <td><button class="botao" onclick="back('<')"><</button></td>
                <td><button class="botao" onclick="insert('/')">/</button></td>
                <td><button class="botao" onclick="insert('*')">X</button></td>
            </tr>
            <tr>
                <td><button class="botao" onclick="insert('7')">7</button></td>
                <td><button class="botao" onclick="insert('8')">8</button></td>
                <td><button class="botao" onclick="insert('9')">9</button></td>
                <td><button class="botao" onclick="insert('-')">-</button></td>
            </tr>
            <tr>
                <td><button class="botao" onclick="insert('4')">4</button></td>
                <td><button class="botao" onclick="insert('5')">5</button></td>
                <td><button class="botao" onclick="insert('6')">6</button></td>
                <td><button class="botao" onclick="insert('+')">+</button></td>
            </tr>
            <tr>
                <td><button class="botao" onclick="insert('1')">1</button></td>
                <td><button class="botao" onclick="insert('2')">2</button></td>
                <td><button class="botao" onclick="insert('3')">3</button></td>
                <td rowspan="2"><button class="botao" onclick="calcular('=')" style="height: 106px;">=</button></td>
            </tr>
            <tr>
                <td colspan="2"><button class="botao" onclick="insert('0')" style="width: 106px;">0</button></td>
                <td><button class="botao" onclick="insert('.')">.</button></td>
            </tr>
        </table>
    </div>
    <script>
        function insert(num) {
            var numero = getElementById('resultado').innerHTML = num;
            document.getElementById('resultado').innerHTML = numero + num;
        }
        function clean()
        {
            document.getElementById('resultado').innerHTML = "";
        }
        function back()
        {
            var resultado = document.getElementById('resultado').innerHTML;
            Document.getElementById('resultado').innerHTML = resultado.substring(0, resultado.length -1);
        }
        function calcular ()
        {
            var resultado = document.getElementById('resultado').innerHTML;
            if(resultado)
                {
                    document.getElementById('resultado').innerHTML = eval(resultado);
                }
                else
                {
                    document.getElementById('resultado').innerHTML = "Nada..."
                }
        }
    </script>
</body>
</html>
1 resposta
solução!

Oii Victória, tudo bem?

Os problemas no seu código podem ser corrigidos fazendo algumas alterações. Vamos lá?

  • O elemento <p> que contém o resultado tinha um espaço no id ("resultado"). Corrija para que coincida com o id no JavaScript.

  • Na função back(), a chamada de Document está com a letra 'D' maiúscula. Corrija para document.

  • Na função insert(), você está tentando concatenar uma variável numero que é indefinida. Remova essa linha, pois o valor já está sendo definido na linha seguinte.

  • Adicione uma verificação para evitar a divisão por zero. No caso da função calcular(), adicione um if para garantir que a expressão não seja avaliada se o resultado estiver vazio.

O código completo com os ajustes:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Calculadora</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    .fundo {
      background-image: linear-gradient(45deg, black, crimson);
      height: 100vh;
      color: #fff;
      font-family: Arial, Helvetica, sans-serif;
      text-align: center;
    }

    .calculadora {
      position: absolute;
      background-color: rgba(0, 0, 0, 0.8);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      border-radius: 15px;
      padding: 15px;
    }

    .botao {
      width: 50px;
      height: 50px;
      font-size: 25px;
      cursor: pointer;
      margin: 3px;
      background-color: rgb(31, 31, 31);
      border: none;
      color: white;
    }

    .botao:hover {
      background-color: black;
    }

    #resultado {
      background-color: white;
      width: 207px;
      height: 30px;
      margin: 5px;
      font-size: 25px;
      color: black;
      text-align: right;
      padding: 5px;
    }
  </style>
</head>

<body>
  <div class="fundo">
    <h1>Calculadora Básica</h1>
    <div class="calculadora">
      <p id="resultado"></p>
      <table>
        <tr>
          <td><button class="botao" onclick="clean()">C</button></td>
          <td><button class="botao" onclick="back('<')">
              < </button>
          </td>
          <td><button class="botao" onclick="insert('/')">/</button></td>
          <td><button class="botao" onclick="insert('*')">X</button></td>
        </tr>
        <tr>
          <td><button class="botao" onclick="insert('7')">7</button></td>
          <td><button class="botao" onclick="insert('8')">8</button></td>
          <td><button class="botao" onclick="insert('9')">9</button></td>
          <td><button class="botao" onclick="insert('-')">-</button></td>
        </tr>
        <tr>
          <td><button class="botao" onclick="insert('4')">4</button></td>
          <td><button class="botao" onclick="insert('5')">5</button></td>
          <td><button class="botao" onclick="insert('6')">6</button></td>
          <td><button class="botao" onclick="insert('+')">+</button></td>
        </tr>
        <tr>
          <td><button class="botao" onclick="insert('1')">1</button></td>
          <td><button class="botao" onclick="insert('2')">2</button></td>
          <td><button class="botao" onclick="insert('3')">3</button></td>
          <td rowspan="2"><button class="botao" onclick="calcular('=')" style="height: 106px;">=</button></td>
        </tr>
        <tr>
          <td colspan="2"><button class="botao" onclick="insert('0')" style="width: 106px;">0</button></td>
          <td><button class="botao" onclick="insert('.')">.</button></td>
        </tr>
      </table>
    </div>
  </div>
  <script>
    function insert(num) {
      var resultado = document.getElementById('resultado');
      resultado.innerHTML += num;
    }

    function clean() {
      document.getElementById('resultado').innerHTML = "";
    }

    function back() {
      var resultado = document.getElementById('resultado').innerHTML;
      document.getElementById('resultado').innerHTML = resultado.substring(0, resultado.length - 1);
    }

    function calcular() {
      var resultado = document.getElementById('resultado').innerHTML;
      if (resultado) {
        // Adicionando verificação para evitar a divisão por zero
        if (resultado.includes('/0')) {
          document.getElementById('resultado').innerHTML = "Erro: Divisão por zero!";
        } else {
          document.getElementById('resultado').innerHTML = eval(resultado);
        }
      } else {
        document.getElementById('resultado').innerHTML = "Nada...";
      }
    }
  </script>
</body>

</html>

E você também pode conferir o projeto funcionando aqui no CodePen.

Um abraço e bons estudos.