728x90
728x90

이번 포트폴리오는 모바일 환경에 맞춰 만들어 보려고 합니다. 

먼저 포트폴리오 사이트 접속시 제일 처음 보이게 되는 Main Page를 만들어 보려고 합니다.

원하는 모양으로 화면 계획을 잡기 위해서 Figma를 이용해 하나씩 그려나가볼 생각입니다.

Figma 작업은 하단의 링크로도 확인을 할 수 있습니다.

 

먼저 기존에 있던 코드들을 수정해 주겠습니다.

- index.css 에는 기존에 있던 코드들을 지우고 reset css style을 입력해 줍니다.

https://hiio.tistory.com/101

/* index.css */

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

App.js 는 <div className="App"> 안에 있는 태그들을 모두 삭제 해 줍니다.

// App.js

import React from "react";
import "./App.css";

function App() {
  return <div className="App"></div>;
}

export default App;

 

App.css 는 내용을 아예 삭제해 줍니다.

 

패키지 설치

페이지 route를 위해서 react-router-dom 을 설치해 주겠습니다.

npm install --save react-router-dom

 

디렉토리 만들기 

 

src 디렉토리 안에 pages 디렉토리를 만들고 그 안에 Main 디렉토리를 만들어 줍니다.

Main.js 코드 작성

React 에서 컴포넌트는 대문자로 시작!

id 가 main 인 div 태그를 하나 생성하고 그안에 텍스트를 넣어 주었습니다.

// src/pages/Main/main.js

export default function Main() {
  return <div id="main">메인페이지입니다.</div>;
}

 

App.js -> Route 추가

이제 Main 페이지로 접속할 주소를 / 로 routing 하는 코드를 App.js에 추가 해 주겠습니다.

Routing 은 react-router-dom을 사용합니다. 

BrowserRouter-> Routes -> Route 로 계층을 만들어 줍니다.

Route 컴포넌트의 속성값으로 path = "/" element 는 위에서 만들어 둔 Main 컴포넌트를 넣어줍니다.

// App.js

import React from "react";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import "./App.css";
import Main from "./pages/Main/Main";

function App() {
  return (
    <div className="App">
      <BrowserRouter>
        <Routes>
          <Route path="/" element={<Main />} />
        </Routes>
      </BrowserRouter>
    </div>
  );
}

export default App;

 

npm run start로 실행하면 

변경된 화면을 볼 수 있습니다.

 

 

 

PortFolio : https://hiio420.com  

Figma: https://www.figma.com/file/WJVwsW99LwZ2B1W3PKDASM/Hiio420?node-id=0%3A1&t=W1IV0P9M12hXOVpp-1

 

 

728x90
728x90

  Main Text  

- 웹사이트에 처음 접속하게 되면 먼저 보이는 페이지인 index.html 의 가운데 부분에 인사말 또는 웹사이트 방문객에게 전하는 가장 큰 메세지를 MainText에 넣을 생각입니다.

- 저는 'Welcome to My PortFolio'라는 문구와 함께 Main Sub Text 를 추가해 'Breath - Everything will be made by me.'라는 문구를 넣어 주었습니다.

- 각 단계별로 진행해 보겠습니다.

 

 

  단계  

1. index.html 파일에 텍스트 추가

2. Main Text 폰트 스타일 변경

3. Main Text 위치 변경

4. Main Sub Text 추가  

5. Main Sub Text 스타일 지정  

 

  1. index.html 파일에 텍스트 추가  

- maintext div에 'Welcome to My PortFolio' 텍스트를 추가합니다.

<div id='maintext'>Welcome to My PortFolio</div>

- 텍스트가 들어 간 모습입니다.

 

  2. Main Text 폰트 스타일 변경  

- html 자체에 폰트 스타일을 적용시켰 놨기 때문에 다른 폰트를 사용하는 게 아니면 따로 font-family를 지정할 필요는 없습니다.

- font 색상과 크기를 지정합니다.

- 폰트의 색상은 color / 크기는 font-size로 조절 할 수 있습니다.

- 기존에 지정한 width값과 height값을 해제합니다.

- 먼저 포토샵을 통해 색상과 크기와 스타일을 확인 합니다.

 

- 폰트 사이즈는 60px입니다.

- 색상 코드는 #f41f56 입니다.

 

- 폰트 스타일은 bold입니다. bold의 font-wight 는 700 입니다.

- 이 값들을 css에 적용 시킵니다.

