VSC EXTENSION1
VSC EXTENSION2
VSC 단축키
VSC Emmet
- 셀렉터 : 태그이름, id, 클래스를 선택
- 속성 : 요소에 적용할 수 있는 내용 . {속성명: 속성값;}
- 세미콜론(;) : 속성끼리 구분
: 관심사 분리를 위해 외부스타일 선호.
<nav style="background: #eee; color: blue">...</nav>
<style></style>
태그를 사용하여 지정<head>
<style type ="text/css">
h1 {font-family:'굴림체'
font-size:30px; }
</style>
</head>
<head>
<link rel="stylesheet" href="index.css" />
<link rel="stylesheet" href="layout.css" />
</head>
Id | class | |
---|---|---|
표기방식 | #이름 | .이름 |
주의사항 | 한 문서에 단 하나의 요소에만 적용 | 동일한 값을 갖는 요소 많음 |
사용용도 | 특정 요소에 이름을 붙이는 데 사용 | 스타일의 분류(classification)에 사용 |
(예)
<h4>나 <p> 요소(element)가 여럿 존재 navigation section 아래에 있는 <h4> 요소에만 색을 바꿀때 사용
- html
<h4 id="navigation-title">This is the navigation section.</h4>
- css
#navigation-title { color: red; }
하나의 class를 여러 요소에 적용하기
(예)navigation section의 <li> 요소와 footer의 <li> 요소를 구분하여 스타일 적용. id는 문서 내에 단 하나의 요소에만 적용할 수 있는 유일한 이름이므로 모든 <li> 요소에 id를 추가하고 CSS를 적용할 수 없음. li요소에 동일한 class를 추가하면 동일한 스타일을 여러 엘리먼트에 적용할 수 있음.
- html
<ul> <li class="menu-item">Home</li> <li class="menu-item">Mac</li> <li class="menu-item">iPhone</li> <li class="menu-item">iPad</li> </ul>
- css
.menu-item { text-decoration: underline; }
여러 개의 class를 하나의 엘리먼트에 적용하기
여러 class를 하나의 요소에 적용하기 위해서는, 공백으로 적용하려는 class의 이름을 분리
- html
<ul> <li class="menu-item selected">Home</li> <li class="menu-item">Mac</li> <li class="menu-item">iPhone</li> <li class="menu-item">iPad</li> </ul>
- css
.menu-item { text-decoration: underline; } .selected { font-weight: bold; color: #009999; }
.box {
color: #155724; /* 글자 색상 */
background-color: #d4edda; /* 배경 색상 */
border-color: #c3e6cb; /* 테두리 색상 */
}
- h1, p, span에 박스크기를 설정해주었을 때 css
h1 { background: gray; width: 60%; } /* h1은 줄바꿈이 적용되는 block태그 */ p { background: rgba(255,84,104,0.3); width: 80%; height: 200px; } /* p는 줄바꿈이 적용되는 block태그 */ span { background: yellow; width: 100px; height: 100px; } /* span은 줄바꿈이 적용되지 않는 inline태그 - 박스 크기 설정이 의미 없다. */ ```
박스의 종류
block, inline-block, inline의 특징
block | inline-block | inline | |
---|---|---|---|
줄바꿈 | 줄바꿈이 일어남 | 줄바꿈이 일어나지 않음 | 줄바꿈이 일어나지 않음 |
기본 너비(width) | 100% | 글자가 차지하는 만큼 | 글자가 차지하는 만큼 |
width, height | 가능 | 가능 | 불가능 |
- inline 요소를 inline-block으로 변형
span에게 display: inline-block; 적용하여 width, height를 사용 가능하게 바꿈
span { background: yellow; /* 여기부터 */ display: inline-block; /* 여기까지 변경된 내용입니다. */ width: 100px; height: 100px; }
박스 종류 | 예 |
---|---|
block | <div> <p> <h1> <header> <footer> <nav> <main> <section> <article> <aside> <figure> <details> <ul> <ol> <li> |
inline | <span> <a> <button> <img> <input> <select> <object> <script> <embed> |
- border(테두리)를 기준으로 padding(안쪽 여백)과 margin(바깥 여백)이 있습니다.
p {
border: 1px solid red; /*테두리를 실선으로 확인*/
}
p { /* 위,우,아래,좌 - 시계방향 */
margin: 10px 20px 30px 40px;
}
p { /* 위아래,좌우 */
margin: 10px 20px;
}
p { /* 모든방향 */
margin: 10px ;
}
p { /* 방향을 특정 */
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
}
p { /* 음수 값을 지정 가능 - 다른 엘리먼트와의 간격이 줄어듬.
(사용 예)화면(viewport)에서 사라지게, 다른 엘리먼트와 겹치게 가능. */
margin-top: -2rem;
}
p {
padding: 10px 20px 30px 40px;
}
박스 크기 < 콘텐츠 크기
: 콘텐츠가 박스 바깥으로 빠져나옴. overflow: visible; /* 박스 밖으로 넘치는 내용 보임 */
overflow: hidden; /* 숨김 */
overflow: scroll; /* 스크롤 - 항상 스크롤바 보임 */
overflow: auto; /* 내용 따라 스크롤 */
overflow: hidden visible; /* overflow-x, overflow-y를 지정 */
overflow 속성은 x축과 y축을 지정해 가로 방향으로 스크롤하거나 세로 방향으로 스크롤 할 수 있게끔 지정할 수 있습니다. overflow-x 속성과 overflow-y 속성을 이용하면 두 방향을 모두 지정할 수 있습니다.
- content-box는 박스의 크기를 측정하는 기본값이지만 대부분의 레이아웃 디자인에서 여백과 테두리를 포함하는 박스 크기 계산법인 border-box를 권장
box-sizing: border-box;
모든 박스에서 여백과 테두리를 포함한 크기로 계산- 일반적으로 box-sizing은 HTML 문서 전체에 적용
* { box-sizing: border-box; /* *은 모든 요소를 선택하는 셀렉터 */ }
- 앞으로 레이아웃과 관련된 이야기를 할 때에는 border-box 계산법을 기준으로 이야기
document.querySelector('.클래스 이름').textContent="바꿀내용"
document.querySelector('#id 이름').textContent="바꿀내용"