728x90
728x90

  레이아웃 구성 계획  

- 이전 포스팅에서 만들어 놓은 index.html 과 style.css 파일을 사용해 이어가 보겠습니다.

- 별다른 레이아웃이라고 볼 것 없이 header / main / footer 텍스트와 색상만 들어가 있는 모습입니다.

- 이제 기본적인 레이아웃 구성을 계획해 보고 이를 코드로 구현해서 웹사이트를 수정하겠습니다.

 

  레이아웃 구성 참고  

- 레이아웃을 구성하는 방법은 여러 가지가 있습니다.

- 구성 전에 다양한 웹사이트들을 보면서 참고 하거나, 템플릿등을 보면서 참고하면 많은 도움이 됩니다.

- 아래 링크로 이동하면 무료 템플릿들을 제공하는 사이트들을 볼 수 있습니다.

 

무료 템플릿 사이트 모음

 

1. <포트폴리오> 웹 사이트 제작 - Reference _무료 웹 템플릿 사이트

 <포트폴리오>형식의 웹사이트를 제작하기 위해서 첫 단계로 기존의 웹사이트 템플릿을 참고 하기로 했다.  이미 많은 HTML + CSS 를 사용하여 디자인하고 제작되어 있는 템플릿들을 살펴보고, 나

hiio.tistory.com

- 레이아웃을 구성의 디자인을 할때 저는 주로 포토샵을 이용하는 편입니다.

 

 

  레이아웃 구성 설명  

- 아래의 이미지는 제가 구성해본 레이아웃입니다.

- 가로 * 세로 비율은 아직까지 생각하지 않고 전체적인 배치 만 계획을 해봤습니다.

1. 1440px * 900px 크기로 구성 했습니다.

2. 상단과 하단에 header 와 footer 가 들어 갑니다.

3. 좌측에는 sidebar가 들어가고 그 안에 nav가 들어가게 됩니다.

4. 중앙에 웹사이트 관련 Main Text와 Main Image가 들어가게 되는 간단한 레이 아웃 구조입니다.

- 이제 코드로 이 레이아웃을 구성해 보겠습니다.

 

  레이아웃 구현 코드  

- 먼저 기존에 header / main / footer 가 있습니다.

- header와 footer는 있으니까 side nav / MainText / Main image / 부분만 추가 하면 될 것같습니다.

- 위 3가지를 main 안에 추가 해 줍니다.

<!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</div>
        <div id='maintext'>Main Text</div>
        <div id='mainimg'>Main image</div>
    </div>
    <footer>footer</footer>
</body>
</html>

- id 가 main인 div 태그 안에 3개의 div태그를 추가 하고 각 div id를 sidebar / maintext / mainimg 로 지정해 주었습니다.

- 이제 웹 사이트가 어떻게 수정 되었는지 확인 해 보겠습니다.

 

- 확인해보면 새로 추가한 부분들이 잘 들어 갔지만, 기존의 main 안에 들어가서 background 가 중첩되어 보입니다.

- css 파일을 수정하여 background를 바꾸겠습니다.

 

  CSS - background 지정  

- 포토샵으로 작업을 했기 때문에 위에서 구성했던 레이아웃의 각 부분들의 색상코드를 얻을 수 있습니다.

- 새로추가된 div와 함께 색상코드를 css파일에 적용시킵니다.

header{
    background-color: #bf7d7d
}
footer{
    background-color: #2c0808
}
#main{
    background-color: white
}
#sidebar{
    background-color: #716a6a
}
#maintext{
    background-color: #5a5555
}
#mainimg{
    background-color: #8a6161
}

- CSS 에서 색상코드를 입력할때 앞에는 #을 붙여줍니다.

- 이제 웹 사이트를 확인해봅니다.

 

- 색상이 잘 들어 간것을 확인 할 수 있습니다.

- 다음으로 각 부분들을 정렬하고 위치와 크기를 지정해 배치해 보겠습니다.

- 먼저 크기를 지정해 보겠습니다.

 

  CSS - 레이아웃 크기 지정  

- CSS에서 가로 크기는 width , 세로 크기는 height 명령어를 통해서 크기를 지정할 수 있습니다.

- 각 명령어에서 크기는 px,%,vh,vw,initial,inherit 등으로 조절 할 수 있습니다.