#maintext {
    position: absolute;
    top: 50%;
    left: 40%;
    transform: translate(-50%, -50%);
    font-size: 60px;
    color: #f41f56;
    font-weight: 700;
    border: 1px solid gray;
}

 

  3. Main Text 위치 변경  

- MainText 의 위치는 이전에 가운데 정렬 시킨 후 왼쪽으로 조금 이동한 상태 입니다.

- 조금더 정확한 위치 지정을 위해서 기존에 있는 top / left 값을 수정해 주겠습니다.

- 먼저 어디에 위치해 있는지 확인해 보겠습니다.

 

- transform을 삭제합니다.

- propeties의 w값을 보면 240px입니다.

- main div 기준으로 240px만큼 우측으로 이동해 있습니다.

- 높이는 가운데로 맞추기 위해 nav의 top값을 구하기 위한 방법을 이용합니다.

- main 높이 /2 - maintext 높이 /2 - 50 = 345px 값이 나옵니다.

- 위 값들을 적용합니다.

#maintext {
    position: absolute;
    top: 345px;
    left: 240px;
    font-size: 60px;
    color: #f41f56;
    font-weight: 700;
    border: 1px solid gray;
}

 

  4. Main Sub Text 추가  

- Main Sub Text 를 maintext div 아래에 추가해 줍니다.

        <div id="mainsubtext">
            Breath
            <br>
            - Everything will be made by me.
        </div>

- 계획했던 디자인을 확인하면 'Breath'와 'Every...' 두 문구의 스타일이 다르다는 것을 알 수 있습니다.

- 각각 <p> 태그로 감싸주고 css에서 각각 스타일을 지정해 주겠습니다.

        <div id="mainsubtext">
            <p>Breath</p>
            <p>- Everything will be made by me.</p>
        </div>

  5. Main Sub Text 스타일 지정  

- Main Sub Text에 먼저 border 값을 지정해서 위치와 크기를 좀 더 눈에 띄게 확인해보겠습니다.

#mainsubtext {
    border: 1px solid gray;
}

- mainsubtext div의 높이는 적절하게 지정된 듯 보이지만 가로길이가 main의 가로 길이 만큼 지정되었습니다.

- 먼저 폰트 사이즈를 지정한 후에 width 값을 지정해서 가로 길이를 맞춰줍니다.

- 폰트 사이즈를 각각 지정하기 위해서 :nth-child()를 사용합니다.

- 먼저 각 폰트의 사이즈를 확인합니다.

- 'Breath' 는 30px 입니다.

 

- 'Every...' 은 15px입니다.

- 위 값들을 적용 시킵니다.

#mainsubtext > p:nth-child(1){
    font-size: 30px;
}
#mainsubtext > p:nth-child(2){
    font-size: 15px;
}

- 선택자와 자식 선택자를 이용애 p태그를 지정하고 :nth-child()를 통해서 각각 스타일을 따로 지정합니다.

- 여기서 문제는 <p> 에 margin 값이 기본적으로 적용 되어 있습니다.

- margin 값이 아래 위로 지정되어 있습니다.

- <p>자체에 margin 값을 0으로 지정하겠습니다.

p {
    margin: 0;
}

 

- margin 값이 0으로 바뀌면서 두 문구의 간격이 변화 하였습니다.

- 이제 width 값을 확인하고 지정해 줍니다.

- width 값이 230px입니다.

#mainsubtext {
    width : 230px;
    border: 1px solid gray;
}

- width 값을 주었더니 sidebar밑으로 이동해 버렸습니다.

- position 값을 주어서 위치를 조정합니다.

 

 

  6. Main Sub Text 위치 지정  

- position 값으로 absolute를 지정합니다.

#mainsubtext {
    position: absolute;
    width : 230px;
    border: 1px solid gray;
}

- main 텍스트 때문에 살짝 아래에 위치하지만 다시 위로 올라왔습니다.

- 이제 top / left 값을 지정합니다.

- 먼저 이동해야 하는 위치를 확인해 보겠습니다.

- top은 452px / left 는 240px 입니다. 452px는 이쁘지 않습니다. 460px로 지정해 보겠습니다.

#mainsubtext {
    position: absolute;
    top:460px;
    left:240px;
    width : 230px;
    border: 1px solid gray;
}

- 지정된 위치에 잘 이동했습니다.

- 다음 포스팅에서는 Main image를 추가해서 완성해보겠습니다.

728x90
728x90
728x90

+ Recent posts