반응형

우선 첫번째로 수평 정렬 하는 방법은 text-align: center; 를 하면 된다.

수직 정렬에 대한  4가지 방법을 소개한다.

1) line-height를 이용한 방법 ( 텍스트 가운데에 오게하기 )

line-height 는  줄바꿈을 의미하는 css 이다. 코드를 통해 보자. 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>연습</title>
    <style>
        * { margin: 0; padding: 0;}
        .box1 {
            width: 100px; height: 100px;
            border: 1px solid black; text-align: center;
            line-height: 100px;
        }
    </style>
</head>
<body>
    <div class="box1">가운데 정렬</div>
</body>
</html>

line-height의 값을 height의 값과 동일하게 주면 가운데로 오게 된다. 이 때 font마다 조금의 차이가 있으니

height의 크기에서 +- 2px 정도 눈으로 보면서 맞추면 좋다.

 

2) display : table을 이용한 방법

이 방법은 table형태로 바라 보고 수직정렬을 하는 것이다.  코드를 보자

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>연습</title>
    <style>
        * { margin: 0; padding: 0;}
        .wrap {
            width: 100px;
            height: 100px;
            display: table;
            border: 1px solid black;
        }
        .box1 {
            width: 100px; height: 100px;
            display: table-cell;
            vertical-align: middle;  // table-cell 이 되면 vertical-align:middle 가능
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="box1">가운데 정렬</div>
    </div>
</body>
</html>

이 방법은 언제쓰는가?

line-height 방법은 텍스트가 1줄인 경우에는 가운데 정렬이 가능하다. 하지만, 두줄이상이 되면 가운데 정렬이 아닌 텍스트가 박스를 벗어나게 된다. 그렇기 때문에 텍스트가 2줄 이상일 때는 line-height 방법을 사용하지 못한다. 그럴 때는 이 방법과 뒤에나오는 방법을 사용하면 된다. 

단점으로는 하나의 텍스트를 가운데 정렬하는데에 두개의 박스를 생성해야하는 단점이있다.

 

3) margin,padding을 이용한 방법

이것도 위의 table 방법과 비슷하게 두개의 박스를 생성해야하는 단점이 있다.

1. margin 으로 하는 방법.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>연습</title>
    <style>
        * { margin: 0; padding: 0;}
        .wrap {
            width: 100px; /* 부모요소도 마찬가지로 height 값 주지 않고 자식에 따라 변하게함.*/
            border: 1px solid black;
        }
        .box1 {
            width: 100px; 
            margin: 100px 0; /* height 값을 주지 않고 margin값으로 가운데오게함.*/
            text-align: center;
            background-color: #303030;
            color: white;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="box1">가운데 정렬</div>
    </div>
</body>
</html>

margin값으로 가운데 정렬

위의 margin을 padding으로 바꿔도 가운데 정렬은 가능하다.

padding으로 가운데 정렬

4) position 을 이용한 방법

position 요소를 이용해서 가운데 정렬하는 방법이 있다.

 

position은  relative, absolute, static, fixed 등 이있다. 최근에는 sticky 라는 것도 추가되었다.

 

Position에 대해서 간단하게 설명하고 수직정렬하는 방법을 작성하겠다.

 

- position은  화면위에 붙이는 스티커라고 생각하면 된다. -

 

position

- static -> 그냥 기본 속성이 static 이다. position 값을 주지 않는 모든 박스들은 static이다. z-index 값을 줄 수 없음. top, left 값도 줄 수 없음.

 

- relative -> relative는 자신의 위치에 기준하여 top, left 등으로 움직일 수 있다. top:10px 하면 자신이 위치한 곳에서 10px 아래로 이동하게 된다. 하지만  relative는 꼭 absolute의 기준점으로 사용하길 권장함

 

- absolute -> absolute는 부모의 위치를 기준으로  top, left 등 움직일 수 있다. 여기서 부모의 position 값은 relative or absolute fixed 등이 올 수 있다. ( absolute 가 부모여도 그위치를 기준으로 움직임. 가장 근처의 relative를 찾아서 그 것을 기준으로 움직이는거 아님)

 

- fixed -> top ,left 등을 사용할 수 있으며 정해준 위치에 고정되어 스크롤 되어도 화면에 붙어있어서 따라온다.

 

자 그럼 이제 코드를 보자.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>연습</title>
    <style>
        * { margin: 0; padding: 0;}
        .wrap {
            width: 200px;
            height: 200px; 
            border: 1px solid black;
            position: relative;
        }
        .box1 {
            width: 98px;
            height: 98px;
            border: 1px solid red;
            position: absolute;
            text-align: center;
            top: 50%;
            left: 50%;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="box1">가운데 정렬</div>
    </div>
</body>
</html>

위 코드의 결과

가운데 정렬이 잘 되었는가? 아니다. position: absolute 후 

top: 50%, left: 50% 를 하면 왜 가운데 정렬이 안될까? 그것은 기준이 가운데가 아니라  기준이 왼쪽 위이기 때문이다.

 

그래서 50% 50% 이동해도 저 기준점이 가운데에 오게 되는 것이다. 박스를 가운데에 오게 하려면 코드를 추가해야한다.

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>연습</title>
    <style>
        * { margin: 0; padding: 0;}
        .wrap {
            width: 200px;
            height: 200px; 
            border: 1px solid black;
            position: relative;
        }
        .box1 {
            width: 98px;
            height: 98px;
            border: 1px solid red;
            position: absolute;
            text-align: center;
            top: 50%;
            left: 50%;
            /*
            margin-top: -50px;
            margin-left: -50px;  margin값을 주거나 transform으로 변경을해줘야함.
            */
            transform: translate(-50%, -50%);
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="box1">가운데 정렬</div>
    </div>
</body>
</html>

이런식으로 box1의 크기의 절반에 해당하는 만큼 이동시켜줘야 박스의 가운데로 오게된다.

위 코드의 결과물

이런식으로 박스가 가운데로 오게된다. 텍스트 정렬은 line-height를 이용하면 가운데 정렬이 쉽게 될것이다. 

또한 박스의 크기를 콘텐츠의 크기만큼 맞춘다면 글자가 가운데오도록하는 효과를 가져올 수 있을 것이다.

 

 

아래의 경로를 이용해서 직접 코드를 타이핑해보면서 확인하면 좋을거같습니다!

https://www.w3schools.com/html/tryit.asp?filename=tryhtml_intro 

 

Tryit Editor v3.7

Page Title My First Heading My first paragraph.

www.w3schools.com

 

 

틀린 부분이 있다면 지적해주시면 감사하겠습니다.

반응형
반응형

HTML파일을 여는 아주 쉬운방법

1) 크롬,인터넷 익스플로러로 열기.

1단계)크롬, 인터넷 익스프롤러를 연다.

