Я пытаюсь создать простой калькулятор, использующий только HTML и CSS для макета и, в конечном счете, чистый JavaScript для функций.
Я хочу, чтобы сайт / страница были адаптивными, вот почему яиспользование CSS Grid и отсутствие абсолютных единиц;% и fr вместо px ...
Сам калькулятор должен представлять собой сетку из центрированных квадратов с текстом в кнопках, центрированных как по горизонтали, так и по вертикали, и все кнопки должны вписываться в «калькулятор».
<html>
<body>
<div class="calc">
<button id="bp">+ / -</button>
<button id="bc">C</button>
<button id="bb">X</button>
<button id="b7">7</button>
<button id="b8">8</button>
<button id="b9">9</button>
<button id="b4">4</button>
<button id="b5">5</button>
<button id="b6">6</button>
<button id="b1">1</button>
<button id="b2">2</button>
<button id="b3">3</button>
<button id="bd">.</button>
<button id="b0">0</button>
<button id="be">=</button>
</div>
</body>
</html>
div.calc {
max-width: 80%;
margin: 1% auto;
border: 2px solid #111111;
border-radius: 5px;
padding: 1%;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(5, 1fr);
grid-gap: 2%;
justify-items: center;
align-items: center;
}
div.calc > button {
background-color: lightgrey;
color: darkblue;
border: 2px solid #111111;
border-radius: 5px;
font-size: 2em;
cursor: pointer;
vertical-align: center;
text-align: center;
width: 100%;
height: 0;
padding: 50%;
}
button#bp,
button#bd {
background-color: blue;
color: yellow;
}
button#bc {
background-color: red;
color: white;
}
button#bb {
background-color: yellow;
color: blue;
}
button#be {
background-color: green;
color: yellow;
}
Codepen
Кажется, что div калькулятора не достаточно высок, чтобы удерживать кнопки и нижний ряд сетки, поэтому перекрывает и истекает из-за пределов калькулятора.
Я пытался поиграть с высотой калькулятора (высота: 100% ...), но последний ряд всегда заканчивается ...
Кажется, я не могу получитьтекст внутри кнопки для правильного центрирования;особенно горизонтально.Кнопка «+ / -» является хорошим примером.Я установил text-align как центр, а и justify-items, и align-items являются center.Я знаю, что последние два относятся к элементам кнопок внутри сетки.Но я не вижу, где еще правильно расположить текст по центру.
Я надеюсь, что это что-то совершенно простое, и я просто смотрю на один и тот же код, снова и снова, о, ослишком много часов.
Если вы не хотите исправлять мой код и предпочитаете указывать мне какие-либо примеры или объяснения в Интернете, которые помогут, я с удовольствием выполню домашнее задание.
Спасибо!