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">
<h1><a href="main_page.html" target="_self">MSI학생정보시스템</a></h1>
</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로 하긴했는데 완벽하게 맞질않음 .. ㅠㅠ
아니다 잘못생각한듯 캡쳐한거 보니까 사이즈는 최대사이즈로 정해두고 스크롤 위치를 제한한듯. 자바스크립트 배우고 다시해보기.
!! 근데 이러면 Lorem도 쓸데없이 그리드 처리 되는것 같은데 ?? 어떻게 해결하지 ?
레이아웃 변경으로 수정완료
++++++ 아니 여기까진 뭐 그렇다 쳐 근데 매 페이지마다 header 요소와 sidebar 요소를 다시 써야하는건 너무 코드 낭비인것 같아 찾아보니 html include라는 스킬이라고 한다. 흠... 자바스크립트나 AJAX 사용해야한다니 일단은 .. 보류 !
!! 폰트 컬러도 조금씩 만져볼까? hover도 써보자
!! 링크 밑줄이랑 폰트 초기화하기 내 입맛대로 바꿔보자
+ 폰트는 설정 못했음 폰트도 바꿔보기
!! 배경도 바꿔야함 박스 모델의 배경을 학교홈피와비슷하게 해보자.
+ 헤더 내의 메뉴들을 flex 컨테이너로 만들어볼까 ?
아마 캡쳐화면처럼 잘 될듯 함
>> 실제로 개발자 툴로 확인해보니 flex 컨테이너가 맞았음 오예
+ css는 조건문이 없나 ?
+ 헤더를 flexbox 로 변경하여 여러 버튼 추가하기
!! 레이아웃을 다시짜기
!! 개별 페이지는 인라인스타일로 짤까 ?
짜도 되나? 인라인 스타일은 언제 짜는거지 ??
보니 메인화면 컨텐츠를 제외한 것들은 1column grid로 되어있음 그러므로 메인화면만 인라인스타일로 적고 나머지는 css파일에 .page-content로 적으면 될듯 아니면 id="mainPage" 만들어서 적어도 괜찮을듯
!!!!! 표기법에 대한 정리 따로 블로그에 하기 !! .. 아이디 : 카멜, 클래스 : 케밥
+ 지금은 그냥 태그랑 아이디 막 쓰는데 나중에 시멘틱 고려해서 다시 수정하기 (수정중)
!! 시멘틱 태그 공부
!! article 태그에 대한 생각.
!! 명시성 때문에 골치아팠음.
+ 명시성에 대한 공부가 더 필요함 이번 중앙 아티클이 바뀌듯 특정 상황에 바뀌게 하려면 어떻게 하는게 좋은 방법인지 ?
!! 미디어쿼리는 일단 기본 페이지에서 특정상황일 때 '바뀌는'것만 정해주면 된다. 즉 기본 상황을 미리 만들어 놓은 뒤 특정상황일 때의 변화점들만 추가해주면 되지 애초부터 상황을 두가지로 만들어서 기본템플릿을 만들 필요는 없었다.
!! 박스에 이미지 파일 넣기
!! z-index 속성
!! text-decoration-color 과 color 의 차이점 !
text-decoration은 텍스트 꾸미는 것을 바꾸는 속성임
!! 홈페이지에서 배경 다운받아서 배경을 고쳐봤음 크기는 나중에 flex 박스 다 완성하고 난 뒤 고치자
++ 어차피 레이아웃을 만들어 놨기에 메뉴를 눌렀을 때 뜨는 창을 전부 만들 필요는 없을 것 같다. 그때마다 새로운 아이디 값을 만들고 레이아웃에 넣어주기만 하면 되므로.
이번 프로젝트는 버튼만들기, 버튼 눌렀을 때의 페이지 만들기, 플렉스박스로 헤더래핑하기, 중앙 컨텐츠 넣기 그리고 깃헙 올리기 까지만 하고 마무리하자.
더 하려면 할 수 있지만 새로운 프로젝트로 공부하는 것이 더 현명해보인다. 자바스크립트를 배우고 난 후에 다시 꼭 수정해봤으면 좋겠다. ++
++++++++++++++++++ 다음 프로젝트로 생각해놓은 것은... 음... 오픈소스로 공개되어있는 미니 프로젝트(라고하기에도 뭐하지만)를 완성본을 보고 카피해보고(1), 완성 코드와 비교해보고(2), 차이점을 정리해보고(3), 왜 다른지 이해하며 정리해보자(4)
-->
css
/* body {
background-color:antiquewhite;
margin: 0;
} */
#header {
background-image: url(header_bg.jpg);
height: 130px;
}
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;
}
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: 10px;
margin: 10px;
}
@media (max-width:768px) { /* 작으면~ */
#sideBar {
display: none;
}
}
@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;
}
}
의식적인 연습 : 단순히 행위를 반복하는 것은 연습이 되지 않으며 실력이 늘지 않습니다. 노하우가 쌓일 뿐이죠. 자신의 약점을 고치려고 의식적으로 노력해야 합니다