첫 날이라 임시 팀원들과 간단하게 OT 진행하고 서로의 목표에 대해 이야기하는 시간을 가졌다. 서로의 목표를 이야기하고 구체화하는 과정에서 내가 어떤 목표를 가졌는 지에 대해 자세하게 생각해볼 수 있어서 좋았다!
✔️ 요소에 따라 상속이 되는 요소가 있고 아닌 요소가 있음
상속 o --> text-align
상속 x --> width, border ...
상속이 안되는 요소를 inherit을 사용하여 억지로 상속할 수 있음!
ex)
div { border: 1px solid black }
h1 { border: inherit }
부모에게 있는 요소의 속성을 (상속이 아닌 요소) 억지로 상속
💡 여러개의 html파일에 같은 스타일이 적용되면?
중복되는 코드를 각 html파일에 넣으면 관리가 불편하므로 css 파일로 별도로 관리
css 파일에 중복되는 스타일 작성
조금 다른 부분은 html 파일의 style
margin: 상우하좌
margin: 상하 우좌
margin: 0 auto --> 상하 마진:0 좌우 마진 auto -> 가운데 정렬
margin: 0 auto 0;
💡 box-sizing (내가 자주 헷갈리는 것!!)
💡 display ⭐️⭐️⭐️
시각적으로 요소가 화면에 표시되는 방식
block: 부모로부터 받은 공간을 모두 활용하는 것 --> 가로로 한 줄을 다 쓰는 것! (한 줄에 하나씩 배치)
➡️ 가용 공간이 존재하니 margin: auto 가능!
- 대부분의 요소는 다 block
inline: 콘텐츠 요소 크기만큼만 공간 차지

위는 내가 정한 style.css
아래는 user agent stylesheet --> 기본 제공해주는 css
아래의 h1 display: block을 보면 이 요소가 block인지 inline인지 알 수 있음
👀 헷갈렸던 것
text-align: center --> 컨텐츠만 중간으로 감!! (글자 등)➡️ 텍스트를 가운데 정렬하는 property가 아니라
➡️ Inline 요소를 가운데 정렬하는 property✨!!
속성들의 초기 값이 각 브라우저마다 알아서 css가 적혀있음
❗️ 이렇게 되면 내가 작성하는 css와 사용자 에이전트 시트에서 기본적으로 속성에 적용되는 css가 구분이 안되고 섞여서 내가 원하는 화면을 구상 못할 수도 있음
➡️ User Agent Sheet 초기화 (맨 위에 margin:0)
❗️ 맨 처음엔 레이아웃 잡기!
레이아웃을 잡을 땐 가장 큰 것부터 작업 순위 매겨서 잡으면 된다.
❗️ 꼭 외우기 ! (가운데 정렬하는 법 ⭐️⭐️⭐️)
margin: auto 가용공간 block
div {
background-color: white;
width: 800px;
margin: auto;
}
👀 헷갈렸던 점
css를 적용할 때 배경을 지정해도 바뀌지가 않음
나는 나의 코드가 잘못되었거나 div를 제대로 적용하지 못한 줄 알았는데 그냥 div안에 content가 없어서 배경이 안보이는 거였음!!
❗️ 요소가 얼마나 자리를 차지하는 지 등을 시각적으로 확인하려면 뒤에 배경을 그냥 임의로 둬서 확인해보면 됨
❗️이 때 배경을 확인하려면 꼭 컨텐츠가 있어야 함
div는 block이므로 한줄을 전체로 다 잡는다고 생각하면 된다. (너비)
이때 width를 임의적으로 800으로 지정했으므로 가용공간이 생긴다. (더 사용할 수 있는 공간)
➡️ 이 때 !! margin: auto를 사용하면 가운데 정렬이 가능한 것이다.
보통의 웹사이트는 Header, Content, Footer 이렇게 구성된다.
div가 중첩되다 보면 css적용이 제대로 안된다.
아래처럼 되면 디자인을 각각 할 수 가 없다는 것이다.
<div>
<div>
contents
</div>
<div>
footer
</div>
</div>
➡️ 이럴 때 사용할 수 있는 것이 class이다.
<div class="wrapper">
<div class="header">
</div>
</div>
++ 새로운 마크업(img, 을 했을 때는
em은 상속이 가능한 폰트 크기 속성으로 2배라는 것을 뜻한다.
👀 헷갈렸던 점
margin, padding에서 %개념이 나오면 무조건 부모요소의 너비에서 퍼센트 개념!
margin-top: 20%를 해도 부모요소의 너비의 20퍼센트라는 것이다!
이미지는 크기가 정해져있기때문에 너비만 조정해도 크기가 알아서 조정됨
그 동안은 user agent stylesheet 때문에 알아서 자동으로 정해진 값을 없애고 싶을때 margin: 0, font-size:16px 이런식으로 우리가 직접 지정했다.
하지만 이 방법보다
h1 {
margin: initial; /* 상속 안되는 속성을 초기화 할 때 */
font-size: inherit;
font-weight: inherit; /* 상속 되는 속성을 초기화 할 때 */
}
❗️띄어쓰기에 따라 다르므로 주의
body.type_orange .wrapper --> 바디이면서 타입-오렌지 중에 모든 래퍼
body.type_orange.wrapper --> 바디이면서 타입-오렌지이면서 래퍼인 것
주의 사항
<div class="section">
<h2>Information</h2>
<ul class="list">
<li>Kwon Saebom</li>
<li>spring180@naver.com</li>
<li>Seoul, Korea</li>
</ul>
</div>
li에 css를 적용하고 싶을때
section li
이렇게 진행하면 section -> ul -> li 이렇게 한번 더 거치므로 유지보수에 좋지 않음
.list li
이렇게 진행해야 좋다
ul에 클래스 달아서 최대한 자세하게 표현!
.main .list li
앞에 .main까지 붙여서 main은 main header은 header로 보기 편하게 할 수 도 있다.
배경 이미지의 크기에 따라 반복이 된다.
background-repeat 속성은 기본값이 repeat로 반복되는게 기본값이다.
background-repeat: repeat; // no-repeat
background-position: center; // 가운데로
background-size: 200px 400px; //이미지 크기 조정
background-image: url(images/icon-information.png);
background-repeat: no-repeat;
background-position: right 40px center;
background-position: 오른쪽 정렬, 40px만큼 오른쪽에서 떨어짐, center
클래스의 중요한 특성이므로 이해하고 넘어가자.
<div class="section information">
<div class="section skill">
➡️ 공통 분모 : section 클래스로 묶기
➡️ 다른 요소 : information, skill로 표시
.section {
background-color: white;
padding: 20px;
margin: 20px;
}
.section.information {
background-image: url(images/icon-information.png);
background-repeat: no-repeat;
background-position: right 40px center;
}
.section.skill {
background-image: url(images/icon-skills.png);
background-repeat: no-repeat;
background-position: right 40px center;
}
.section ➡️ section을 class로 갖는 모든 것 스타일링
.section.information ➡️ section과 information 모두 만족하는 것만 스타일링
.section.skill➡️ section과 skill 모두 만족하는 것만 스타일링
❗️ section으로 공통분모를 스타일링 한 다음 각 요소들은 뒤의 나오는 것을 이용하여 개별적으로 스타일링


가운데를 보면 위의 마진-bottom 10px과 아래의 마진-top 10px이 합쳐져서 20px 정도의 거리가 떨어져야하는데 사진과 같이 10px로 마진이 병합된 걸 볼 수 있다.
❗️블록레벨과 블록레벨 사이에서만 일어남
❗️인라인과 블록 사이에서는 안일어남