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

  구글 폰트  

- 웹사이트에 폰트를 적용하는 방법은 서버에 폰트 파일을 업로드하고 불러오는 방법과 CDN을 이용한 방법들이 있습니다.

- 이번 포스팅에서는 구글 폰트 CDN을 이용해 웹사이트에 적용 시켜 보겠습니다.

 

  구글 폰트 사이트 접속  

- 아래의 링크로 연결된 구글 폰트 웹사이트로 접속합니다.

fonts.google.com/

 

Google Fonts

Making the web more beautiful, fast, and open through great typography

fonts.google.com

- 구글 폰트 API 에서 제공하는 다양한 폰트들을 확인 할 수 있습니다.

- Search를 통해서 원하는 폰트를 찾아 사용할 수 있습니다.

 

폰트 고르기 

- 구글 폰트에서는 '단어'를 입력 하면 각 폰트가 적용된 '단어'를 볼 수 있습니다.

- 빨간색으로 표시된 부분에 'Welcome'을 입력해 보겠습니다.

 

- 각 폰트들마다 'Welcome'에 적용된 스타일들을 확인해 볼 수 있겠습니다.

- 저는 이중 Noto Sans KR을 선택했습니다.

 

  폰트 적용  

- 선택한 폰트를 클릭합니다.

 

- 선택한 폰트의 Style들을 확인 할 수 있습니다. 

- Select this style을 클릭해 해당 스타일을 선택합니다.

- 스타일을 선택하면 오른쪽에 Selected family 라는 사이드 바가 생기면서 내가 선택한 폰트의 스타일이 나타납니다. 

- 웹사이트에 CDN으로 적용 시키기 위해서 Embed 항목을 선택합니다.

 

- 폰트를 적용 시킬 link 태그와 link속성값들 그리고 css에 적용할때 사용할 명령어들이 나옵니다.

- <link>부분을 복사해 html <head></head> 태그사이에 붙여넣기 합니다.

- 우선은 모든 스타일들을 선택한 후 붙여넣기를 진행하겠습니다.

 

- 스타일들을 모두 선택하면 family 값이 바뀐것을 확인 할 수 있습니다.

- 스타일 이름이 아닌 숫자가 들어 갑니다.

- 이 값들은 font-weight 값을 나타냅니다.

 

 

- 이제 <link> 부분을 복사해 붙여 넣기 합니다.

 

<head>
    <meta charset="UTF-8">
    <link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">
    <title>Hello</title>
</head>

- CSS에 적용 시키기 위해서 font-family 부분을 복사해 원하는 곳에 스타일을 지정해 주면 됩니다.

- 저는 HTML전체에 폰트를 적용 시켜 보겠습니다.

 

html{
    font-family: 'Noto Sans KR', sans-serif;
}

- 잘 적용 된 모습이지만 f12를 눌러서 검사 항목에서 font-family 를 확인해 봅니다.

- 잘 적용 되었네요.

 

  li 폰트 스타일 변경  

 

- 이제 li 태그에 들어간 텍스트들의 폰트 스타일을 변경해 보겠습니다.

- li 태그들에게 적용된 폰트 스타일은 Noto Sans KR 중 Thin 스타일입니다.

 

- 이 스타일에 맞춰 적용 하기 위해서 li css 스타일중 font-weight 값을 100으로 지정합니다.

 

- 스타일이 잘 적용 되었네요.

- 다음 포스팅에서는 main안에 컨텐츠 중 Main Text 부분을 진행해 보겠습니다.

728x90
728x90

  Sidebar 수정  

- 지난번 포스팅에서는 main의 위치와 크기를 수정해 봤습니다.

- 이번 포스팅에서는 main 안에 있는 컨텐츠 sidebar / maintext / mainimage 중에서 sidebar 부분을 수정해 보겠습니다.

- 먼저 이전까지 구현해놓은 웹사이트의 모습을 살펴 보겠습니다.

 

- sidebar 부분이 main보다 작게 설정 되어 있습니다.

- Menu Nav에 해당하는 텍스트들을 입력합니다.

- 각 크기와 위치를 조정합니다.

 

  단계  

 

1. sidebar 크기 수정

2. nav태그 추가

