728x90
728x90

10강 : 배경 예쁘게 넣는 스킬들 & margin collapse

1. 기본코드

html

<html>
    <head>
        <meta charset="UTF-8">
        <title>Home</title>
        <link rel="stylesheet" href="css/main.css">
    </head>
    <body>
        
    </body>
</html>

항상 기본 코드는 이런식으로 시작한다. 입력해주고 빈 css파일도 넣어준다

2. Background 사진 넣기

<html>
    <head>
        <meta charset="UTF-8">
        <title>Home</title>
        <link rel="stylesheet" href="css/main.css">
    </head>
    <body>
        <div class="main-background"></div>
    </body>
</html>

3. Background 조정하기

사이즈 조절하기

background-size: cover;

Cover 말고도 퍼센트 단위, 픽셀 단위도 가능하다

  • cover: 알아서 div박스 안에 채워라

→ 이러면 배경화면이 반복되기 때문에 …

  • 배경화면 반복 없애기
background-repeat: no repeat;

이렇게 No repeat을 입력해주면 된다

위치 조절하기

  • 중앙 정렬
background-position : center;

중간에 정렬해준다

  • 배경이 잘리지 않게 고정하는법
background-attachment : fixed;

필터 입히기

  • 블러 필터
filter: blur(5px);
  • 밝아지는 필터
    filter: brightness(70);
  • 어두워지는 필터
filter: brightness(30%);

  • 선명도 조절
filter: contrast(200%);

  • 흑백 필터
filter: grayscale(100%);

그렇지만 얘네는 안쪽에 있는 폰트들까지 전부 적용된다

배경 겹치기

background-image: url(../source/kitchyback.jpeg), url(../source/kichyback.jpeg);

이런식으로 Url 을 하나 더 넣어주면 배경을 겹칠 수 잇다

심심하니까 글넣기

margin collapse 현상

.main-title{
    color : white;
    font: size 50px;
    margin-top: 300px;
}

margin collapse 현상은 브라우저에서 margin이 겹치는 현상이다. 이를 방지하기 위해서는 margin-top, margin-bottom 중 하나를 0으로 설정해야 한다.

<div> 박스 안에 P 태그를 사용헀다.

p태그에 상단 Margin을 주기 위해 Margin-top을 주게 되면 div와 p가 동시에 Margin-top이 생기게 된다.

→ 뭔가 이상하다!

원래 박스들의 테두리가 만나면 margin 이 합쳐진다 (박스가 내부에서 만나든 내부에서 만나든 상관없다)

정확히 말하면

  1. 마진을 하나로 합쳐주고
  2. 혹여나 둘 다 마진이 있으면 둘 중에 더 큰 마진을 하나만 적용하게 된다.

그래서 두 박스의 테두리가 겹치지 않도록 해주면 보다 정확한 마진을 만들 수 있다.

강의 예제에서는 부모 박스의 패딩을 1px이렇게 조금 주는걸로 해결이 가능하다.

2. 오늘의 숙제

제목 밑에 글넣고 버튼 하나만 이쁘게 넣어오십시오.
쇼핑몰 스럽게 이쁘게 디자인 해보라는 말입니다.
  • 글 넣기
<html>
    <head>
        <meta charset="UTF-8">
        <title>Home</title>
        <link href="css/main.css" rel="stylesheet">
    </head>
    <body>
        <div class="main-background">
            <h4 class="main-title">
                Our lifes<br>
                are<br>
                beautiful
            </h4>
        </div>
    </body>
</html>
  • Css
.main-background {
    width: 100%;
    height: 500px;
    background-image: url(../source/kitchyback.jpeg), url(../source/kichyback.jpeg);
    background-size: cover;
    background-repeat: no-repeat;
    float:left;
    
}

.main-title{
    color : black;
    font: size 50px;
    font-weight: bold;
    text-align: center;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    Position: relative;

}

이렇게 은근 예쁘게 보이는 걸 확인할 수 있다.

글씨가 좀 작은 느김

.main-title{
    color : black;
    font: size 50px;
    font-weight: bold;
    text-align: center;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    Position: relative;
    font-size: 50px;

}

Font-size 를 좀 더 늘려줬다

이쁘다 ! 은근 !

 

이제 버튼을 만들어줄 차례이다

<html>
    <head>
        <meta charset="UTF-8">
        <title>Home</title>
        <link href="css/main.css" rel="stylesheet">
    </head>
    <body>
        <div class="main-background">
            <h4 class="main-title">
                Our lifes<br>
                are<br>
                beautiful
            </h4>
            <a href="https://insidepixce.tistory.com" class="tstory">do anything</a>
        </div>
    </body>
