728x90

웹 페이지를 만들 때 어떤 거는 위치를 고정시키고 싶은 게 나올 수 있습니다.

가령 메뉴 같은 거는 위치를 고정시켜 스크롤을 내려도 있게 하는 등으로요.

이때 css를 통해서 위치를 고정시키는 방법이 있습니다.

 

먼저 순서는

fixed를 이용하는 방법과

z-index 순서대로 쓰도록 하겠습니다.

(색깔로 구분 지어놓겠습니다.)

 

간단하게 고정시키고 싶은 것을 css에서

position: fixed를 주면 되는데요.

 

예를 들어 메뉴를 고정시키고 싶은데

아무 조건이 없다면 다음과 같이 스크롤을 내리면

메뉴가 스크롤 된만큼 사라지는 것을 볼 수 있습니다.

 

 

 

이걸 간단하게

 

 

1. position: fixed

 

를 이용해서 할 수 있습니다. css 코드는 아래와 같습니다.

.menu{
    position: fixed;
    top:0;
    left:0;
    height: 80px;
    width: 100%;
    background-color: gray;
    
}

.test{
    height: 1500px;
}

 

 

이렇게 스크롤을 내려도 고정되어 있는 모습을 확인할 수 있습니다.

 

 

 

2. z-index

다음은 fixed와 그 외에 포지션과 같이 사용할 때입니다.

 

예를 든 상황으로는 각 각 일정한 크기의 div를 선언한

상태로 초기 상태는 아래 그림과 같습니다.

 

이후 position을 absolute를 준다음

각 각 left를 통해 크기를 변경해보면

 

 위 그림처럼 나오게 되는데요.

여기서 가운데 노란색을 나오게 하고 싶다

그렇다면 다른 두 div 보다 z-index를 주시면 됩니다.

숫자가 클수록 더 우선순위가 높은 것으로,

주의할 점은 px나 다른 단위를 붙이시면 안 됩니다.

 

일단 html 코드와 css 코드입니다.

 

html

<div class="A hei"></div>
<div class="B hei"></div>
<div class="C hei"></div>

 

 

혹시라도 해보고 싶으시다면 body 태그 안으로 위 3 div를 넣어주시면 됩니다.

 

 

css

.hei{
    height: 200px;
    width: 100px;
    float: left;
    
}

.A{
    position: absolute;
    left: 20px;
    z-index: 20;
    display: inline;
    background:red;
}

.B{
    left: 50px;
    position: absolute;
    z-index: 40;
    background-color: yellow;
}

.C{
    position: absolute;
    left: 100px;
    z-index: 30;
    background: green;
}

 

저는 가운데 div 노란색을 가장 앞으로 나오게 하고 싶어서 가장 높게 설정해주었습니다.

 

그럼 이렇게 노란색이 가장 크게 나오게 되죠.

 

 

원래 메뉴를 고정시키고 반응형으로 만들다 보니 상대적으로 포지션을 주었던 것 때문에

문제가 발생하다가 이렇게 알아보고 하게 되었습니다.

저는 메뉴를 fixed로 주고 그 아래 콘텐츠를 relative로 주었었는데요.

생각한 것처럼 하려다 보니 z-index를 사용해서 해결이 되었습니다.

저도 공부하는 입장이라 아직 부족하고 잘못한 코드가 있다면

댓글로 남겨주시면 감사하겠습니다.

 

 

 

 

 

 

728x90
728x90

 

안녕하세요 오늘은 HTML을 꾸며주는 CSS에 대해 간단하게 알아보고자 합니다.

먼저 간단하게 HTML과 CSS를 설명드리자면

 

HTML은 구조나 뼈대를 생각하시면 됩니다.

CSS는 그 만들어진 것을 꾸며주는 것으로 생각하시면 되겠습니다.

 

예를 들어 HTML은 집 구조를 만들었다 치고

CSS는 인테리어를 한다고 생각하시면 되겠습니다.

 

 

CSS를 적용하는 방법은 3가지가 있습니다.

 

 

1.인라인 스타일(Inline style)

2.내부 스타일 시트(internal style sheet)

3.외부 스타일 시트(External style sheet)

이 3가지 방법이 있는데요.

 

이제 알아보도록 하겠습니다.

먼저 

 

1.인라인 스타일입니다.

 

 

인라인 스타일은 태그 바로 안의 스타일을 넣어 꾸며주는 것인데요.

<h1 style="color:green;">안녕하세요</h1>

 

이렇게 HTML 태그 안으로 넣어주시면 CSS가 적용된 것을 확인할 수 있습니다.

빨리 확인하려고 할 때 사용하는 방법입니다.

개발자 도구에서 변경을 하시면 바로 인라인 스타일에 들어가 있는 점을 확인하실 수 있습니다.

물론 다시 원 코드내에 해야 완전하게 적용됩니다.

 

 

 

 

2. 내부 스타일 시트

 

내부 스타일 시트 방법은

태그 안으로 넣는 것이 아니라 html 문서 내부에 스타일 시트를

만들어서 사용하는 방법입니다.

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .test{
            color: blue;
        }
    </style>
</head>
<body>
    <h1 class="test">안녕하세요</h1>
</body>
</html>

 

 

이렇게 style 시트 안에 넣어서 바꾸고 싶은 것을 가져오는데요.

태그만 선택해서 할수도 있습니다만, 그렇게 되면 모든 태그가 다 바뀌기 때문에

클래스나 아이디를 통해 바꾸고 싶은 것들만 바꾸게 됩니다.

클래스 같은 경우 .클래스명

아이디 같은 경우 #아이디명

 

이렇게 해서 적용할 수 있습니다.

그래서 위에서는 클래스를 가지고 바꾸기 때문에. test를 이용한 점을 확인하실 수 있습니다.

다만 우선수위에 따라 인라인 스타일과 내부 스타일 방법이 같이 있을 경우 인라인 스타일이

적용됩니다. 그래서 빨리 확인할 때 사용하는 방법이죠.

 

 

 

3. 외부 스타일 시트

이 방법이 다른 사람들의 코드를 봤을 경우 가장 많이 보는 방법일 것입니다.

link를 통해 다른 css 파일을 연동하는 것인데요.

head부분에 link를 통해 외부 css파일을 연동시킵니다.

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="styles.css">
    
</head>
<body>
    <h1 class="test">안녕하세요</h1>
</body>
</html>

 

 

이렇게 타이틀 아랫부분을 보시면 link를 통해 연동시킵니다. 다만 혹시라도 연동이 잘되지 않는다면,

href 경로 부분을 확인해보셔야 할 것입니다. 파일 이름이 다르거나 또는 경로가 달라서 그럴 것입니다.

보통 html 파일과 css파일을 같이 생성하시겠지만 다른 폴더에 생성했을 경우는 ./ 를 통해

해당 위치에 가셔야 합니다.

 

css 파일에 코드를 이렇습니다.

 

 

.test{
    color: red;
}

 

 

 

이렇게 하게 되면 색깔이 빨간색으로 바뀌게 됩니다.

다만 이것도 우선순위가 1. 인라인 2. 내부 스타일 3. 외부 스타일 

이런 식이라 혹시라도 인라인이나 내부 스타일을 적용했을 경우 외부 스타일과 겹치면

생각한 것처럼 적용이 안됩니다.

그럴 경우 인라인이나 내부 스타일을 제거하는 방법으로 해결해야 할 것입니다.

 

오늘은 이렇게 CSS에 대해 간단하게 알아보았습니다.

 

감사합니다.

 

728x90

+ Recent posts