【margin을 마이너스치로 지정】html로 「버튼 안에 버튼」을 만드는 방법! (피아노의 백열쇠와 검은 열쇠를 만들어 보았다)

(앞두고) 버튼 태그만으로 피아노를 만들고 싶다! ⇒흰색 열쇠와 검은색 열쇠의 중첩을 어떻게 하자?



HTML에는 "button"이라는 태그가 있으며, 이라는 간단한 설명으로 버튼을 만들 수 있습니다. 이것을 사용해, 브라우저로 피아노를 만들어 보기로 했습니다!

우선, 「드」의 건반을 만들어 보았습니다.

piano.html
<html>
<head>
<link rel="stylesheet" href="piano.css">
</head>
<body>

<div align="center">

<button id="do"></button>

</div>

</body>
</html>

로 둘러싸인 요소는 페이지 중앙에 표시됩니다.
건반이 페이지의 중간에 있던 쪽이 보기 좋기 때문에 사용해 보았습니다.

그런 다음 css에서 버튼의 너비와 높이를 지정합니다.
피아노의 건반이라고 하면, 새하얀 세로장의 직사각형이군요!

piano.css
#do
{width : 80px;
  height : 400px;
  font-size : 20px;
  background-color : #ffffff;
  border-color : #000000;}

실제로 표시해 보면


좋은 느낌이네요.
이어서 "드#"를 만듭니다. 마찬가지로 버튼 태그로

piano.html
<html>
<head>
<link rel="stylesheet" href="piano.css">
</head>
<body>

<div align="center">

<button id="do"></button>
<button id="dos">ド#</button>

</div>

</body>
</html>

css로 검정색 키의 색상과 모양을 지정합니다.
흑열쇠라고 하면, 흰 열쇠보다 조금 작고 검은색이군요.

piano.css
#dos
{width : 64px;
  height : 320px;
  font-size : 20px;
  background-color : #000000;
  color : #fffafa;}

이런 식으로 지정하고 표시해 보면 ...?



생각했던 것과 다르다. 2점 정도 문제가 있네요.
①상단 모서리가 되어 있지 않다
②블랙키와 화이트키가 겹치지 않음

①을 해결하기 위해서는 css에 다음과 같은 붙이기를 해 봅시다!

piano.css
#do, #dos
  {display: inline-block;
    vertical-align : top;}

메인에서하고 싶은 것은 "vertical-align : top;", 즉
「『드』의 건반과『드#』의 건반을 모두 상단 정렬로 표시해라!」
라는 지시입니다만, 이 vertical-align는 본래 텍스트 요소용의 쓰는 것 같고, 단독으로는 버튼등의 박스 요소에 대해서 효과가 주지 않습니다.
거기서 「display: inline-block;」를 더해 준다고 하는 것이군요.

이 부분은 나 자신도 아직 이해가 얕기 때문에, 제대로 이해할 수 있으면 또 다른 기사에 쓰려고 생각합니다.

어쨌든 vertical-align을 설정하여 표시


무사, 상단 가지런히 되었습니다!
다음으로, 「검은 키와 흰색 키가 겹치지 않는 문제」를 해결해 갑니다.

(본제) margin 태그로 버튼과 버튼을 겹치자!



html · css에서는 "margin"이라는 값을 지정할 수 있습니다.
margin은 "요소와 요소 사이의 공백"의 길이입니다.


margin은 상하좌우를 각각 지정할 수 있습니다.

상단: margin-top: ○○px;
아래쪽: margin-bottom: ○○px;
오른쪽: margin-right: ○○px;
왼쪽: margin-left: ○○px;

그리고 margin에 음수 값을 설정할 수도 있습니다! !
margin이 마이너스이면, 요소끼리는 겹치게 됩니다.

그래서 검은 열쇠를 흰 열쇠에 겹치려면 겹치는 쪽의 '도#'에 css로 다음과 같은 붙임을 해 줍니다.

piano.css
#dos
  {margin-left : -20px;}

표시해 보면,


화이트 키와 블랙 키가 겹쳐 피아노 같은 외형이되었습니다!

이상입니다.
"margin은 부의 값도 설정할 수 있다"는 것을 모르고 나는 빠져 버렸습니다.
html에 종사하는 사람의 도움이되면 기쁩니다.

좋은 웹페이지 즐겨찾기