- 우선 header와 main, footer 로 구성된 큰 부분들의 크기를 지정해 주겠습니다.

- header와 main, footer는 가로 비율이 전체 화면에 꽉 차게 들어가고, 세로 비율은 header와 footer가 같고 main이 나머지 부분을 크게 차지 합니다.

- 브라우저의 전체 화면 가로 비율에 꽉 차게 할때 브라우저 전체 크기의 px을 찾아서 값을 입력할 수 있지만, 모니터 해상도에 따라서 브라우저 전체크기가 달라지므로 이 방법은 반응형에 대응할때 쉽지 않습니다.

- width 값을 100% 로 지정하면 브라우저 크기가 달라지더라도 대응하여 화면에 꽉 차게 들어가게 됩니다.

- 세로의 비율은 브라우저의 크기가 변화 하더라도 크게 달라 지지 않습니다. 

- px로 값을 지정하겠습니다.

- header와 footer 의 height 값을 100px로 지정하고, main의 height값을 700px 로 지정해 보겠습니다.

 

header {
    width: 100%;
    height: 100px;
    background-color: #bf7d7d;
}

footer {
    width: 100%;
    height: 100px;
    background-color: #2c0808;
}

#main {
    width: 100%;
    height: 700px;
    background-color: white;
}

#sidebar {
    background-color: #716a6a;
}

#maintext {
    background-color: #5a5555;
}

#mainimg {
    background-color: #8a6161;
}

- 이제 sidebar와 maintext, mainimage의 크기를 지정해 주겠습니다.

header {
    width: 100%;
    height: 100px;
    background-color: #bf7d7d;
}

footer {
    width: 100%;
    height: 100px;
    background-color: #2c0808;
}

#main {
    width: 100%;
    height: 700px;
    background-color: white;
}

#sidebar {
    width: 210px;
    height:700px;
    background-color: #716a6a;
}

#maintext {
    width: 690px;
    height:120px;
    background-color: #5a5555;
}

#mainimg {
    width: 390px;
    height:408px;
    background-color: #8a6161;
}

- 크기를 지정해 주었습니다. 

- 그런데 아직 정렬이 되지 않아 뒤죽박죽입니다.

- 정렬을 해 봅시다.

 

 

  CSS -정렬  

- sidebar를 기준으로 정렬을 해 줍니다.

header {
    width: 100%;
    height: 100px;
    background-color: #bf7d7d;
}

footer {
    width: 100%;
    height: 100px;
    background-color: #2c0808;
}

#main {
    width: 100%;
    height: 700px;
    background-color: white;
}

#sidebar {
    float: left;
    width: 210px;
    height: 700px;
    background-color: #716a6a;
}

#maintext {
    width: 690px;
    height: 120px;
    background-color: #5a5555;
}

#mainimg {
    width: 390px;
    height: 408px;
    background-color: #8a6161;
}

 

  CSS - 위치 지정  

- 이제 MainText와 MainImage를 main 안에서 가운데 정렬에 위치 시키봅니다.

- 가운데 정렬하는 방법은 여러 가지가 있지만, position을 이용해 보겠습니다.

- main에 position relative 값을 주고 , maintext 와 mainimage 에 position absulte값을 줍니다.

header {
    width: 100%;
    height: 100px;
    background-color: #bf7d7d;
}

footer {
    width: 100%;
    height: 100px;
    background-color: #2c0808;
}

#main {
    position: relative;
    width: 100%;
    height: 700px;
    background-color: white;
}

#sidebar {
    float: left;
    width: 210px;
    height: 700px;
    background-color: #716a6a;
}

#maintext {
    width: 690px;
    height: 120px;
    position: absolute;
    background-color: #5a5555;
}

#mainimg {
    width: 400px;
    height: 400px;
    position: absolute;
    background-color: #8a6161;
}

- 이제 maintext와 maintext에 각각 top, left 값을 50% / transform :translate(-50%,-50%)값을 주어 가운데 정렬을 시킵니다.

header {
    width: 100%;
    height: 100px;
    background-color: #bf7d7d;
}

footer {
    width: 100%;
    height: 100px;
    background-color: #2c0808;
}

#main {
    position: relative;
    width: 100%;
    height: 700px;
    background-color: white;
}

#sidebar {
    float: left;
    width: 210px;
    height: 700px;
    background-color: #716a6a;
}

