본문 바로가기

컴퓨터/CSS

CSS

기본편

[HTML에 포함시키기]

  HTML 문서의 head 내에 아래 코드를 추가한다.

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

  위의 코드는 현재 주소 하위의 style 디렉토리를 참조한다. public 하위의 style 디렉토리를 참조하려면 아래 코드를 사용한다.

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

[CSS 저장 디렉토리 생성]

~/app/public$ mkdir style

[CSS 파일 생성]

~/app/public/style$ vi mystyle.css

[단위]

  mm, px, %, em


[폰트]

사이즈 font-size: 15px;
색상 color: Red;

※ 인풋창과 버튼의 폰트 사이즈를 동일하게 맞춰야 서로 높이가 같아진다.


[테두리]

border: 1px solid Black;

[사이즈]

넓이 width: 100%;
높이 height: 50px;

[문단]

문단 정렬 text-align: center;

[여백]

바깥 여백 margin: 10px;
※ 양쪽 바깥 여백 동일하게: margin: auto;
안쪽 여백 padding: 10px;

[배경색]

background-color: Blue;

[간격]

letter-spacing: 글자간격; 
word-spacing: 단어간격; 
line-height: 줄간격;

 

line-height: 값;
심화편

[a태그 스타일 제거]

a:link {
    color: green; 
    background-color: transparent; 
    text-decoration: none;
}//방문 전 링크 상태

a:visited {
    color: pink;
    background-color: transparent;
    text-decoration: none;
}//방문 후 링크 상태

a:hover {
    color: red;
    background-color: transparent;
    text-decoration: underline;
}//마우스 오버했을 때 링크 상태

a:active {
    color: yellow;
    background-color: transparent;
    text-decoration: underline;
}//클릭했을 때 링크 상태

a:hover:not(.active) {
    background-color: #111;
}

.active {
    background-color: #4CAF50;
}

[선택]

* 하위 엘리먼트

article div {}

* 첫번째 엘리먼트

div:last-child {}

* 마지막 엘리먼트

div:last-child {}

* n번째 엘리먼트

td:nth-child(1) {
  //첫번째 요소가 0이 아닌 1임
}

td:nth-child(3n) {
  //모든 3번째 요소
}

* 특정 속성

a[target] {}
a[target="_blank"] {}

[사이즈 기준]

  element 들의 크기를 border를 기준으로 안쪽으로 할지, 바깥쪽으로 할지 결정한다. element 들의 사이즈 기본값은 border 안쪽의 크기로 설정되지만 box-sizing에 border-box 값을 주면 element 들의 사이즈는 border 바깥쪽의 크기로 설정된다.

* {
  box-sizing: border-box;
}

[표 테두리 간격]

#table1 {
  border-collapse: separate;
  border-spacing: 양옆간격px 위아래간격px;
}

#table2 {
  border-collapse: collapse;
}

[미디어 쿼리 지정]

// 기본 CSS를 작성
// 기본으로 작성되는 CSS는 576px보다 작은 화면에서 작동

// 가로모드 모바일 디바이스 (가로 해상도가 576px 보다 큰 화면에 적용)
@media (min-width: 576px) { ... }

// 태블릿 디바이스 (가로 해상도가 768px 보다 큰 화면에 적용)
@media (min-width: 768px) { ... }

// 테스크탑 (가로 해상도가 992px 보다 큰 화면에 적용)
@media (min-width: 992px) { ... }

// 큰화면 데스크탑 (가로 해상도가 1200px 보다 큰 화면에 적용)
@media (min-width: 1200px) { ... }

※ 만약@media (min-width: 768px) { ... }까지만 작성하고 @media (min-width: 992px) { ... }와 @media (min-width: 1200px) { ... }에 대한 미디어쿼리를 작성하지 않았다면 @media (min-width: 768px) { ... }에 정의된 CSS가 테스크탑과 큰화면의 데스크탑의 크기에도 동일하게 적용

[디폴트 스타일 제거]

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

[그림자]

* box-shadow

div {
  box-shadow: 10px 10px 5px 5px grey inset;
}

1. 첫번째 값, 두번째 값: 수평, 수직으로 그림자가 나가는 거리. 첫번째, 두번째 값은 기본으로 꼭 적어줘야 한다.
2. 세번째 값: 그림자가 흐려지는 정도. 생략이 가능하다.
3. 네번째 값: 그림자가 사방으로 번지는 정도. 생략이 가능하다.
4. 다섯번째 값: 그림자의 색깔. 생략할 시 검은색이다.
6. 여섯번째 값: inset 파라미터를 전달하면, 그림자를 내부그림자로 변경한다. 생략시 외부그림자이다.
7. 주의사항: 그림자가 들어갈 자리가 있어야 보인다. 그러므로 다음 엘리먼트와 margin을 이용해 사이를 벌려주자.


 

 

[모서리 둥글게]

#example1 {
  border: 2px solid red;
  border-radius: 25px;
}

#example2 {
  border: 2px solid red;
  border-radius: 50px 20px;
}

[마우스 커서]

cursor: pointer;
cursor: auto;
cursor: default;

[footer 하단 고정]

<style>
.footer {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background-color: red;
  color: white;
  text-align: center;
}
</style>

<div class="footer">
  <p>Footer</p>
</div>

※ position: fixed 는 아래 레이어를 가리고, float: left 는 같은 레이어 내용을 밀어내고 자리를 차지한다.


[토글]

1. HTML

<label for="toggle">아이콘</label>
<input type="checkbox" id="toggle">
<div id="menu">메뉴</div>

2. CSS

#toggle #menu {
  display: none;
}
#toggle:checked + #menu {
  display: block;
}

3. 주의사항

CSS의 '+' 선택자는 바로 뒤의 엘레먼트에만 적용된다. 그래서 체크박스와 메뉴는 서로 앞뒤로 딱 붙어있어야 한다.

'컴퓨터 > CSS' 카테고리의 다른 글

CSS transition  (0) 2022.04.29
CSS transform  (0) 2022.04.29
CSS position  (0) 2022.04.29
CSS flexbox  (0) 2022.01.21
CSS 토글  (0) 2021.02.12