html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>MSI학생정보시스템</title>
<link rel="stylesheet" href="mainstyle.css">
</head>
<body>
<header id="header">
<div id="headerFlexWrapper">
<h1><a href="main_page.html" target="_self">MSI학생정보시스템</a></h1>
<nav id="headerMenu">
<div>HOME</div>
<div>홈페이지</div>
<div>Office365</div>
<div>증명서</div>
<div>도서관</div>
<div>IDISK</div>
<div>E-class</div>
<div>LMS</div>
<div>U-check</div>
<div>MyICAP</div>
</nav>
</div>
</header>
<section id="layout">
<aside id="sideBar">
<h2>학부시스템</h2>
<ul>
<li>학적/장학</li>
<li>교과/수강</li>
<li>강의평가</li>
<li>성적/졸업</li>
<li>등록</li>
<li>학생활동</li>
<li>생활관</li>
<li>전산신청</li>
<li>보건소</li>
<li><a href="fake_test_page.html" target="_self">가짜 테스트 링크</a></li>
</ul>
</aside>
<section class="page-content" id="mainPageContent">
<article>
<h4>개인정보</h4>
<p>
11111111111
</p>
</article>
<article>
<h4>학생공지사항</h4>
<p>
22222222222
</p>
</article>
<article>
<h4>시간표</h4>
<p>
3333333333333333
</p>
</article>
<article>
<h4>학사일정</h4>
<p>
44444444444444444444444
</p>
</article>
</section>
</section>
</body>
</html>
<!--
+ 헤더를 포지션 스티키로 바꾸고
#grid를 딱 사이즈에 맞춰보자... 근데 일단 vh로 하긴했는데 완벽하게 맞질않음 .. ㅠㅠ
아니다 잘못생각한듯 캡쳐한거 보니까 사이즈는 최대사이즈로 정해두고 스크롤 위치를 제한한듯. 자바스크립트 배우고 다시해보기.
++++++ 아니 여기까진 뭐 그렇다 쳐 근데 매 페이지마다 header 요소와 sidebar 요소를 다시 써야하는건 너무 코드 낭비인것 같아 찾아보니 html include라는 스킬이라고 한다. 흠... 자바스크립트나 AJAX 사용해야한다니 일단은 .. 보류 !
+ 폰트는 설정 못했음 폰트도 바꿔보기
+ 헤더 내의 메뉴들을 flex 컨테이너로 만들어볼까 ?
아마 캡쳐화면처럼 잘 될듯 함
>> 실제로 개발자 툴로 확인해보니 flex 컨테이너가 맞았음 오예
+ css는 조건문이 없나 ?
+ 헤더를 flexbox 로 변경하여 여러 버튼 추가하기
!!!!! 표기법에 대한 정리 따로 블로그에 하기 !! .. 아이디 : 카멜, 클래스 : 케밥
+ 지금은 그냥 태그랑 아이디 막 쓰는데 나중에 시멘틱 고려해서 다시 수정하기 (수정중)
!! 그리드의 auto 는 자식 요소의 높이만큼 이라는 뜻
!! 그리드 속성들연습해봤음
!! 내가 지정해놓은 그리드 사이즈를 벗어난 크기가 더 추가가되면 알아서 auto 크기로 붙음
!! 헤더의 플렉스박스를 사실 position absolute로 만들고 헤더를 position relative로 설정하여 플렉스의 위치를 정해주는 것이 맞아보이지만 그냥 대충 패딩값으로 맞춰주었다.
!! 레이아웃 모바일우선, 데스크톱 우선
!! button 태그와 a 태그의 차이점
!! scss sass css 차이점
확실히 내가 css를 조금이나마 작성하면서 느낀 불편한 점들을 많이 보완해주고있다. 왜 언어가 계속 발전하는지 이해되는 기분... 근데 이 발전을 느끼려면 그 전 언어에서 불편함을 느껴야 한다는 점도 다시금 깨달았다.
!! wrapper와 container의 차이점에 대한 글
!! 여러개의 css 파일을 적용할 때 가장 마지막으로 불러온 파일을 적용한다.
------------------------------------------------------------------------------
++ 어차피 레이아웃을 만들어 놨기에 메뉴를 눌렀을 때 뜨는 창을 전부 만들 필요는 없을 것 같다. 그때마다 새로운 아이디 값을 만들고 레이아웃에 넣어주기만 하면 되므로.
이번 프로젝트는 버튼만들기, 버튼 눌렀을 때의 페이지 만들기, 플렉스박스로 헤더래핑하기, 중앙 컨텐츠 넣기 그리고 깃헙 올리기 까지만 하고 마무리하자.
더 하려면 할 수 있지만 새로운 프로젝트로 공부하는 것이 더 현명해보인다. 자바스크립트를 배우고 난 후에 다시 꼭 수정해봤으면 좋겠다. ++
++++++++++++++++++ 다음 프로젝트로 생각해놓은 것은... 음... 오픈소스로 공개되어있는 미니 프로젝트(라고하기에도 뭐하지만)를 완성본을 보고 카피해보고(1), 완성 코드와 비교해보고(2), 차이점을 정리해보고(3), 왜 다른지 이해하며 정리해보자(4)
-->
css
#header {
background-image: url(header_bg.jpg);
height: 130px;
}
#headerFlexWrapper {
display: flex;
background-color: ;
padding-top: 30px;
justify-content: space-between;
align-items: flex-end;
}
#header h1 a {
color: white
}
#headerMenu {
display: inline-flex;
padding: 5px;
background-color: green;
}
#headerMenu div {
background-color: #fff;
border-color: black;
border-width: 3px;
padding: 3px;
margin: 3px;
}
aside {
background-color: #fff;
background-image: url(icon_left_menu_bg.png);
background-repeat: no-repeat;
background-position: left top;
height: 1000px;
}
aside h2 {
text-align: center;
color: blue;
}
aside a {
text-decoration: none;
color:black;
}
aside a:hover {
color: blue;
}
.page-content {
display: grid;
grid-template-columns: 1fr;
/* grid-auto-rows: ; */
background-color: rgba(142, 142, 142, 0.253);
padding: 20px;
row-gap: 20px;
}
.page-content article {
background-color: #fff;
border-radius: 20px;
margin: 20px;
}
@media (max-width:768px) { /* 작으면~ */
#sideBar {
display: none;
}
#header #headerMenu {
display: none;
}
#header #headerFlexWrapper {
justify-content: center;
}
}
@media (min-width: 769px) { /* 크면~ */
#layout {
/* border: solid 5px black; */
display: grid;
grid-template-columns: 250px 1fr;
height: 80vh;
}
#mainPageContent {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 2fr;
background-color: rgba(142, 142, 142, 0.253);
padding: 30px;
column-gap: 8px;
row-gap: 8px;
}
}
음... 학습 능률이 조금 떨어지는 것을 느꼈다.
자바스크립트 공부를 시작하거나
다른 새로운 사이트를 빠르게 만드는 연습을 해보자. 아마 후자일듯함!
의식적인 연습 : 단순히 행위를 반복하는 것은 연습이 되지 않으며 실력이 늘지 않습니다. 노하우가 쌓일 뿐이죠. 자신의 약점을 고치려고 의식적으로 노력해야 합니다