CS

CSS 기본 지식

땅지원 2022. 7. 5. 14:27

주석 : /**/ 

웹페이지 검사를 실시하면서 margin, padding 같은 사소한 것들을 잡아내보자

https://caniuse.com/

 

Can I use... Support tables for HTML5, CSS3, etc

 

caniuse.com

<link>

<link rel="stylesheet" href="style.css">

css파일을 따로 만든다음에 html 파일 위에 추가해서 css를 추가한다.

 

● id, class, tag 우선순위

  <style>
    #active {
      color:red;
    }
    .saw {
      color:gray;
    }
    a {
      color:black;
      text-decoration: none;
    }
    h1 {
      font-size:45px;
      text-align: center;
    }
  </style>
</head>
<body>
  <h1><a href="index.html">WEB</a></h1>
  <ol>
    <li><a href="1.html" class="saw">HTML</a></li>
    <li><a href="2.html" class="saw" id="active">CSS</a></li>
    <li><a href="3.html">JavaScript</a></li>
  </ol>

CSS의 style에서 id > class > tag 우선순위를 정할 수 있다.

 

● Block, Inline element

<h1>은 한줄 전체를 쓰는 block level element이고 <a>는 inline element이기 때문에 자신의 컨텐츠 크기만큼 블록을 차지한다.

하지만 그림처럼 display의 값을 변경하면 자유롭게 사용 가능

    <style>
        h1{
            border-width:5px;
            border-color:red;
            border-style: solid;
            display:inline;
        }
        a{
            border-width:5px;
            border-color:red;
            border-style: solid;
            display:block;
        }
    </style>

border : 테두리
border - width : 테두리 두께
border - color : 테두리 컬러
border - style : 테두리의 스타일 ex) 단선인지 실선인지

block level element : 화면 전체를 쓰는 태그
inline element :  자기 자신의 크기만큼 갖는 태그

display : 속성 ex)inline, block
display : none; 태그를 안 보이게 할 수 있음.

padding : 콘텐츠와 테두리 사이의 여백
margin : 테두리와 테두리사이의 간격

● 그리드(Grid)

block level element를 사용하려면 div (디자인 하는데 사용) -> 화면 전체를 쓰기 때문에 자동 줄바꿈
inline level element를 사용하려면 span
grid를 사용하면 상자간의 비율을 조절할 수 있고 상자 안에 넣는 글자수에 따라 자동으로 크기가 조정됨.
선택자를 쓸 때도 선택자가 많아지면 어떤 것을 그리드 하는지 헷갈릴 수 있음.
따라서 #grid ol 이런 식으로 그리드 뒤에 선택자를 붙여줘서 구분

    <style>
        #grid{
            border:5px solid pink;
            display:grid;
            grid-template-columns:150px 1fr
        }
        div{
            border:5px solid gray;
        }
    </style>
</head>
<body>
<div id="grid">
    <div>땅지원</div>
    <div>이지원</div>
</div>

'grid-template-columns'에 대해서 첫번째 인자는 웹페이지 크기에 상관없이 고정적인 150px 이라는 값을 가지고 두번째 인자는 1fr, 나머지 비율에 대한 전체를 가지게 된다.

 

1fr 1fr을 하게되면 두 인자는 1:1의 비율로 웹페이지의 크기에 따라 1:1의 비율을 가지고 변화

2fr 1fr을 하게되면 두 인자는 2:1의 비율로 웹페이지의 크기에 따라 2:1의 비율을 가지고 변화

1fr 2fr 1fr도 똑같이 1:2:1의 비율로 변화

<style>
    #grid{
      display: grid;
      grid-template-columns: 150px 1fr;
    }
    #grid ol{
      padding-left:33px;
    }
    #grid #article{
      padding-left:25px;
    }
  </style>

id grid안에 있는 <ol> tag와 id article에 대한 부분을 따로 style 지정 할 수 있음

 

 

● 반응형 미디어

다양한 웹페이지의 모습에 따라 보여지는 모습을 다르게 하고 싶을 때 설정하는 것

ex) 가로가 800px이하일 때 웹페이지의 구성이 달라지게 하고싶다.

/*screen width > 800px*/
<style>
    @media(min-width:800px){
        div{
            display:none;
        }
    }
</style>

/*screen width < 800px*/
<style>
    @media(max-width:800px){
        div{
            display:none;
        }
    }
</style>

max: 800보다 작을 때 아래 명령이 작동된다. 

min: 800이상 부터 아래 명령이 작동된다.