개발일지 210701
4일차 요약
- 가상선택자
- 일반적인 프로젝트 폴더의 구성과 디렉터리 링크
- 브라우저의 검사 기능을 통해 완성된 웹페이지를 확인하면서 학습하기
학습 보고
실습 내용 / 결과물 출력 첨부
CSS문법(2)
가상선택자
- 행동과 규칙에 의해 디자인을 적용한다.
- 가상선택자를 적용할 때는 기본적인 선택자를 먼저 지정한 다음 콜론(:)으로 구분해 가상선택자를 입력한다.
html이 다음과 같을 때
<a href="https://www.naver.com/">네이버</a> <input type="text">
->
link: 방문한 적 없는 링크에 대한 디자인 적용
a:link { color: red;}
'네이버'의 글자색이 빨간색으로 적용
active: 링크를 클릭한 상태의 디자인 적용
a:active { color: blue;}
'네이버'를 클릭했을 때 글자색이 파란색
hover: 마우스오버 상태에서의 디자인 적용
a:hover { color: pink;}
'네이버'링크 위에 마우스를 올렸을 때 분홍색
focus: 주로 인풋태그에 사용. 입력란을 클릭해 'focus상태'가 되었을떄의 디자인 적용
input:focus { border: solid 10px red;}
입력 창을 클릭하면 아래와 같이 빨간색 태두리가 생김
규칙을 적용하는 가상선택자
html
<ul> <li>menu1</li> <li>menu2</li> <li>menu3</li> <li>menu4</li> <li>menu5</li> <li>menu6</li> </ul>
->
- menu1
- menu2
- menu3
- menu4
- menu5
- menu6
first-child: 첫 번째 대상에 디자인 적용
li:first-child { color: red;}
menu1이 빨간색 글자가 됨
last-child: 마지막 대상에 디자인 적용
li:last-child { color: blue;}
menu6이 파란색
nth-child(): 임의로 지정한 대상에 디자인 적용
li:nth-child(2) {
color: gray;}menu2가 회색
li:nth-child(2n) {
color: gray;}짝수번째 항목들이 회색
li:nth-child(2n+1) {
color: gray;}홀수번쨰 항목들이 회색
(왜 2n -1이 아닌것이지??????)
before / after 가상선택자
HTML 문서에 정보로 포함되지 않은 요소를 CSS에서 새롭게 생성
html
<ul> <li>login</li> <li>signin</li> <li>info</li> <li>customer</li> </ul>
->
- login
- signin
- info
- customer
CSS
li:before { content:"|"; } li:after { content: "---"; }
결과출력
프로젝트 진행 연습
프로젝트 폴더 생성
- 프로젝트 폴더
- index.html- css폴더
- style.css
- img폴더
- 임의의 이미지 파일
- js(자바스크립트)폴더
- css폴더
이렇게 기본 구성하는 것이 일반적이다.
이하 예제는 디렉터리가 위와 같이 구성되어 있다는 전제하에 진행함.
문서 작성에서 파일들 연동하기
-
index.html 파일에서 style.css를 링크.
<link rel="stylesheet" type="text/css" href="css/style.css">
-
index.html에서 이미지 파일 태그
<img src="img/임의의 이미지 파일.png">
이처럼 작성중인 문서의 위치를 기준으로 하위 폴더에 진입하여 연동한다. 폴더명 뒤에 '/'를 넣어서 구분.
- 자신 위치보다 상위의 폴더로 경로지정
html
<div></div>
CSS
div { background-image: url(../img/임의의 이미지 파일.png);}
style.css 파일을 기준으로 경로를 지정한다. '../'으로 상위 폴더로 이동 후 나머지 경로를 지정한 모습.
호스팅 서비스 생성
- 닷홈 서비스를 통해 무료 웹호스팅 생성
- filezila로 ftp 연결 해봄.
- http://xddf.dothome.co.kr/
기술적인 이해가 없어서 그냥 따라했다.. 실습용 도메인이 생김.
예제 연습 - 카카오 친구목록
html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <ul class="friends-lists"> <li class="friends-list"> <a href="#"> <img src="https://via.placeholder.com/50" class="friend-thumbnail"> <div class="friend-info"> <h3 class="friend-name">김민호</h3> <span class="friend-intro">minho kim</span> </div> </a> </li> <li class="friends-list"> <a href="#"> <img src="https://via.placeholder.com/50" class="friend-thumbnail"> <div class="friend-info"> <h3 class="friend-name">박지연</h3> <span class="friend-intro">다정한 사람</span> </div> </a> </li> <li class="friends-list"> <a href="#"> <img src="https://via.placeholder.com/50" class="friend-thumbnail"> <div class="friend-info"> <h3 class="friend-name">한성은</h3> <span class="friend-intro">헤헷</span> </div> </a> </li> </ul> </body> </html>
CSS
.friends-lists { list-style: none; } .friends-lists .friends-list a { color: #000000; text-decoration: none; } .friends-lists .friends-list a .friend-thumbnail { border: solid 2px gray; border-radius: 20px; } .friends-lists .friends-list a .friend-info .friend-name { font-size: 20px; color: #000000; } .friends-lists .friends-list a .friend-info .friend-intro { font-size: 15px; color: #c8c8c8; } /*커스텀*/ .friends-lists .friends-list a .friend-info .friend-name { font-size: 50px; color: red; }
결과물 출력
- css파일과 연동하기
- 각각 항목들에 클래스를 만들어줌
- css를 통해 디자인 적용
- 완전히 동일한 대상을 지정해서 기존 코드를 유지하면서 디자인 재적용해보기(cascading)
예제연습 네이버
html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <ul class="living-lists"> <li class="living-ltem"> <a href="#"> <img src="https://via.placeholder.com/170x114" class="living-thumbnail"> <div class="living-info"> <span class="type">리빙</span> <h3 class="title">30평대 아파트, 따뜻한 느낌의 침실</h3> <p class="paragraph">아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 </p> <div class="date-wrap"> <span class="source">유닠</span> <span class="date">3개월 전</span> </div> </div> </a> </li> <li class="living-ltem"> <a href="#"> <img src="https://via.placeholder.com/170x114" class="living-thumbnail"> <div class="living-info"> <span class="type">리빙</span> <h3 class="title">아이있는 집 주방 1년간..</h3> <p class="paragraph">아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 아무말 </p> <div class="date-wrap"> <span class="source">민주</span> <span class="date">3개월 전</span> </div> </div> </a> </li> </ul> </body> </html>
CSS
.living-lists { list-style: none; } .living-lists .living-ltem a { color: #000000; text-decoration: none; } .living-lists .living-ltem .living-info .type { color: #c08d31; font-weight: 700; font-size: 12px; } .living-lists .living-ltem .living-info .title { font-size: 13px; color: #000000; } .living-lists .living-ltem .living-info .paragraph { font-size: 13px; color: #404040; line-height: 20px; } .living-lists .living-ltem .living-info .date-wrap .source, .living-lists .living-ltem .living-info .date-wrap .date { font-size: 12px; color: #505050; } .living-lists .living-ltem .living-info .date-wrap .date { color: gray; } .living-lists .living-ltem .living-info .date-wrap .date:before { content: '| '; } .living-lists .living-ltem:hover { background-color: pink; } .living-lists .living-ltem a:hover .living-info .title { text-decoration: underline; }
출력 결과
추가 학습
미해결 - 솔루션
css에서 오타 때문에 한참 헤매었다. 역시 복붙하자.
질문거리
x
복습
실습도 실습이지만 만들어진 웹사이트에서 검사버튼을 통해 요소들을 직접 보고 학습하는 것이 핵심일듯.
학습 소감
솔찍히 지겹긴 하다...
이해가 어려울 내용은 하나도 없지만 내가 하라고 하면 잘 못하겠지.
하지만 실습 과정을 반복하면서 내 기술이 된다면 만족감이 들겠지?
Author And Source
이 문제에 관하여(개발일지 210701), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@xddf/개발일지-210701저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)