#maintext {
    width: 690px;
    height: 120px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    background-color: #5a5555;
}

#mainimg {
    width: 400px;
    height: 400px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    background-color: #8a6161;
}

 

- 가운데 정렬이 잘 되었네요.

- 하지만 제가 구상한 레이아웃은 Text가 왼쪽으로 image가 오른쪽 하단으로 조금 이동해야 비슷해 질것 같습니다.

- Top값과 left값을 조정해서 위치를 이동 시킵니다.

 

- 제가 생각했던 레이아웃 모습대로 잘 나온것 같습니다.

 

- 다음 포스팅에서는 좀더 세부적으로 조정하면서 Text와 image를 넣어 보겠습니다.

728x90
728x90

  Flask(플라스크)  

- 파이썬 마이크로 웹 프레임 워크

- 심플함(Simple)과 확장성(Extensible)을 가지고 있습니다.

- Django가 많은 기능들을 포함하여 손쉽게 쓸 수 있다면 Flask는 필요한 기능들을 만들어 주어야 하지만, 그만큼 가볍고 확장성이 크다는 장점이 있습니다.

  환경  

- Window 10

- Anaconda (아나콘다)

- python 3.7 (파이썬 3.7버전)

- 파이참

- Flask(플라스크)

등을 사용하여 Flask를 이용한 웹 서버를 만들고 , 웹 사이트를 제작해보도록 하겠습니다.

  플라스크 설치  

- 플라스크 설치는 아나콘다 가상환경에서 진행됩니다.

conda install flask

또는

pip install flask

명령어를 통해서 플라스크를 설치해 줍니다.

  파이참 실행  

- 새 프로젝트를 생성하고 interprinter로 아나콘다 가상환경에 설치된 파이썬3.7번전을 세팅해줍니다.

- 원하는 디렉토리에 flask_server폴더를 생성해 줍니다.

  app.py 생성  

- flask_server 디렉토리 하위에 app.py 파일을 생성합니다.

- flask 를 import 시키고 'Hello World!'를 출력하는 코드를 작성해 줍니다.

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

  플라스크 서버 시작  

- 파이참의 터미널을 통해서 플라스크를 실행합니다.

flask run

명령어를 입력하면 서버가 실행되고 url 링크가 나타나고 클릭하면 해당 url의 웹사이트가 브라우저로 표시 되게 됩니다.

  플라스크 실행 다른 방법  

- flask run으로 플라스크를 실행하는 방법 이외에도 플라스크를 실행하는 방법이 있습니다.

- 위에서 작성했던 코드의 마지막에 아래의 코드를 추가해 줍니다.

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

- 코드 -

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

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

- 파이참의 run을 통해서 실행하는 방법

- 터미널에서 python app.py 명령어를 통해서 실행하는 방법

python app.py

728x90
728x90

안녕하세요. 

이번 포스팅에서는 저번에 만들었던 사이드바 메뉴를 css와 checkbox를 이용해서 slide시켜 나타났다 사라지게 하는 것을 만들어 보겠습니다.

 

 

1. input & label

먼저 html에 input과 label 태그를 작성해 줍니다.

<input type="checkbox" id="sidebtn">

        <label for="sidebtn" class="sidebtn"> button

        </label>

 

input에서 type은 checkbox로 설정해 주시고, label 태그 안에 for에는 input의 id속성값을 넣어서 연결 시켜 줍니다.

그러면 아래와 같이 만들어 집니다.

여기서 input과 label을 연결시켜주면 checkbox를 클릭하지 않아도, label을 클릭하면 똑같은 효과가 나타납니다.

 

 

그래서 저에게 필요한 것은 label 만 있으면 되므로 input태그는 css에서 display:none;으로 없애줍니다.

#sidebtn{
	display:none;
}

 

이제 label에 width값과 height값을 주고 그안에 span을 넣어서 Burger button을 만들어 줍니다.

 

 

-HTML

<label for="sidebtn" class="sidebtn"> button
            <span></span>
            <span></span>
            <span></span>
        </label>

-CSS

.sidebtn {
    width: 50px;
    height: 50px;
}



.sidebtn span {
    display: block;
    width: 100%;
    height: 5px;
    background-color: black;
    border-radius: 10px;
    position: absolute;
    transition: all 0.25s;
}

.sidebtn span:nth-child(1) {
    top: 10%;
}

