aside
<style>
aside{
margin-top:1rem;
}
.side-box {
margin-bottom: 4rem;
border: 1px solid #ccc;
outline: 2px solid #ccc;
outline-offset: 4px;
border-radius: 6px;
padding: .8875rem;
position: relative;
}
.side-box::before {
display: block;
width: 2rem; /*rem 단위 상대적인 크기, 기준값이 있어야 함*/
height: 2rem;
text-align: center;
background-color: #fff;
position: absolute;
top: -1rem;
right: 0;
margin: auto;
}
.side-box a:hover {
color: #7ac69f
}
.side-box h3 {
font-family: 'Amatic SC', cursive;
font-size: 1.875rem;
letter-spacing: .1rem;
text-align: center;
margin: .875rem 0 1.125rem;
}
</style>
목록
<style>
.side-box li {
border-bottom: 1px dashed #ccc;
padding: 1rem .25rem;
display: flex;
}
.side-box li:first-child {
padding-top: 0;
}
.side-box li:last-child {
padding-bottom: .5rem;
border-bottom: 0;
}
.side-box li:before {
display: inline-block;
content: '';
background: #7ac69f;
width: 8px;
height: 8px;
border-radius: 50%;
margin: 6px 10px 0 0;
}
.side-box li a {
flex: 1;
line-height: 1.4;
}
</style>
폼
<style>
.newsletter-form {
display: flex;
margin-top: 1.5rem;
}
.newsletter-form input[type='email'] {
border: 2px solid #ccc;
border-radius: 10px 0 0 10px;
background-color: #fff;
padding: 1rem;
width: 75%;
}
.newsletter-form input[type='email']:placeholder {
color: #ccc;
}
.newsletter-form input[type='submit'] {
background-color: pink;
border-radius: 0 10px 10px 0;
color: #fff;
cursor: pointer;
padding: 1.1rem;
margin-left: -5px;
}
.newsletter-form input[type='submit']:hover {
background-color: rgb(156, 85, 97);
}
</style>
popular-posts, footer
<style>
/* popular-posts */
.popular-posts {
margin-bottom: 2rem;
}
/* footer */
footer {
background-color: #949087;
text-align: center;
padding: 3rem;
}
footer ul {
display: flex;
justify-content: center;
margin-bottom: 2rem;
}
footer ul li {
margin: 0 12px;
}
footer a:hover {
color: #7ac69f;
}
footer small {
color: antiquewhite;
font-size: .875rem;
}
</style>
가로 최소 길이 600px 일 경우
<style>
@media (min-width: 600px) {
.container{
display: flex;
justify-content: space-between;
margin-bottom: 4rem;
padding: 1rem 2.5rem 2.5rem;
}
header {
height: 190px;
}
.page-title {
margin: 1rem 0 2rem;
}
.page-desc {
font-size: 1.125rem;
margin-bottom: 4rem;
}
section {
width: 68%;
margin-bottom: 0;
}
.post-thumb{
margin: 0 1rem 1rem 0;
shape-outside: circle();
float:left;
}
.post-img{
width: 220px;
height: 180px;
}
aside{
width: 26%;
}
.popular-posts{
position: sticky;
top: 1rem;
}
}
</style>
에밋으로 빠르게 코딩하기
텍스트 입력 후 탭키
p ➪ 태그이름
p.text ➪ 태그이름 + class이름
p#text ➪ 태그이름 + id 이름
ul>li ➪ 자식 요소가 있는 태그
ul>li3 ➪ 여러 태그 반복 입력
div+p ➪ 같은 계층 입력
ul>li^div ➪ 한 단계 상위 계층 입력
p{텍스트} ➪ 텍스트 입력
li.menus$3 ➪ 일련번호 붙이기
tab키, enter키
m ➪ margin
mb ➪ margin-bottom
w100 ➪ 100px
w100p ➪ 100%
w100r ➪ 100rem
w100e ➪ 100em
c#0bd ➪ #obd
m10-20-15-20 ➪ margin: 10px 20px 15px 20px
clac(100% / 3)
*연산자 앞 뒤에 꼭 공백 넣기
사용 가능 연산자: + - 곱하기 나누기
height: calc(100vh - 100px);
높이 100vh에서 100px 뺀 값
div {
--number: 500;
width: calc(var(--number) * 1px);
background: #0bd;
padding: 16px;
}
--number라는 변수에 500값을 주고
선택자 속성 내에서 변수 이름으로 사용 가능
CSS 변수, 캐스케이드 변수
:root {
--main-color: 4#db1ec;
}
a {
color:var(--main-color);
}
.btn {
background-color: var(--main-color);
}
:root로 변수를 선언하면 아래 모든 선택자에 같은 값을 줄 수 있음
CSS를 보조하는 새로운 도구
Sass
파일 확장자: .SCSS, .SASS
과정
style.scss 작성 ➪ 변환 ➪ style.css
VS 코드에서 확장기능 설치 필요
mixin 미리 저장한 스타일을 필요한 곳에 불러와 재사용 가능
@mixin circle {
width: 80px;
height: 80px;
border-radius: 50%;
}
div {@include circle;}
@mixin circle($size) {
width: $size;
height: $size;
border-radius: 50%;
}
div {@include circle(60px);}
고정크기
상대크기(기준: 부모요소)
Root em
라이브러리 vs 프레임워크 차이
라이브러리는 기능
프레임워크는 기능을 쓰기 위한 문법. 정해진 형태의 문법을 사용해야 함. 라이브러리를 모아놓았다. 작업에 제한 발생 but 다수의 사람들과 개발을 할 경우 정해진 문법이 있기 때문에 협업 시 용이
사용하기 쉬운 CSS 애니메이션 라이브러리
Animate.css
이미지 hover 시 애니메이션 라이브러리
imagehoverCSS
로딩 시 애니메이션 라이브러리
loading.io
사이트 내 힌트 관련 라이브러리
Hint.css
반응형 기본 골격 사이트
반응형 기본골격 사이트
폰트 사이즈가 단위마다 다르게 적용되고 달라지는 점이 신기했다.
또한 CSS에서 함수를 사용해 적용시킬 수 있다는 점이 흥미로웠다.
애니메이션 라이브러리를 적용시키는데 적용이 되지 않아 다시 해봐야겠다
✏️ 어떻게 해결을 했는가?
✏️ 이렇게 이해를 했다
✏️ 어디까지 이해했지?
폰트 사이즈 단위의 경우 기준이 달라 적용이 다르게 된다.
함수 사용의 경우 자주 쓰이는 값을 저장하면 편리하다
✏️ 다음에 시도해볼 방법
애니메이션 라이브러리를 사용해 버튼, 호버를 적용시켜봐야겠다.
템플릿을 다운 받아보면 Scss, Sass 파일이 있는 경우가 있었다.
그때는 CSS 파일과 어떤 차이가 있는지 알지 못했는데 오늘 알게되었다.
각 속성별 장단점이 있는 것 같다.
라이브러리를 잘 활용하면 빠른 시간에 높은 퀄리티의 페이지를 제작할 수 있을 것 같다.