스타일 CSS
Cascading Style Sheets
CSS로 하는게 비용이 적게 들기 때문에 가능하다면 CSS로 처리하는게 좋다.
/* absolute는 최대한 지양하고 다른 방법을 활용해보자 */
main {
display: table;
height: 540px;
div {
display: table-row;
height: 60px;
}
}
parent {
child {
height: 100%;
overflow-x: hidden;
}
parent {
display: flex;
flex-direction: column;
child {
flex: 1 1 100%;
}
child {
flex: 1 1 80px;
}
}
parent {
child{
position: stikcy;
bottom: 0;
}
}
/* ellipsis */
dt {
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
white-space: nowrap;
}
/* 줄 단위 */
dt {
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
/* truncation */
dt {
word-break: break-word;
word-wrap: break-word;
}
/* 반응형은 media query, min/max 하나로 정해서 이용하기 */
@media screen and (min-width: ${NARROW_PC}) {
display: none;
}
/* 해당 미디어에만 적용 */
@media print only (min-width: ${TABLET}) {
background: #111;
}
/* 의미없는 이미지/아이콘은 백그라운드 처리 */
div {
background: transparent url(${heartIcon}) left 12px bottom 12px / 20px no-repeat;
}
/* 클릭 영역을 고려해서 Margin, Padding 설정하기 */
a {
padding: 12px 0 24px;
}
/* 선택자를 잘 활용하기 */
div > span {
font-weight: 500;
}
div + span {
color: #888;
}
/* 요소 뒤에 추가 (&는 this와 유사) */
&::after {
content: "|";
}
/* 마지막 요소 선택 */
&:last-child::after {
display: none;
}
/* flex 단 나누기 */
.parent {
display: flex;
gap: 24px;
.child {
/* flex 내 자식 요소 grow, shrink에 대해서 이해하기 */
flex: 1 1 40%;
}
}
/* 윈도우에서는 다르게 보이기 때문에 원하는 곳에만 스크롤 바가 생길 수 있게 */
div {
overflow-x :hidden;
}
/* MOBILE FIRST라면 default는 MOBILE에 맞추어 작성하기 */
main {
background: #fff;
@media screen and (min-width: ${NARROW_PC}) {
background: #eee;
}
}
/* li는 inline 속성이기에 button의 영역을 잡을 땐 block 등으로 변경 필요 */
li {
display: block;
button {
/* 버튼 스타일 */
}
}
/* 오브젝트 크기에 맞게 조절 */
a {
width: object-fit;
}
/* 하위 레이어 선택 */
div {
pointer-events: none;
}
Last updated