VisualStudioCode_Day_06
html css 정리(반응형
ㅡㅡㅡ
자바스크립트
#깃에 올리기
#
css - reset파일 삭제 하고 필요한 부분만 가져오는 basic.css
# index.css
# link로 추가하기.
>>> index는 메인 화면입니다. index의 style을 분할한다.
ㅡㅡㅡ
★백엔드
자바
데이터베이스
jsp
서블릿
ㅡㅡㅡ
★프론트엔드
프론트 - 모양
ㅡㅡㅡ
# 정렬
ctrl + A
alt + shift + F
◐
indexTea.html
indexTea.css
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>책세상 책마을</title>
<!-- css, font 외부파일-->
<link href="./css/basic.css" rel="stylesheet" />
<link href="./css/indexTea.css" rel="stylesheet" />
<!-- 파비콘 삽입 -->
<link href="./images/favicon01.png" rel="icon" type="image/jpg" />
<!-- 자바스크립트 외부 파일 가져올 때-->
<style>
</style>
</head>
<body>
<!-- 전체를 감싸는 상자 -->
<div class="wrap">
<!-- 윗쪽 부분, logo, 로그인,.. 메뉴....-->
<div class="topContainer">
<!-- 로고, 책마을 책세상 -->
<div class="topLogo">
<nav class="logo">
<img src="./images/logo.jpg">
<h1>책마을 책세상</h1>
</nav>
<!--로그인, 회원가입, 사이트맵-->
<nav class="topNav">
<ul><!-- ul>li*3>a -->
<li><a href="#">로그인</a></li>
<li><a href="#">회원가입</a></li>
<li><a href="#">사이트맵</a></li>
</ul>
</nav>
</div>
<!-- 메인 메뉴 부분, 회사소개, 프로그램,...-->
<nav class="mainNav">
<ul>
<li><a href="#">회사소개</a></li>
<li><a href="#">프로그램</a></li>
<li><a href="#">열린공간</a></li>
<li><a href="#">동아리모임</a></li>
<li><a href="#">이용안내</a></li>
<li><a href="#">자료실</a></li>
<li><a href="#">오시는길</a></li>
</ul>
</nav>
</div>
<!-- 경계선 -->
<hr>
<!-- 검색 부분 -->
<div class="search">
<form action=" " method="get" name="search">
</form>
</div>
<!-- 배너 -->
<div class="banner">
</div>
<!-- 코스 설명 부분, 글쓰기 교실.... -->
<div class="courseInfo">
<a href="#"><img src="./images/indexpage_1.jpg" alt=""></a>
<a href="#"><img src="./images/indexpage_2.jpg" alt=""></a>
<a href="#"><img src="./images/indexpage_3.jpg" alt=""></a>
<a href="#"><img src="./images/indexpage_4.jpg" alt=""></a>
</div>
<!-- 탭이 있는 부분, 공시사항, ... 책소개... -->
<div class="mainInfo">
<!-- 탭 부분 -->
<div class="tabMenu">
<div class="tabTitle">
<button class="tablinks">공지사항</button>
<button class="tablinks">문화행사</button>
<button class="tablinks">책바다</button>
</div>
<!-- 공지사항 -->
<div id="inform1" class="tabPage tablinkInit">
<h3>공지사항1</h3>
<p>즐거운 시간....</p>
</div>
<!-- 문화행사 -->
<div id="inform2" class="tabPage">
<h3>공지사항2</h3>
<p>행복한 시간....</p>
</div>
<!-- 책바다 -->
<div id="inform3" class="tabPage">
<h3>공지사항3</h3>
<p>기쁜 시간....</p>
</div>
</div>
<!-- 이미지 부분, 책소개-->
<div class="bookInfo">
<img src="../images/cola.png">
</div>
</div>
<!-- footer 부분, 정보공개,..... 회사 주소 -->
<footer class="footer">
<nav class="companyInfo">
<ul>
<li><a href="#">정보공개알림<span class="symbols">|</span></a></li>
<li><a href="#">개인정보처리방침<span class="symbols">|</span></a></li>
<li><a href="#">이용서비스현황<span class="symbols">|</span></a></li>
<li><a href="#">이용규정<span class="symbols">|</span></a></li>
<li><a href="#">이메일무단수집거부<span class="symbols">|</span></a></li>
<li><a href="#">전화번호안내<span class="symbols">|</span></a></li>
<li><a href="#">오시는 길</a></li>
</ul>
</nav>
<div class="companyAddress">
<span>(우)06220 서울시 강남구 테헤란로(강남) 대표전화:02-1234-1234 / 팩스번호: 02-1234-4567</span><br>
<span>Copyright©2023 책마을책세상 All Right Reserved</span>
</div>
</footer>
</div>
</body>
</html>
ㅡㅡ
/* 전체를 감싸는 부분 */
.wrap {
width: 100%;
}
/* 헤드라인 부분(윗쪽 부분) */
div.topContainer {
width: 100%;
height: 120px;
position: relative;
margin-bottom: 10px;
/* background-color: antiquewhite; 확인용,지울부분*/
}
/* 1. 로고 부분 */
.topLogo {
width: 100%;
height: 70px;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
}
.logo {
width: 600px;
overflow: hidden;
/* 자식에서 float 쓰기 위해 */
margin-top: 10px;
margin-left: 5px;
/* background-color: aquamarine; */
}
.logo>img {
width: 80px;
height: 60px;
float: left;
margin-right: 10px;
}
.logo>h1 {
height: 60px;
line-height: 60px;
float: left;
font-size: 2.3rem;
color: blueviolet;
}
/* 2. 네비게이션 부분, 로그인, 회원가입,.. */
.topNav {
width: 350px;
text-align: right;
}
.topNav li {
display: inline-block;
}
.topNav li>a {
display: inline-block;
padding: 10px 7px;
/* 위/아래 왼/오 */
}
.topNav li>a:hover {
color: white;
background-color: blueviolet;
border-radius: 5px;
}
/* 메인 메뉴 부분, 회사소개, 프로그램,... */
.mainNav {
position: absolute;
bottom: 0px;
left: 150px;
/* background-color: aqua; */
}
.mainNav>ul {
display: flex;
flex-direction: row;
justify-content: space-around;
}
.mainNav li>a {
display: inline-block;
padding: 5px 12px;
font-size: 1.1rem;
}
.mainNav li>a:hover {
color: blueviolet;
}
/* 경계선 */
hr {
border: 1px solid blueviolet;
margin-bottom: 20px;
}
/* 검색 부분 */
.search{
width: 100%;
height: 70px;
line-height: 70px;
padding: 3px 0px;
display: flex;
flex-direction: row;
justify-content: space-around;
border-top: 1px solid gainsboro;
border-bottom:1px solid gainsboro;
margin-bottom: 20px;
}
/*1. 자료검색, 강좌검색 */
.search>form{
overflow: hidden;
}
.search>form>div{
float: left;
width: 210px;
/* background-color: aqua; 지울 부분, 확인용 */
}
.search>form>div span{
display: inline-block;
margin-left:5px;
margin-right: 12px;
}
/* .search>form>input */
/* .search>form>input[type="text"] */
.search>form>input[name="textSearch"]{
height: 35px;
width: 320px;
/* text-align: center; */
padding-left: 10px;
}
/* 배너 이미지 부분 */
.banner{
width: 100%;
margin-bottom: 20px;
}
.banner>img{
width: 100%;
}
/* 코스 설명 부분, 글쓰기 교실 ... */
.courseInfo{
display: flex;
flex-direction: row;
flex-wrap: wrap; /* 공간이 부족하면 요소 아래로 배치 가능 */
margin-bottom: 20px;
}
/* .courseInfo>a{
display: inline-block;
padding: 2px 3px;
margin: 3px 2px;
} */
.courseInfo img{
box-sizing: border-box;
width: 240px;
}
/* 탭이 있는 부분, 공지사항,.... */
.mainInfo{
box-sizing: border-box;/* border,padding 포함 width와 height 설정 */
width: 100%;
height: 420px;
display: flex;
flex-direction: row;/* 플렉스 아이템(자식요소) 배치 방향 */
flex-wrap: wrap;
justify-content: space-between; /*양쪽 끝에 맞춰 배치 */
margin-bottom: 20px;
}
/* 탭 부분 */
.tabMenu{
width: 600px;
height: 420px;
margin-right: 20px;
}
/* tab 제목 부분 */
.tabTitle{
height: 49px;
overflow: hidden;
border: 1px solid #ccc;
background-color: #f1f1f1;
}
/* tab 제목의 버튼 부분 */
.tabTitle button{
width: 150px;
background-color: inherit; /* 부모것 상속 받기 */
float: left;
border: none;
outline: none;
cursor: pointer; /*마우스 포인터 모얄 */
padding: 14px 16px;
transition: 0.2s;/* 하나의 스타일이 완전히 다른
스타일로 바뀌는 것
시간 : 스타일이 바뀌는 시간
초단위
*/
font-size: 17px;
}
.tabTitle button:hover{ /* 마우스 포인터가 올라왔을 때 */
background-color: #ddd;
}
.tabTitle button.active{/* 활성화 되었을 때 */
background-color:#ccc;
}
.tabPage{
box-sizing: border-box;
height: 369px;
display: none; /* 숨기기, 자리까지 없어짐 */
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;/* 윗쪽 테두리 없앰 */
}
.tablinkInit{
display: block;
}
/* 책 이미지 부분 책소개 */
.bookInfo>img{
box-sizing: border-box;
width: 340px;
height: 369px;
/* vertical-align: baseline; */
margin-top: 50px;
}
/* footer 부분 */
.footer{
width: 100%;
height: 200px;
}
.companyInfo{
box-sizing: border-box;
width: 100%;
border-top: 1px solid gray;
border-bottom: 1px solid gray;
margin-bottom: 10px;
}
.companyInfo>ul{
display: flex;
flex-wrap: nowrap;
justify-content: space-around;
flex-direction: row;
height: 40px;
line-height: 40px;
padding: 0px 20px;
}
.companyInfo li>a:hover{
color: red;
}
.symbols{
margin-left: 18px;
}
.companyAddress>span{
line-height: 28px;
letter-spacing: 1px;
margin-left: 20px;
}
#git hub
아이디.github.io
반드시체크
파일추가하고, commit 하기
나올려면, 10분정도 걸립니다.
ㅡㅡ
JSP서블릿
●
html
javascript3.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//한줄 주석
/* 여러줄 주석*/
/*
ECMA(유럽컴퓨터제조협회)에서 자바스크립트를 ECMAScript라는 이름으로 표준화
ECMAScript( 자바스크립트 ) : 브라우저 안에서 실행되는 프로그램 언어(객체지향 프로그래밍 언어)
자바하고 거희 똑같습니다.
ECMAScript 6
실행시키는것 3가지 방법
간단한 메세지 출력
1)alert(실행할 문장 ); //실행문장의 끝인 ;(세미콜론)은 생략가능
2)console.log(실행 문장); // 콘솔에서 확인
3)document.write(실행문장); // 브라우저 본문에 표시
*/
alert('즐거운 시간!!'); //내장함수 "", '' - 문자열(자바는 구분하는데, 자바스크립트 구분안합니다.)
console.log('즐거운 시간!!!'); //화면에는 안나오지만, 로그화면엔 나옵니다.(f12눌러서 console창에서 확인가능)
alert('test'); //html,css는 에러잡기가 힘들지만, javasript는 콘솔로 확인가능합니다.
document.write('<h1>javascript is fun</h1>');
// 숫자 - number, 문자열 - string, 불린 - boolean : true, false
// false : 0, true :1 (이외의 숫자)
// 비교연산자 : > , >=, <, <=, == < !=
// ==(자바는 스택에 있는 참조주소값만 비교)
// ==(자바스크립트는 값이 같은지만 비교)
// ===(값과 자료형까지 같은지 비교)
// !=(왼쪽과 오른쪽이 같은 여부) 값만 비교
//!== 값과 타입이 같지 않다.
//%%, ||, ! 같다.
// 변수 와 상수
// 1. 변수 선언 (자바변수 선언3가지)
/*
int a = 3;
a = 7;
double a = 3.7; (x) 이미 변수 선언해서 자바에서는 사용불가
int a = 10; (x) 이미 변수 선언해서 자바에서는 사용불가
JS는
1.var : 변수를 중복해서 선언가능, 변수가 속하는 범위가 에매함
ex)
var a = 3; (js 가능하다)
a=3; (js 가능하다)
var a=7; (js 가능하다)
>>> var같은 경우 선언이 자유롭고 범위도 넓다.
ex) var result = 3;
var result = 7; 가능,result에는 마지막에 선언한 7이 담김
2.let : 중복해서 선언할 수 없음, 변수 범위가 명확({})
2.let(var단점보완) - 블록범위내 사용, 지역변수같은 개념(선언된 부분에서 가능)
선언할떄, 타입이 설정되는 것이 아니라, 값을 넣을떄 타입이 설정된다.
ex)let test=3;
let test=7; //불가능, 중복 선언 안됨
3.const(상수) : 값이 한번 정해지면 절대 변하지 않음, 상수
ex)const 상수이름 = 값
const PI = 3.141592
*** 주로 let이나 const로 사용하세요. var는 웬만하면 사용하지않길 권장 ***
*/
//입력받는것 prompt(메세지...); 키보드로부터 입력 받기, 문자열로 입력 받음
//숫자를 입력 받아서 홀/짝
let inNum = Number(prompt('정수를 입력하세요')); //자바스크립트(똑같은개념)
//int inNum = Integer.parseInte(scan.nextLine()); - 자바 (똑같은개념)
let result;
//===3개사용시 타입까지 확인
if(inNum % 2 === 0){
result = '짝수';
}else{
result = '홀수';
}
alert(result);
console.log(result);
document.write(result);
</script>
</head>
<body>
</body>
</html>
자바스크립트 - 클라이언트 쪽에서 움직여준다.
(스크립트 종료가 많다.)
에크마스크립트 -
// 한 줄 주석
#콘솔창 로그확인
◐
javascript4.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//#
//script를 나중에 실행하는 방법
// function : 자기함수안에서 함수를 호출한다 - 콜백함수 , 이벤트리스너
document.addEventListener('DOMContentLoaded', function(){
let num = Number(prompt("숫자 입력"));
let sum =0;
for(let i=1 ; i <=num; i++){
sum += i;
}
//document.write(sum);
let div1 = document.querySelector(' .innerResult');
//querySelector
//클래스 ().) id는 (#), 태그는 ;그냥'
div1.innerHTML = '<h1>' + sum + '</h1>';
});
/* 자동완성 시키는게 좋다.*/
</script>
</head>
<body>
<div class="innerResult"></div>
<hr>
<div class="textResult"></div>
<!-- head에 있던 것을 밑에다가 선언해주어서 script가 실행된다.-->
<!--#1. -->
<!-- 그래서 document를 다읽고 script를 실행시켜라-->
<!--#2. -->
<!-- 그래서 document를 다읽고 script를 실행시켜라-->
</body>
</html>
#w3chools how to적용 -Tab
◐
javascript5.html
그대로 가져와서 적용
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//#
//script를 나중에 실행하는 방법
// function : 자기함수안에서 함수를 호출한다 - 콜백함수 , 이벤트리스너
document.addEventListener('DOMContentLoaded', function(){
let num = Number(prompt("숫자 입력"));
let sum =0;
for(let i=1 ; i <=num; i++){
sum += i;
}
//document.write(sum);
let div1 = document.querySelector(' .innerResult');
//querySelector
//클래스 ().) id는 (#), 태그는 ;그냥'
div1.innerHTML = '<h1>' + sum + '</h1>';
});
/* 자동완성 시키는게 좋다.*/
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
</script>
</head>
<body>
<div class="innerResult"></div>
<hr>
<div class="textResult"></div>
<!-- head에 있던 것을 밑에다가 선언해주어서 script가 실행된다.-->
<!--#1. -->
<!-- 그래서 document를 다읽고 script를 실행시켜라-->
<!--#2. -->
<!-- 그래서 document를 다읽고 script를 실행시켜라-->
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {font-family: Arial;}
/* Style the tab */
.tab {
overflow: hidden;
border: 1px solid #ccc;
background-color: #f1f1f1;
}
/* Style the buttons inside the tab */
.tab button {
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
font-size: 17px;
}
/* Change background color of buttons on hover */
.tab button:hover {
background-color: #ddd;
}
/* Create an active/current tablink class */
.tab button.active {
background-color: #ccc;
}
/* Style the tab content */
.tabcontent {
display: none;
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;
}
</style>
</head>
<body>
<h2>Tabs</h2>
<p>Click on the buttons inside the tabbed menu:</p>
<div class="tab">
<button class="tablinks" onclick="openCity(event, 'London')">London</button>
<button class="tablinks" onclick="openCity(event, 'Paris')">Paris</button>
<button class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</button>
</div>
<div id="London" class="tabcontent">
<h3>London</h3>
<p>London is the capital city of England.</p>
</div>
<div id="Paris" class="tabcontent">
<h3>Paris</h3>
<p>Paris is the capital of France.</p>
</div>
<div id="Tokyo" class="tabcontent">
<h3>Tokyo</h3>
<p>Tokyo is the capital of Japan.</p>
</div>
</body>
</html>
</body>
</html>
◐
javascript1.html
응용
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
/* 탭 부분 */
.tabMenu{
width: 600px;
height: 420px;
margin-right: 20px;
}
/* tab 제목 부분 */
.tabTitle{
height: 49px;
overflow: hidden;
border: 1px solid #ccc;
background-color: #f1f1f1;
}
/* tab 제목의 버튼 부분 */
.tabTitle button{
width: 150px;
background-color: inherit; /* 부모것 상속 받기 */
float: left;
border: none;
outline: none;
cursor: pointer; /*마우스 포인터 모얄 */
padding: 14px 16px;
transition: 0.2s;/* 하나의 스타일이 완전히 다른
스타일로 바뀌는 것
시간 : 스타일이 바뀌는 시간
초단위
*/
font-size: 17px;
}
.tabTitle button:hover{ /* 마우스 포인터가 올라왔을 때 */
background-color: #ddd;
}
.tabTitle button.active{/* 활성화 되었을 때 */
background-color:#ccc;
}
.tabPage{
box-sizing: border-box;
height: 369px;
display: none; /* 숨기기, 자리까지 없어짐 */
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;/* 윗쪽 테두리 없앰 */
}
.tablinkInit{
display: block;
}
</style>
<script>
function openTab(evt, infom){
let tabPage, tablinks ;
// tabPage = document.querySelector('.tabPage');
tabPage = document.getElementsByClassName('tabPage');
tablinks = document.getElementsByClassName('tablinks');
for(let i=0; i<tabPage.length; i++){
tabPage[i].style.display = 'none';
}
for(let i=0; i<tablinks.length; i++){
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(infom).style.display = 'block';
evt.currenTarget.className +=" avtive";
}
/*쿼리샐럭터로 한번에 처리할수있다.
그러나 따로따로 getElementsByClassName
쓸 수 있다.
*/
</script>
<body>
<!-- 탭 부분 -->
<div class="tabMenu">
<div class="tabTitle">
<button class="tablinks" onclick="openTab(event, 'inform1')">공지사항</button>
<button class="tablinks" onclick="openTab(event, 'inform2')">문화행사</button>
<button class="tablinks" onclick="openTab(event, 'inform3')">책바다</button>
</div>
<!-- 공지사항 -->
<div id="inform1" class="tabPage tablinkInit">
<h3>공지사항1</h3>
<p>즐거운 시간....</p>
</div>
<!-- 문화행사 -->
<div id="inform2" class="tabPage">
<h3>공지사항2</h3>
<p>행복한 시간....</p>
</div>
<!-- 책바다 -->
<div id="inform3" class="tabPage">
<h3>공지사항3</h3>
<p>기쁜 시간....</p>
</div>
</div>
</body>
</html>
◐
indexTea2.html
./js/tab.js
#js파일 분리시키는 법
js폴더,
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>책세상 책마을</title>
<!-- css, font 외부파일-->
<link href="./css/basic.css" rel="stylesheet" />
<link href="./css/index.css" rel="stylesheet" />
<!-- 파비콘 삽입 -->
<link href="./images/favicon01.png" rel="icon" type="image/jpg" />
<!-- 자바스크립트 외부 파일 가져올 때-->
<script src="./js/tab.js"> /* js폴더에 넣어준다.*/
</script>
<style>
</style>
<script>
</script>
</head>
<body>
<!-- 전체를 감싸는 상자 -->
<div class="wrap">
<!-- 윗쪽 부분, logo, 로그인,.. 메뉴....-->
<div class="topContainer">
<!-- 로고, 책마을 책세상 -->
<div class="topLogo">
<nav class="logo">
<img src="./images/logo.jpg">
<h1>책마을 책세상</h1>
</nav>
<!--로그인, 회원가입, 사이트맵-->
<nav class="topNav">
<ul><!-- ul>li*3>a -->
<li><a href="#">로그인</a></li>
<li><a href="#">회원가입</a></li>
<li><a href="#">사이트맵</a></li>
</ul>
</nav>
</div>
<!-- 메인 메뉴 부분, 회사소개, 프로그램,...-->
<nav class="mainNav">
<ul>
<li><a href="#">회사소개</a></li>
<li><a href="#">프로그램</a></li>
<li><a href="#">열린공간</a></li>
<li><a href="#">동아리모임</a></li>
<li><a href="#">이용안내</a></li>
<li><a href="#">자료실</a></li>
<li><a href="#">오시는길</a></li>
</ul>
</nav>
</div>
<!-- 경계선 -->
<hr>
<!-- 검색 부분 -->
<div class="search">
<h2>책마을 책세상 통합검색</h2>
<form action=" " method="get" name="search">
<div>
<input type="radio" name="dataSearch" value="data1"><span>자료검색</span>
<input type="radio" name="dataSearch" value="data1"><span>강좌검색</span>
</div>
<input type="text" name="textSearch" placeholder="검색할 내용을 입력해주세요.">
</form>
</div>
<!-- 배너 -->
<div class="banner">
<img src="./images/myth.jpg">
</div>
<!-- 코스 설명 부분, 글쓰기 교실.... -->
<div class="courseInfo">
<a href="#"><img src="./images/indexpage_1.jpg" alt=""></a>
<a href="#"><img src="./images/indexpage_2.jpg" alt=""></a>
<a href="#"><img src="./images/indexpage_3.jpg" alt=""></a>
<a href="#"><img src="./images/indexpage_4.jpg" alt=""></a>
</div>
<!-- 탭이 있는 부분, 공지사항, ... 책소개... -->
<div class="mainInfo">
<!-- 탭 부분 -->
<div class="tabMenu">
<div class="tabTitle">
<button class="tablinks" onclick="openTab(event, 'inform1')">공지사항</button>
<button class="tablinks" onclick="openTab(event, 'inform2')">문화행사</button>
<button class="tablinks" onclick="openTab(event, 'inform3')">책바다</button>
</div>
<!-- 공지사항 -->
<div id="inform1" class="tabPage tablinkInit">
<h3>공지사항1</h3>
<p>즐거운 시간....</p>
</div>
<!-- 문화행사 -->
<div id="inform2" class="tabPage">
<h3>공지사항2</h3>
<p>행복한 시간....</p>
</div>
<!-- 책바다 -->
<div id="inform3" class="tabPage">
<h3>공지사항3</h3>
<p>기쁜 시간....</p>
</div>
</div>
<!-- 책 이미지 부분, 책소개-->
<div class="bookInfo">
<img src="../images/cola.png">
</div>
</div>
<!-- footer 부분, 정보공개,..... 회사 주소 -->
<footer class="footer">
<nav class="companyInfo">
<ul>
<li><a href="#">정보공개알림<span class="symbols">|</span></a></li>
<li><a href="#">개인정보처리방침<span class="symbols">|</span></a></li>
<li><a href="#">이용서비스현황<span class="symbols">|</span></a></li>
<li><a href="#">이용규정<span class="symbols">|</span></a></li>
<li><a href="#">이메일무단수집거부<span class="symbols">|</span></a></li>
<li><a href="#">전화번호안내<span class="symbols">|</span></a></li>
<li><a href="#">오시는 길</a></li>
</ul>
</nav>
<div class="companyAddress">
<span>(우)06220 서울시 강남구 테헤란로(강남) 대표전화:02-1234-1234 / 팩스번호: 02-1234-4567</span><br>
<span>Copyright©2023 책마을책세상 All Right Reserved</span>
</div>
</footer>
</div>
</body>
</html>
ㅡㅡ
function openTab(evt, infom){
let tabPage, tablinks ;
// tabPage = document.querySelector('.tabPage');
tabPage = document.getElementsByClassName('tabPage');
tablinks = document.getElementsByClassName('tablinks');
for(let i=0; i<tabPage.length; i++){
tabPage[i].style.display = 'none';
}
for(let i=0; i<tablinks.length; i++){
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(infom).style.display = 'block';
evt.currenTarget.className +=" avtive";
}