.sidebtn span:nth-child(2) {
    top: 50%;
    transform: translateY(-50%);
}

.sidebtn span:nth-child(3) {
    bottom: 10%;
}

label 안에 span 태그를 이용합니다. 3개 정도 만들어줍니다.

css에서는 nth-child를 통해서 각 span의 위치를 잡아줍니다.

 

이제 checkbox가 checked됐을때 효과를 이용하여 sidebar가 슬라이드 되어 나올수 있도록 해줍니다.

 

css에서 checkbox가 checked됐다는 코드는

input뒤에 :checked를 써서 알려줍니다.

이제 이 코드를 이용하여 체크시 사이드바가 출현하게끔 하기위해서 css선택자들 중 +를 통해서 각 태그들을 선택하여 

left값을 조절하여 나타나고 사라지게 한다음,

transition을 통해서 시간차를 주어 천천히 사라지고 나타나게끔합니다.

 

 

See the Pen pooBRZY by hongsam (@hongsamhc) on CodePen.

완성된 코드 입니다.

 

이것을 저번에 만들었던 페이지에 적용 시켜 줍니다.

 

기본적으로 저는 사이드바가 왼쪽에서 슬라이드 되어 나오는 것으로 했습니다.

기본 페이지에서는 사라져있다가 버튼을 클릭하면 아래 그림처럼 나오게 됩니다.

 

완성된 화면입니다.

transition 값을 조절하여 버튼와 사이드바 이동시간을 조절하여 마은에 드는 슬라이드형 사이드바를 만들면 좋을것 같습니다.

 

다음에는 메인이미지를 적용 시켜 보겠습니다.

 

728x90
728x90

 <포트폴리오>형식의 웹사이트를 제작하기 위해서 첫 단계로 기존의 웹사이트 템플릿을 참고 하기로 했다.

 이미 많은 HTML + CSS 를 사용하여 디자인하고 제작되어 있는 템플릿들을 살펴보고, 나만의 사이트는 레이아웃은 어떻게 구성할 것인지에 대해 고민해 보기로 했다.

 

먼저 디자인과 제작 방법을 참고 할만한 사이트들을 모아 봤다. 

 

1. 웹쟁이 무료소스 - http://webjangi.com/design/freetemplate

 

다양한 템플릿 관련 무료 소스들을 받을수 있고, 사이트가 한글로 되어있어, 편하다는 장점이 있다. 

 

 

 

웹쟁이 | 무료 웹소스 제공

무료디자인소스, 무료PSD 다운, 무료템플릿, 반응형웹 제작, html5, 제이쿼리, 무료 스크립트, 그누보드CMS,워드프레스

www.webjangi.com

2.Colorlib - https://colorlib.com/wp/

 

HTML 과 함께 Bootstrap을 이용하여 만든 템플릿들이 있다. 카페고리별로 볼 수 있기 때문에 편리하다.

 

Colorlib - Probably The Best WordPress Themes

Probably The Best WordPress Themes

colorlib.com

3.Webflow - https://webflow.com/

 

반응형 웹 템플릿들을 살펴볼수 있는 사이트 이다.

 

 

 

Responsive web design tool, CMS, and hosting platform | Webflow

Build responsive websites in your browser, then launch with our world-class hosting or export your code. Discover the professional website platform built for your business.

webflow.com

4. Free css - https://www.free-css.com/ 

css 관련된 디자인과 템플릿들을 살펴볼수 있고 무료 템플릿들을 다운로드 받을 수 있다. 

 

 

Free CSS | 2950 Free Website Templates, CSS Templates and Open Source Templates

What's On Offer Free CSS Templates Why not download 2950 free website templates. All of the templates have been built using CSS & HTML or XHTML Premium CSS Templates If you can't find a free CSS website template that suits your needs, then why not take a l

www.free-css.com

다양한 무료 템플릿 관련 사이트들이 있지만 그중에서도 쉽고 다양한 디자인들이 있는 사이트들을 골라 보았다. 

무작정 나만의 디장인을 찾아서 만들어 나가는 것보다는 기존의 것들을 살펴보고 나의 것을 조금이라도 반영할 수 있도록 하고 싶다.

 

이 사이트들 중, 내가 하고 싶은 디자인과 가장 비슷한 것들을 찾아서 스터디 해볼 예정이다. 

 

728x90
728x90
728x90

+ Recent posts