</html>
 

버튼 태그로 할 줄 알았는데 a 태그 쓰고 그 안에 버튼 속성을 넣으면 되엇다.

  • 버튼 태그 속성
.tstory {
  background-color: hsl(307, 79%, 72%);
  color: #fff;
  padding: 10px 20px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  font-size: 20px;
  font-weight: bold;
  border-radius: 5px;
  text-align: center;
  position: absolute;
  top: 50%; 
  left: 50%;
  transform: translate(-50%, -50%);
  }
  • 호버 및 포커스 스타일
.tstory:hover,
  .tstory:focus {
    background-color: #540430;
  }

구글링을 하다 좀 재밌는 걸 발견해서 해보았다.

키치함 뿜뿜! 버튼에 커서를 갖다대면 색이 변한다?

키치키치하게 잘 만들어졌다

여기에 들어간 속성을 정리해보겠다

  • Cursor: 마우스 커서의 모양을 지정
  • Text-decoration: 텍스트의 장식(underline, overline, line-through 등)을 지정
  • font-size: 글자 크기를 설정한다.
  • font-weight: 글자 굵기를 설정한다.
  • border-radius: 박스의 모서리를 둥글게 설정한다.
  • text-align: 텍스트 정렬을 설정한다.
  • position: 박스의 위치를 설정한다.
  • top: 박스의 위쪽 여백을 설정한다.
  • left: 박스의 왼쪽 여백을 설정한다.
  • transform: 박스를 변형시킨다
300x250
728x90
728x90

내가 만든 과제: 더 꾸민 버전

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/main.css">
</head>
<body style="background-image:url('source/backgroundsea.jpeg');">
    <div class="mainblogbox">
        <p class="title">insidepixce</p>
        <p>1시간 전</p>
        <div class="titletext">
            <p><strong>우리의 청춘을 썩히지 않아</strong></p>
            <p>너를 만나 같이 더 빛나, 아름다운 시간만 쌓자! 시작이라는 걸 넌 믿을 수 있겠니? 이제야 사랑을 알 것 같아미래의 미래에도 널 사랑한 나란 걸, Ready or not, 가는 거야 나를 믿어 here we go, here we go 온 세상과 저 광야 위로 후회 없이 사랑했다고 말하게 </p>
        </div>
        <div class="titleimage">
            <img src="source/Myselfie.jpeg" class="profile">
    </div>
</body>
</html>
  • 시행착오

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/main.css">
</head>
<body>
    <div class="container">
        <div class="blog-content"> </div>
            <div class= "blog-name"> 
                <img src="source/Myselfie.jpeg" class="blog-profile">
                <div>
                <h4 class= 'testy'>insidepixce</h4>
                <p class = 'testy'>1시간 전</p>
                </div>
            </div>
        <div class="blog-img">
            <img src="source/Myselfie.jpeg" width="100%">
        </div>
    </div>
</body>
</html>
.blog-content {
    width: 80%;
    height: 200px;
    background : Red;
    float:left;

    
}

.blog-img {
    width: 20%;
    height:200px;
    background:yellow;
    float:left;
}

.container{
    width:800px;
   
    float:left;
}

.blog-profile {
    width: 50px;
    float: left;
    
}

.blog-name {

    float:left;
}

.testy{
    float:left;
}



.blog-content {
    width: 80%;
    height: 200px;
    background : Red;
    float:left;

    
}

.blog-img {
    width: 20%;
    height:200px;
    background:yellow;
    float:left;
}



.blog-profile {
    width: 50px;
    float: left;
    
}

.blog-name {

    float:left;
}

.testy{
    float:left;
}

.profile {
    width: 100px;
    display: block;
    margin-left: auto;
    margin-right: auto;
    border-radius: 50%;
    border: 2px solid white;
    float:left;
}

.title {
    text-align: center;
    letter-spacing:2px;
    margin-top: 30px; 
    float:left;
    margin-bottom: 5px; 
    
}

.ido {
    color:black; 
    text-align:center;
    margin-top: 0px; 
    margin-bottom: 0px; 
    float:left;
}

.texty {
    text-align: center;
    color: black;
    font-weight: bolder;
    opacity: 1;
    float:left;
}


#special {
   color: #00AAFF ;
}

.box {
    width: 500px;
    height: 500px;
    background-color: rgba(12, 112, 242, 0.5); /* 반투명한 파란색 */
    padding: 20px;
    box-shadow: 0 0 0 5px rgba(1, 1, 0, 0.5);
    border-radius: 25px;
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-top: 20px;
    float:left;
}

 

 