2단계)windows기준) - >   ctrl + o(영어)

        mac 기준)   --  > command+o(영어)를 누른다.

3단계)파일의 위치를 찾아 연다.

4단계) html 문서의 코드를 보고싶다면 우측 클릭후 소스보기 or 검사 누르기

 

2) html 편집기를 통해서 연다.

편집기는 다양합니다. 아주 익숙한것이 있죠 ㅎㅎ

1)메모장

1단계 ->  메모장을 연다.

2단계 -> ctrl+o 를 누른다. or 왼쪽 상단에 위치한 파일->열기

3단계 - > 파일을 찾아 연다.

 

그런데 공부를 목적으로 하거나 코드를 수정할 일이 생긴다면 메모장을 이용해서해도되긴하는데

불편할겁니다. 그래서 추천드리는것이  VSCODE 입니다.!

vscode를 통하면 아주 보기 좋게 편집이 가능합니다 ㅎㅎ

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

이곳에서 다운로드 받으시면 됩니다 !

반응형
반응형

안녕하세요 컴커니어입니다.
글의 가독성을 높이기 위해서 설명을 하기전에 1번2번3번 카테고리를 정해놓고 그것을 누르면 정보가 담겨있는 글로 이동하는 방법에 대해서 궁금증이 생겨서 html로는 어떻게 하면 보여줄 수 있을까??

생각이 들어서 글을 써봅니다. 

 

예시)

 

See the Pen 코드펜 by dnjs2618 (@dnjs2618) on CodePen.

이렇게 원하는 부분에 id값을 주고 a태그를 이용하여 아이디값으로 이동하게끔하면 됩니다.

반응형
반응형

안녕하세요.

컴커니어입니다.

HTML로 웹사이트를 만들어서 수익창출을 하고 싶은데 그러려면 제가 HTML을 사용할 공간이 필요하잖아요?

메모장이라는 편집기가 있지만,다소 불편한 점이 많더라고요..

그래서! 검색을 해보았습니다.

2019 HTML BEST EDITOR

검색 결과

1번에 있는 Atom편집기를 사용하기로 했어요 ㅎㅎ

설치

https://atom.io/

 

A hackable text editor for the 21st Century

At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config file. We can’t wait to see what you build with it.

atom.io

가서 다운로드 받았어요. 무료이고 다운로드 받는 시간도 적게 들어서 금방했어요 ㅎㅎ

사용법

 처음에 열면 가이드랑 이것저것 많이 나오는데요 다 x를 눌러서 없애면됩니다!

제가 웹사이트를 만들거면은 그 파일들을 보관할 폴더가 필요하잖아요?

바탕화면에 폴더를 하나 만들어주세요.

저는 폴더이름을 web이라고 지었어요.

그 폴더를 아톰에서 여는 방법은 간단합니다.

 

 

1.왼쪽 상단에 file클릭

2.open folder 클릭 후 폴더를 엽니다.

아니면 간단하게 Ctrl+shift+O(알파벳)를 동시에 눌러서 폴더를 열어도 됩니다!

 

다음으로는, 파일을 만들어서 html을 작성한 내용을 저장할 공간을 만들거에요.

 

1.왼쪽 상단에 file클릭

2.New file 클릭하여 생성(이름은 (이름).html로 끝나게 지어야 합니다.)

마찬가지로 간단하게 Ctrl+N을 눌러서 새로운 파일을 만들 수 있습니다.

 

왜 .html로 파일명이 끝나야 할까?

.dox .pdf 등등 워드같은거는 끝날때 이런식으로 파일명을 저장해야하잖아요.

html을 만든 사람들도 약속을 하나 했어요 확장자는 항상 .html로 하자고요

저희도 그 약속에 따라야 할거같습니다.(제가 html을 만든 장본인이 아니기때문에 저는 따르겠습니다.)

 

 

저는 작성한 코드의 결과물을 바로바로 보면서 코딩을해야 좀 더 시간을 절약할 수 있다고 생각합니다.

그 방법은 무엇일까요?

1. 인터넷 빈창을 띄웁니다.(크롬 추천드려요)

2.Ctrl+O(알파벳) 을 눌러서 처음에 만든 폴더 안에 확장자가 .html로 끝나는 파일을 엽니다.

이러면 아톰에서 작성한 제 코드의 결과물을 바로바로 볼 수 있습니다.

 

이것으로 아톰 설치와 사용하는 방법에 대해서 공부해봤습니다.

웹사이트를 만들어서 수익창출을 하는 날에 한발짝 다가간거같네요.

유익한 정보가 되길바래요 ㅎㅎ

반응형

+ Recent posts