728x90
728x90

  프로그레스바 progress bar  

- 프로젝트의 진행 정도나 내 스킬 숙련도를 나타내기 위한 방법으로 프로그레스바 progress bar를 넣어주려고 합니다.

 

  span 태그 추가  

- 프로그레스 바를 만들기 위해 span.progressbar태그와 추가적으로 이 태그 안에 span.guage 태그를 만들어 줍니다.

        <span class="progressbar">
            <span class="gauge">
                gauge
            </span>
        </span>

 

  css 스타일 추가  

- css 에서 값을 지정해 주겠습니다.

- span.gauge의 속성은 display를 inline-block 으로 만들고 width 값을 숙련도에 맞게 줍니다. Python 에는 95%를 주었습니다.

- 높이 값은 span.progressbar의 높이와 똑같이 줍니다.

- background-color #3abff7 색상 코드를 입력해 줍니다.

- 게이지의 크디가 잘 보이기 위해 span.progressbar 의 백그라운드 색상코드 값으로 #d6d3d3을 주고 border값을 삭제 하겠습니다.

 

#myskills > .skill > .progressbar {
    display: inline-block;
    width: 520px;
    height: 21px;
    background-color: #d6d3d3;
}

#myskills > .skill > .progressbar > .gauge {
    display: inline-block;
    width: 95%;
    height: 21px;
    background-color: #3abff7;
}

 

- span 의 모양이 사각형입니다.

- 모서리 부분을 둥글게 만들어 줘야 합니다.

- span.progreebar 와 span.gauge 에 border-radius 값으로 10px;을 지정해 주겠습니다.

#myskills > .skill > .progressbar {
    display: inline-block;
    width: 520px;
    height: 21px;
    border: 3px solid blue;
    border-radius: 10px;
}

#myskills > .skill > .progressbar > .gauge {
    display: inline-block;
    width: 95%;
    height: 21px;
    background-color: #3abff7;
    border-radius: 10px;
}

- 이제 각 스킬들이 들어 가는 부분에 span.gauge들을 추가해 주겠습니다.

- 모두 잘 적용 되었습니다.

- 그런데 각 수치 마다 게이지의 크기가 달라져야 합니다.

- css nth-child 나 선택자를 통해서 정해 줄 수 있지만, 코드가 너무 길어 질거 같습니다.

- JavaScipt 를 통해서 지정해 주면 좋을것 같습니다.

- 이부분은 다음 포스팅에서 구현해 보도록 하고,  css animation 효과를 적용 시켜보겠습니다.

 

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

  render_template  

- 플라스크 코드 내에서 hmtl 마크업 언어를 사용해서 웹사이트를 제작하여 나타낼 수 있습니다.

- html 코드들을 플라스크내에 사용하는 것보다 .html 파일을 만들어서 라우팅하는 방법이 좀 더 깔끔하고, 관리하기에도 편합니다.

- 플라스크는 render_template 모듈을 통해서 .html파일을 렌더링 하여 브라우저를 통해 보여 줄 수 있습니다.

- 앞의 포스팅을 통해 만들어 놓은 app.py에 이어서 진행해 보겠습니다.

 

  templates 디렉토리 생성  

- 먼저 render_template 를 사용하기 위해서는 templates 디렉토리가 필요합니다.

- flask_server 하위에 templates 디렉토리를 만들어 줍니다.

 

 

 

 

  index.html 생성  

- 이제 templates 디렉토리 안에 index.html 을 생성해 줍니다.

- 파이참의 파일 생성에서는 .py 뿐만 아니라 html 파일도 생성할 수 있습니다.

 

 

- html 생성을 선택하면 파일 이름을 입력하는 항목과 html 버전을 선택할수 있습니다.

- 저는 html5를 선택 하겠습니다.

 

- index.html 파일을 생성하면 기본적인 Tag(태그)들이 입력되어 만들어 집니다.

 

 

  index.html 수정 

 

- index.html 파일 내용을 간단하게 수정해 보겠습니다.

- head 태그안에 있는 title 태그의 텍스트를 Hello로 수정합니다.

- body 태그 안에 h1태그를 추가 하고 , '안녕하세요'를 텍스트로 추가합니다.

- 그 아래에 h2태그를 추가 하고, '웹사이트에 방문해 주셔서 감사합니다.'를 추가합니다.

 

   Tip     

태그 입력시 태그 네임만 입력후 Tab키를 누르면 자동으로 <></>씌어져 생성됩니다.

ex) div-> tab -> <div></div>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<h1>안녕하세요.</h1>
<h2>웹사이트에 방문해 주셔서 감사합니다.</h2>
</body>
</html>

 

  모듈 Import  

 

- 이제 app.py로 이동합니다.

- import 임포트 해놓은 Flask에 추가적으로 render_tamplate 를 import 해 주겠습니다.

 