시행착오 끝에 성공은 하긴 했으나.. \

 

순정 코드

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/main.css">
</head>
<body>
    <div class="container">
        <div class="blog-content">
            <img src="source/Myselfie.jpeg" class="blog-profile">
            <div class="blog-name">
                <h4 style="margin: 8px">insidepixce</h4>
                <p style="margin: 8px">1시간 전</p>
            </div>
            <div class="blog-name">
                <h4>블로그글</h4>
                <p>우리의 미래는 찬란히 빛날거야</p> 
            </div>
        </div>
    <div class="blog-img">
        <img src="source/Myselfie.jpeg" width="100%">
    </div>
</div>
</body>
</html>
.container {
    width:800px;
    color: black;
    float:left;
}

.blog-content{
    width: 80%;
    height: 200px;
    background: #eee;
    float:left;
}

.blog-img {
    width: 20%;
    height:200px;
    background:yellow;
    float:left;
}

.blog-name {
    width: 70%;
    height: 50px;
    background: #eee;
    float:left;
}

.blog-profile{
    width:50Px;
    float:left;
}

300x250
728x90
728x90
  1. 코드를 좌우로 정렬해준다
<html>
    <head>
        <meta charset = "utf-8">
        <title>Document</title>
        <link href = "css/main.css" rel = "stylesheet">
    </head>
    <body class="backgroundimagesea">
        <div class= "container">
            <div class="header"> </div>
            <div class="left-menu"></div><div class="right"></div>
            <div class="footer"></div>
        </div>
    </body>
</html>
  1. css에서 Inline block 설정을 해준다
.left-menu {
    width:20%;
    height:400px;
    background-color: rgba(12, 50, 242, 0.5);
    display: inline-block;

    
}

.right {
    width:80%;
    height:400px;
    background-color: rgba(40, 112, 242, 0.5);
    display: inline-block;
}

.footer {
    width: 100%;
    height: 50px;
    background-color: rgba(12, 112, 242, 0.7);

}

위의 코드는 박스를 만들어 왼쪽으로 정렬시키는 코드다.

display 속성만 inline-block 으로 조정하면 가로로 배치가 가능하다.

inline-block은 “내 폭과 높이만큼 자리차지하게 해주세요” 라는 뜻이다.

간편하지만 태그 사이에 스페이스바 공백이 있다면 그대로 보여준다

→ 가로로 정렬하려면 태그 사이의 공백도 제거해줘야 함

  • 공백제거하는 방법
  1. 주석처리 기호 사용하기
  2. 부모의 폰트사이즈를 0으로 만들기

정상적으로 된다

 

💡 부모 태그로부터 inherit되는 속성은 중요도가 가장 낮다

 

<html>
    <head>
        <meta charset = "utf-8">
        <title>Document</title>
        <link href = "css/main.css" rel = "stylesheet">
    </head>
    <body class="backgroundimagesea">
        <div class= "container">
            <div class="header"> </div>
            <div class="left-menu"></div><div class="right"></div>
            <div class="footer">
                <P>찬란한 미래를 위하여 </P.>
            </div>
           
        </div>
    </body>
</html>

이렇게 글자를 쓰면 이상하게 나온다. 해결책은 Vertical-allign을 사용해야 한다.

중앙 정렬을 하는 역할.

inline을 사용하면 Baseline을 따르게 되기 때문이다.

  1. 코드를 좌우로 정렬해준다
<html>
    <head>
        <meta charset = "utf-8">
        <title>Document</title>
        <link href = "css/main.css" rel = "stylesheet">
    </head>
    <body class="backgroundimagesea">
        <div class= "container">
            <div class="header"> </div>
            <div class="left-menu"></div><div class="right"></div>
            <div class="footer"></div>
        </div>
    </body>
</html>
  1. css에서 Inline block 설정을 해준다
.left-menu {
    width:20%;
    height:400px;
    background-color: rgba(12, 50, 242, 0.5);
    display: inline-block;

    
}

.right {
    width:80%;
    height:400px;
    background-color: rgba(40, 112, 242, 0.5);
    display: inline-block;
}

.footer {
    width: 100%;
    height: 50px;
    background-color: rgba(12, 112, 242, 0.7);

}

위의 코드는 박스를 만들어 왼쪽으로 정렬시키는 코드다.

display 속성만 inline-block 으로 조정하면 가로로 배치가 가능하다.

inline-block은 “내 폭과 높이만큼 자리차지하게 해주세요” 라는 뜻이다.