3. ul/li 태그 추가

4. li 크기 지정

5. nav 정렬

 

  1. sidebar 크기 수정  

- sidebar의 크기를 수정합니다. 

- 위치는 좌측에 잘 붙어 있습니다.지금당장 따로 수정할 필요는 없어 보입니다.

- 포토샵을 이용해서 sidebar의 크기를 알아보겠습니다.

- 원하는 위치와 크기에 맞게 가이드 라인을 잡은 후 사각형 툴로 sidebar부분을 그려줍니다.

- 텍스트의 크기와 위치, 간격에 맞춰서 크기를 지정했습니다.

- 사각형의 properties를 보면 크기를 알수 있습니다.

- width 는 200px / height 는 850px입니다.

- 코드를 수정합니다.

#sidebar {
    float: left;
    width: 200px;
    height: 850px;
    border:1px solid gray;
}

  2. nav태그 추가  

- Menu 항목을 만들기 위해서 sidebar div 태그 안에 nav태그를 먼저 추가해 줍니다.

- 마찬가지로 width/border값을 주어 위치를 확인해 보겠습니다.

- height 값은 Menu 텍스들을 추가 하면 자동으로 지정되게 되므로 이후에 처리해 보겠습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet">
    <title>Hello</title>
</head>

<body>
    <header>header</header>
    <div id="main">main
        <div id="sidebar">Sidebar nav
            <nav>nav</nav>
        </div>
        <div id='maintext'>Main Text</div>
        <div id='mainimg'>Main image</div>
    </div>
    <footer>footer</footer>
</body>
</html>
nav {
    width:200px;
    border:5px solid red;
}

- nav부분이 sidebar 범위에서 튀어나와 보입니다.

- border 를 나중에 삭제하면 알맞게 들어가게 됩니다.

- 아직은 위치나 크기를 확인하는 과정이 필요합니다.

 

 

  3. ul/li 태그 추가  

- 이제 nav에 들어갈 Menu 컨텐츠들을 nav태그 안에 추가합니다.

- 이때 ul / li 태그를 사용합니다.

- ul의 id값으로 sidebarul 을 지정합니다.

 

        <div id="sidebar">Sidebar nav
            <nav>nav
                <ul id='sidebarul'>
                    <li>Home</li>
                    <li>About</li>
                    <li>Portfolio</li>
                    <li>Blog</li>
                    <li>Contact</li>

                </ul>

            </nav>
        </div>
#sidebarul{
    border:4px solid blue;
}

- 각 텍스트들이 잘 들어간 모습이지만, li 태그 속성 때문에 기본적으로 텍스트 앞에 ● 이 찍혀서 나옵니다.

- ul 의 style 속성 중 list-style 을 None값으로 지정하면 ● 이 없어집니다.

 

#sidebarul{
    border:4px solid blue;
    list-style: none;
}

- ● 은 없어 졌습니다. 하지만 li들의 텍스트들이 sidebar nav / nav 와 다르게 들여쓰기 상태로 되어있습니다.

- ul padding-left 값을 0px로 지정해서 들여 쓰기를 없애줍니다.

 

#sidebarul{
    border:4px solid blue;
    list-style: none;
    padding-left:0px;
}

- 들여 쓰기가 없어 졌네요.

- 앞으로 ul 태그를 추가 하게 될때마다 같은 작업을 반복해야 할 수도 있습니다.

- 차라리 css에서 ul태그 자체에 list-style 과 padding-left값을 주어 추가되는 ul 태그들의 style들도 통일 시킵니다.

 

ul {
    list-style: none;
    padding-left: 0px;
}

#sidebarul {
    border: 4px solid blue;

}

  4. li 크기 지정  

- li 태그의 크기를 지정하고 각 텍스트들의 간격을 맞춰 줍니다.

- 각 텍스트들의 폰트 사이즈와 간격이 어떻게 되는지 포토샵  가이드라인과 사각형툴을 통해서 알아 보겠습니다.

- 텍스트 폰트 사이즈는 20px입니다.

- 텍스트 간격에 사각형 툴을 이용해 사각형을 만들고, 높이를 보면 간격이 60px임을 알 수 있습니다.