from flask import Flask,render_template

 

 

  hello 함수 수정  

 

- app.py에 작성되어 있는 hello함수를 수정하겠습니다.

- return 뒷 부분을 render_template('index.html')으로 수정합니다.

 

- 변경전

return "Hello World!"

- 변경후

return render_template('index.html')

 

from flask import Flask,render_template
app = Flask(__name__)

@app.route("/")
def hello():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

 

  플라스크 실행  

- 파이참 run을 이용해 플라스크 서버를 실행해 줍니다.

- 실행 후 표시되는 url링크를 클릭하여 접속합니다.

- index.html이 잘 표시되어 나타나는 것을 확인할 수 있습니다.

 

728x90
728x90

무료로 사용할수 있는 템플릿들을 소개합니다.

 

1. ARCH4

 갤러리를 중심으로 자신만의 이미지들을 링크해서 만들수 있는 템플릿입니다. 

 건축과 관련된것이 아니더라도 다양한 이미지 포트폴리오들을 만들수 있을것 같습니다. 

 첫 페이지에 나와있는 텍스트를 따라 보이는 이미지가 인상적입니다.

 

https://www.free-css.com/free-css-templates/page246/arch4

 

Arch4 Free Website Template | Free CSS Templates | Free CSS

 

www.free-css.com

 

2.marble

 

오른쪽 navigation - sidebar와 함께 큰 main image를 첫페이지에 보여줄수 있는 구성입니다.

모던하면서도 베이직한 웹 템플릿입니다. 심플한 디자인을 좋아하시는 분들이 사용해 보시면 좋을것 같습니다.

 

https://www.free-css.com/free-css-templates/page244/marble

 

Marble Free Website Template | Free CSS Templates | Free CSS

 

www.free-css.com

 

3.Black

Black 이라는 이름에 맞게 전체적인 background 가 검은색인 1page 웹 템플릿 입니다.

 

하나의 페이지로 스크롤을 내리면서 자신의 작품들을 보여줄수 있는 포트폴이로를 만들기에 좋은것같습니다.

 

https://www.free-css.com/free-css-templates/page239/black

 

Black Free Website Template | Free CSS Templates | Free CSS

 

www.free-css.com

 

728x90

'Web > template' 카테고리의 다른 글

[Web] 무료 이미지 사이트 모음 - Free image website ##1  (0) 2020.10.12
728x90

안녕하세요. 

저번시간에 이어서 제가 구상한 Layout을 HTML과 CSS를 가지고 만들어 보겠습니다.

그리 어렵지 않고, 복잡한 구조가 아니기 때문에 간단한 코딩만으로도 Layout을 구성할수 있었습니다. 

 

1. HTML - index.

<body>
    <div id="container">
        <div id="sidebar">sidebar</div>
        <div id="main-image">mainimage
            </div>

    </div>
    <div id="footer">footer</div>

</body>

먼저 HTML 코드 입니다. 

크게 구성은 main-image와 sidebar를 감싸고 있는 container와 footer로 나뉘어 있습니다. 

각 div는 id속성을 사용하였습니다. 

 

 

 

 

2.CSS - style.css

#container {
    position: relative;
    height: 100%;
    width: 100%;
    text-align: center;
    font-size: 50px;
}

#sidebar {
    position: absolute;
    background-color: #44d1da;
    height: 100%;
    width: 15%;
    opacity: 0.5;
    z-index: 2;
}



#main-image {
    height: 100%;
    width: 100%;
    background-color: #78bcc1;
}


#footer {
    text-align: center;
    width: 100%;
    background-color: #0a696f;
    font-size: 50px;

}

css 부분입니다.

HTML의 id 속성은 css에서 #을 사용하여 선택합니다. 

width값과 height값을 %로 주면서 브라우서 비율변화과 다양한 기기들의 뷰어들에 맞게 대응 할수 있겠끔 하고 싶었습니다. 

처음 시작할때 부터 %를 사용함으로서 나중에 있을 media부분에서의 복잡한 과정을 쉽게 하고 싶었습니다.

 

창 전체 부분을 꽉 채우기 위해서 main image의 width를 100%

sidebar같은 경우 오른쪽에서 15%정도의 크기를 차지 합니다. 

나중에는 오른쪽으로 밀려 나있다가 버튼 클릭시 나타나게끔 할 생각입니다. 

이때 전체 이미지의 비율에 영향을 주지 않기 위해서 

#container 에 position:relative 를 #sidebar에는 position:absolute를 이용하여서 각 div가 겹치게끔 하였습니다. 

이때 sidebar뒤로 main-image부분이 흐릿하게 보이도로 opacity값을 주었습니다. 

 

다음 포스팅에서는 sidebar에 들어갈 menu 부분을 만들어 보겠습니다.

728x90
728x90
728x90

+ Recent posts