간편하지만 태그 사이에 스페이스바 공백이 있다면 그대로 보여준다

→ 가로로 정렬하려면 태그 사이의 공백도 제거해줘야 함

  • 공백제거하는 방법
  1. 주석처리 기호 사용하기
  2. 부모의 폰트사이즈를 0으로 만들기

정상적으로 된다

<aside> 💡 부모 태그로부터 inherit되는 속성은 중요도가 가장 낮다

</aside>

<html>
    <head>
        <meta charset = "utf-8">
        <title>Document</title>
        <link href = "css/main.css" rel = "stylesheet">
    </head>
    <body class="backgroundimagesea">
        <div class= "container">
            <div class="header"> </div>
            <div class="left-menu"></div><div class="right"></div>
            <div class="footer">
                <P>찬란한 미래를 위하여 </P.>
            </div>
           
        </div>
    </body>
</html>


이렇게 글자를 쓰면 이상하게 나온다. 해결책은 Vertical-allign을 사용해야 한다.

중앙 정렬을 하는 역할.

inline을 사용하면 Baseline을 따르게 되기 때문이다.

300x250
728x90
728x90

css 파일 만들고 넣는 법

<!DOCTYPE html>

 <html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
</head>  
<body style="background-image:url('backgroundsea.jpeg');">
 <img src = "Myselfie.jpeg" style="width:100px; display:block;  margin-left:auto; 
 margin-right:auto;"> 
 <h1 style="letter-spacing:2px; text-align :center;">future fullstack developer</h1>
 <h3 style="color:blue; margin right: auto; margin left: auto;
 text-align: center;"><strong>nsidepixce</strong></h3>
<p style="text-align: center; color:white;"><strong>우리의 찬란한 일기(본문)</strong><a href = "https://insidepixce.tistory.com/">이동하기</a></p>
<p style="text-align: center;"><strong>동서대학교 정보보안학과 1학년<br> 코딩을 정복하고 말테야!"</strong></p>

</body>
 </html>

 

 

이렇게 길게 적으면 더럽게 보인다. 너무 길면 더러우니 css파일을 만들면 된다.

.css로 끝나면 css파일이다.

 

  • 스타일을 css파일로 다 몰아넣자!
<link href= "css/main.css" rel= "stylesheet">

먼저 html 파일에 css를 넣어주자

.profile {
    width: 100px;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.title {
    text-align: center;
    letter-spacing:2px;
}

.ido {
    color:blue; 
    margin-right:auto; 
    margin-left:auto;
    text-align:center;
}

.texty {
    text-align:center; 
    color:white;
}

이렇게 css 파일을 몰아넣어준다.

<h3 class="ido">오늘따라 뭔가 행복한 느낌<h3>

이런식으로 쓸 수 있다.

```css
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
    <link href="css/main.css" rel="stylesheet">
</head>  
<body style="background-image:url('source/backgroundsea.jpeg');">
    <img src="source/Myselfie.jpeg" class="profile">
    <h1 class="title">future fullstack developer</h1>
    <h3 class="ido"> insidepixce</h3>
    <p class="texty">우리의 찬란한 일기(본문)<a href="https://insidepixce.tistory.com/">이동하기</a></p>
    <p class="title"><strong>동서대학교 정보보안학과 1학년<br>코딩을 정복하고 말테야!</strong></p>
</body>
</html>
```

이렇게 전부 수정해보았다

똑같이 이렇게 잘 뜨는 걸 확인할 수 있다.

 

class의 특징

  • 점찍고 작명할것
  • 이름 중복은 피하자 (유니크하게 작명할것)
  • 비슷하게 쓸수 있는게 있는데, 클래스 명을 안 쓰고 p로 쓸 수도 있다.
p {
    text-allign: center;
}

이런식으로 둘수 도 있다.

  • id속성에도 둘 수 있다
#special {
    text-align:center;
    color:blue;
}

(잘 안 쓴다) - 자바스크립트가 우선이기 때문에.

  • 우리는 이 css파일을 셀렉터라고 한다
  • 만일 Id와 클래스 둘 다 넣는다면?
  • -id가 제일 우선, 그다음 class → tag 순 (style속성이 가장 우선이긴 함)
300x250
728x90
728x90

1. 저번 숙제 정답

<p>안녕하세요<a href="https://naver.com">이동하기</a></p>

내가 적었던 것이랑 비슷했다.

저번 시간에 배운 것

  • 글을 쓸때 <태그>를 사용해야함
  • 가끔 속성넣기 가능
  • 태그안에 태그를 넣을수도 있음