- li의 전체크기를 이에 맞춰서 정하거나, padding값을 주어 맞추어 줄수도 있습니다.

- 후에 li 태그들에 링크를 걸어 둘것을 생각하면 padding값을 아래 위로 주는 방법이 좋을 것 같습니다.

- css에 li 태그 style을 지정해 줍니다.

 

li{
    font-size:20px;
    width: 200px;
    height: 20px;
    padding-top:30px;
    padding-bottom: 30px;
    border:4px solid black;
}

- 또한, 텍스트들은 좌측으로부터 일정 간격만큼 떨어져있습니다.

- 위와 같은 방법으로 확인해 보겠습니다.

 

- 65px만큼 떨어져 있네요.

- #sidebarul 에 padding-left값을 65px로 줍니다.

ul {
    list-style: none;
    padding-left: 0px;
}

- 그런데 그만큼 li가 벗어나게 됩니다.

-li width 값을 65px만큰 차감합니다.

 

li{
    font-size:20px;
    width: 135px;
    height: 20px;
    padding-top:30px;
    padding-bottom: 30px;
    border:4px solid black;
}

 

 

  5. nav 정렬  

- 이제 nav를 높이 가운데로 정렬 시킵니다.

- #sidebar에 position 값으로 relative 를 지정 후 nav에 position 값으로 absolute를 지정합니다.

- 이제 #sidebar 상단을 기준으로 nav를 아래로 이동시켜 가운데로 맞춰야합니다.

- main의 높이는 850px입니다. 이 높이의 반반큼 아래로 이동시키고, nav높이의 반만큼 위로 이동시킵니다.

- nav의 높이는 li크기들을 모두 합한 것이므로 80px *5 = 400px 이 됩니다. 

- main높이 / 2 - nav 높이 /2 를 하면 225px입니다.

- 하지만 이 값은 main 기준으로 가운데에 정렬됩니다.

- main 위쪽으로 header가 50px만큼 자리 잡고 있으므로 50px만큼 위로더 이동시켜 줘야합니다.

- 225px - 50px = 175px입니다.

- 이제 top값으로 175px을 줍니다.

#sidebar {
    position:relative;
    float: left;
    width: 200px;
    height: 850px;
    border: 1px solid gray;
}

nav {
    width: 200px;
    position: absolute;
    top:175px;
    border: 5px solid red;
}

- 가운데로 잘 정렬 된것을 확인 할 수 있습니다.

- 정확한 위치 확인을 위해 index.html 에 있는 sideba nav / nav 텍스트들을 삭제 하였습니다.

- 잠시 nav와 하위 태그들의 border 값들을 없애고 다시 한번 확인 해 보겠습니다.

 

- 만족 스럽게 됐습니다.

- 다음 포스팅에서는 구글 폰트를 이용해 텍스트들의 폰트를 지정해 보겠습니다.

728x90
728x90

  레이아웃 (Layout)  

- 웹사이트 제작에 있어서 가장 먼저 시작하는 것은 어떤 웹사이트를 만들지 , 어떻게 레이아웃을 구성할지 인 것 같다.

- 제작하는 과정에서 수정사항이 생기겠지만, 어떻게 구성을 할지 계획을 세워두고 진행을 한다면 개발하는 과정에서 조금 더 속력을 낼 수 있을 것이라고 생각하고, 항상 레이아웃을 어떤 식으로 구성할지 먼저 생각을 하는 편이다.

- 웹사이트 레이아웃에는 많은 참고자료들이 있고, 구성이 다양하다.

- 먼저 레이아웃을 계획하기 전에 크게 어떤 식으로 나누어지는지 알아보고자 한다.

- 태그나 명령어에 관한 것은 진행하면서 포스팅 하려고 하낟.

 

  레이아웃 기본적인 구성  

- 레이아웃의 구성은 크게 Header / Nav / Main / Footer로 나뉘게 된다.

- Header : HTML 문서나 섹션 부분에 대한 헤더를 정의한다.

  - 보통 웹사이트 로고 또는 타이틀이 주로 배치된다.

- Nav: 웹 사이트의 탐색 링크를 정의한다.

