태그[속성이름] : 속성
이름 에 해당되는 속성
을 가진 태그를 모두 선택
a[href] { }
태그[속성이름="변수"] : 속성
이름 의 속성값이 변수와 일치하는
태그를 선택
a[href="https://velog.io/@tnghgks"] { }
태그[속성이름~="변수"] : 속성
이름 의 속성값 중에 변수 를 하나의 완전한 단어
로 포함하는 태그를 선택
a[href^="http"] {}
태그[속성$="변수"] : 속성
의 속성값이 변수 로 끝나는
요소를 선택
a[href$=".pdf"]{}
태그[속성*="변수"] : 속성
의 속성값이 변수 를 포함
하는 태그를 선택
a[href$=".pdf"]{ }
태그[속성|="변수"] : 속성
의 속성값이 변수 이거나 변수 로 시작하면서
뒤에 바로 ‘-’(하이픈)
기호가 있는 태그를 선택
실재로 html에 존재하지 않는 클래스지만 마치 클래스가 존재하는것 처럼 작동
:hover
: 사용자가 마우스를 요소 위에 올렸을 때 적용:active
: 사용자가 요소를 실행할 때(버튼을 누르거나 링크를 클릭할 때) 적용:focus
: 요소에 포커스가 있을 때 적용:checked
: 선택한 상태의 라디오, 체크박스, 옵션 요소를 나타냄input:checked+label{
background-color: lightgreen;
}
가상 요소 선택자는 콜론이 2개(가상 클래스 선택자는 1개),레거시 브라우저 호환을 위한 선택
첫번째 자식
으로 HTML코드에 존재하지 않는 가상요소
를 하나 생성div::before { }
마지막 자식
으로 HTML코드에 존재하지 않는 가상요소
를 하나 생성div::after { }
하이라이트 된 상태의 텍스트
를 선택div::selection { }
선택자와 선택자를 결합해서 사용하는 선택자를 ‘콤비네이터’라고 함
공백
을 사용하여 나타냄자손
을 선택함div a { }
>
를 사용하여 나타냄직계 자식
을 선택함div a { }
+
를 사용하여 나타냄형제 선택자
를 선택함div + ul { }
~
을 기준으로 앞 요소 이후
에 나오는 모든 뒤 요소
를 선택div ~ ul { }
display 속성으로, 내부 자식 박스들의 배치에 영향을 미치는 내부 디스플레이 타입
flex-start
, 중간을 center
, 끝나는 곳을 flex-end
justify-content: flex-start; // 주축의 시작점에 쌓아서 정렬
justify-content: flex-end; // 주축의 끝점에 쌓아서 정렬
justify-content: center; // 가운데 모여서 정렬
justify-content: space-between; // 가용범위의 마진을 요소 사이사이 넣어서 정렬
justify-content: space-around; // 가용범위의 마진을 요소 사이사이 넣고 양끝에도 넣음
Axis
cross-Axis
flex-wrap:wrap
인 상태에서 사용해야 함.flex_container {
display: flex;
align-items: stretch; // (기본값) 요소들을 container의 높이만큼 늘려서 배치
align-items: center; // 교차축의 가운데 정렬
align-items: flex-start; // 교차축의 시작점에 쌓아서 정렬
align-items: flex-end; // 교차축의 끝점에 쌓아서 정렬
}
flex-item
요소들이 강제로 한줄에 배치되게 할 것인지, 또는 가능한 영역 내에서 벗어나지 않고 여러행으로 나누어 표현 할 것인지 결정하는 속성.container {
display: flex;
flex-wrap: wrap; // flex-item 요소들이 내부 로직에 의해 분할되어 여러 행에 걸쳐서 배치
flex-wrap: nowrap; // (기본값) 부모요소 영역을 벗어나더라도 flex-item 요소들을 한 줄에 배치
flex-wrap: wrap-reverse; // wrap 속성값과 동일하지만, 시작점과 끝점의 기준을 반대로
}
flex-flow
는 flex-direction
, flex-wrap
속성의 단축 속성.flex_container { // flex-direction만 사용
flex-flow: row;
flex-flow: row-reverse;
flex-flow: column;
flex-flow: column-reverse;
}
.flex_container { // flex-direction, flex-wrap 같이 사용
flex-flow: row nowrap;
flex-flow: column wrap;
flex-flow: column-reverse wrap-reverse;
}
flex-basis : auto(기본값)
/* <'width'> 지정 */
flex-basis: 10em;
flex-basis: 3px;
flex-basis: auto;
/* 원본 크기 키워드 */
flex-basis: fill;
flex-basis: max-content;
flex-basis: min-content;
flex-basis: fit-content;
/* 플렉스 아이템 내용 크기에 따라 조절 */
flex-basis: content;
/* 전역 값 */
flex-basis: inherit;
flex-basis: initial;
flex-basis: unset;
flex-grow
에 반대되는 개념flex-basis, flex-grow, flex-shrink
속성의 단축 속성flex :1 1 300px; /* flex : flex-basis, flex-grow, flex-shrink */
align-items
속성을 덮어 flex-item
에게 개별적인 align-items
속성을 부여main { display: flex; text-align:center; }
main > article { flex:1; order: 2; } // 요소에 각각 줌
main > nav { width: 200px; order: 1; }
main > aside { width: 200px; order: 3; }