2. 미니 프로젝트 만들기 : 프로필 페이지 만들기

이렇게 만들어 주었다.

<!DOCTYPE html>

 <html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
</head>  
<body style="background-image:url('backgroundsea.jpeg');">
 <img src = "Myselfie.jpeg" style="width:100px; display:block;  margin-left:auto; 
 margin-right:auto;"> 
 <h1 style="letter-spacing:2px; text-align :center;">future fullstack developer</h1>
 <h3 style="color:blue; margin right: auto; margin left: auto;
 text-align: center;"><strong>nsidepixce</strong></h3>
<p style="text-align: center; color:white;"><strong>우리의 찬란한 일기(본문)</strong><a href = "https://insidepixce.tistory.com/">이동하기</a></p>
<p style="text-align: center;"><strong>동서대학교 정보보안학과 1학년<br> 코딩을 정복하고 말테야!"</strong></p>

</body>
 </html>

 

오타가 있는데… 그냥 봐주세요]

body 태그에 style 을 넣어서 background-image까지 넣어보았다.

바다 느낌으로 꾸미려고 했는데 그 느낌이 안 나서 속상한 사람= 나

3. 텍스트의 일부분만 스타일을 변경하고 싶을때

<p>안녕하세요 저는 <span style="color:red">뛰어난</span>개발자입니다.</p>

<span>이라는 태그로 감싼 뒤에 스타일을 주면 된다.

 

.

 💡 span 태그는 display:inline 이라는 스타일 속성을 내포하고 있으며, 이를 가지고 있는 요소는 폭, 넓이 등을 단독으로 결정할 수 없다

 

 💡 높이를 주고싶으면 얘를 감싸고 있는 <p>에 주어야 한다

 

300x250
728x90
728x90

1.Html 안에 글 입력하기

Html <body> 안에 원하는대로 글을 입력해도 좋지만, 태그를 입력하면 속성을 설정할 수 있다

  • <p>태그
<!DOCTYPE html>

 <html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
</head>  
<body>
    <p>우리의 미래는 찬란하다</p>
</body>  
 </html>

 

<p> 는 paragraph의 약자로, 일반 글을 적고 싶으면 이를 사용하면 된다

  • <h> 태그
<!DOCTYPE html>

 <html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
</head>  
<body>
    <p>우리의 미래는 찬란하다</p>
</body>  
 </html>

이렇게 <h> 태그를 사용하였을때 제목이 좀 더 커진것을 볼 수 있다

이런 식으로 h1~h6까지 있는데 입맛에 맞게 사용하면 된다

글을 적고 싶으면 h와 p중 하나를 사용할 수 있다.


2. Html의 주요 태그들

<!DOCTYPE html>

 <html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
</head>  
<body>
<p>우리의 찬란한 일기(본문)</p>
<h1>오늘의 노력은 빛을 발할 거야</h1>
<img src="Myselfie.jpeg"
style="width:100px; height:100px;"> 
<button>버튼인데</button>
<a href= "https://google.com"> 구글로 가는 법</a>
<ul>
    <li>항목1</li>
    <li>항목2</li>
    <li>항목3</li>
</ul>
<ol>
    <li>항목1</li>
    <li>항목2</li>
    <li>항목3</li>
</ol>
</body>

 

  • ol과 ul 의 차이

→ <ol> 은 리스트에 숫자를 붙여서 보여준다

→ <ul> 은 리스트에 동그라미를 붙여서 보여준다

3. 이미지 누르면 구글로 이동하게 하는 법

<a href = "https://naver.com">
    <img src="Myselfie.jpeg"
    style="width:100px; height:100px;">

이렇게 하면 가능하다.

나같은 경우는 사진 크기가 너무 커서 100x100으로 바꿔주었다

이제 밑의 사진을 클릭하면 링크를 타고 이동한다. 네이버로 해보았다.

4. 숙제 (이동하기라는 글자를 누르면 네이버로 이동하게 하기)

<!DOCTYPE html>

 <html>
<head>
    <meta charset="utf-8">
    <title>Document</title>
</head>  
<body>
    <p>우리의 미래는 찬란하다 이동하기</p>
</body>  
 </html>

이 상황에서 이동하기만 눌렀을때 다른 링크로 이동하게 만들고 싶다면?

</head>  
<body>
<p>우리의 찬란한 일기(본문) <a href ="https://insidepixce.tistory.com/">이동하기</a></p>

 

나같은 경우에는 이렇게 만들어줬다.

이 상황에서 옆에 이동하기를 누르면 내 티스토리로 이동된다.

 

300x250

+ Recent posts