- Main: Section 태그를 이용한 Section 부분을 정의 할수 있지만 주로 나는 Main으로 이름을 짓는 편이다. 

  - 주로 웹사이트들의 페이지의 메인 컨텐츠들이 배치 된다.

- Footer : 웹 사이트의 가장 아래에 오는 부분으로 기업 정보나 , 제작연도, 사이트맵이나, sns링크등이 여기에 배치되는 것을 볼 수 있다.

 

- 기본적인 구성은 위와 같이 이루어져 있으면서 이를 변형하여 많이 사용된다.

- 사이드바를 추가하거나 nav의 위치를 변경하는등 다양한 구성이 있다.

 

  레이아웃 구성 표시하기  

- 기존에 만들어둔 index.html 파일을 수정해서 

- 기본적인 레이아웃을 구성하는 html 과 css 코드를 짜보도록 한다.

 

  태그 추가  

- index.html에 있는 <h1>/<h2>/<h3>부분을 삭제하고 <header>/<div>/<footer> 태그를 추가 한다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<header>header</header>
<div id="main">main</div>
<footer>footer</footer>
</body>
</html>

- div 태그의 id를 main으로 지정해주고 웹사이트에 접속해 본다.

 

- 웹사이트에 접속하면 header/main/footer 텍스트가 출력 된 것을 볼 수 있다.

- 각 태그들의 크기를 보기위해 css파일을 링크시키고 css파일에 코드를 추가해 본다.

 

  링크 css   

-css 파일을 이용해 웹사이트의 스타일을 지정하기 위해서는 .css확장자로 된 css 파일이 필요하다.

- 이를 head부분에 링크한다.

    <link  href="../static/css/style.css" rel="stylesheet">

- href 속성값으로 css파일이 있는 경로를 지정해 주면 된다.

- 플라스크 서버는 jinja2를 지원하므로 이에 맞는 문법을 사용해서 css파일을 링크시킬수 있다.

- 서버를 구성하는 디렉토리에 static 디레토리를 생성하고 이 안에 css 파일을 생성한다.

- 나는 css 디렉토리를 static디렉토리 하위에 생성하여 static - css - style.css로 만들었다.

- 이제 href 속성값으로 url_for 명령어를 사용해서 css파일을 링크시킨다.

 

<link  href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet">

  css 코드 추가  

 

- 이제 header/div#main/footer 태그의 스타일을 지정해준다.

- css의 background-color 명령어를 통해서 각 태그들의 배경색을 가르게 지정해 주어서 각 태그들이 차지하는 크기를 표시한다.

 

header{
    background-color: aliceblue
}
footer{
    background-color: beige
}
#main{
    background-color: rebeccapurple
}

 

- 모든 코드들을 추가한 후 저장하고 웹사이트를 새로고침 해보자.

- 배경색이 css에서 지정한 색으로 바뀐 것을 확인할수 있다.

- 아직 각 태그들의 가로 세로 값을 지정해주지 않아, 텍스트의 폰트 사이즈 만큼만 세로로 배경색이 차지하고 있고, 가로로는 꽉 찬 모습을 볼 수 있다.

 

- 다음 포스팅에서 가로 세로 값을 css파일에서 각 태그들에 부여해보고 전체적인 레이아웃을 구성해 보기로 한다.

728x90
728x90

  포트폴리오 웹사이트 제작  

- 나만의 포트폴리오를 올리면서 이력서 겸 내가 진행 한 프로젝트에 관한 사이트를 만들어 보는 프로젝트를 진행하려고한다.

- 이전에 만들고 중단한 프로젝트가 있지만, 새로이 시작하면서 html,css,js에 대해 다시한번 공부해보려고 한다.

 

  개발환경   

- window 10

- 서버 : flask

- 에디터 : brackets, 파이참

- node.js나 apache,php로 구성된 백엔드를 사용할까 했지만, 현재 python 관련 프로젝트를 진행하고 있어서 flask로 백엔드 서버를 구성 하고, python 언어를 사용하기로 했다.

 

  예상 진행 과정   

- 레이아웃 구성 부터 시작해 데이터를 저장하고 사용하는 과정과 전체적인 디자인을 구성해보는 식으로 진행해 보려고한다.

 

 

 

 

728x90
728x90
728x90

+ Recent posts