태그[속성이름]
[속성이름]에 해당되는 속성을 가진 태그를 모두 선택.
a[href] { font-size: 10px; }
태그[속성이름="변수"]
속성이름의 속성값이 변수와 일치하는 태그를 선택.
a[href="http://www.paullab.co.kr"] { font-size: 32px; }
태그[속성이름~="변수"]
속성이름의 속성값 중에 변수를 하나의 완전한 단어로 포함하는 태그를 선택
a[class~="weniv"] { color: black; }
태그[속성이름^="변수"]
속성의 속성값이 변수로 시작하는 태그를 선택
a[class^="weniv"] { color: black; }
태그[속성이름$="변수"]
속성의 속성값이 변수로 끝나는 요소 선택
a[class$="kr" 또는 ".pdf, .png"] { color: black; }
태그[속성이름*="변수"]
속성의 속성값이 변수를 포함하는 요소 선택
a[class*="weniv"] { color: black; }
~=와 *=의 차이는 *=는 값을 포함하기만 하면 되지만, ~=는 완전한 단어여야 한다.
태그[속성이름|="변수"]
속성의 속성값이 변수 이거나 변수로 시작하면서 하이픈(-)기호가 있는 태그를 선택
a[href|="http"]{ color: black; }
:first-child
:last-child
:nth-child(n)
:nth-child(even,odd)
:hover
:active
:focus 클릭이나 탭과 같은 폼컨트롤시 적용
:checked
존재하지 않는 가상요소를 생성한다.
::before
::after
::selection

주축과 정렬방향을 알아야 정리를 할 수 있겠다.
flex-start, center, flex-end



주축을 기준으로 배열의 위치를 조정하거나, 간격을 설정할 수 있다.
.container {
display: flex;
/* justify-content: flex-start; */
/* justify-content: flex-end; */
/* justify-content: center; */
/* justify-content: space-between; */
/* justify-content: space-around; */
}
주축이 있으면 교차축도 있어야지요.


flex-container는 자동으로 줄바꿈을 해주지 않는다.
그래서 자식요소를 감싸서 줄바꿈을 도와주는 것이 바로 flex-wrap이다.
flex-direction과 flex-wrap을 같이 사용하기 위한 단축속성~
container의 상태에 따라 item의 레이아웃을 결정하는 속성들이다.
item의 크기를 지정. width,height와 다른 점은 axis방향에 따라 달라지고 유연한 크기이다.
기본값은 auto이고 width, height값은 무시됨.
basis 값에서 더 늘어나도 되는지 지정하는 값으로 남은 여백을 할당.
flex-grow 값에 따라 비율로 공간의 크기를 할당받는다.
flex-grow:0 을 주게되면 여백 공간이 아니라 전체 공간을 분할한다.
곧 grid도 배울텐데 ㅎㅎㅎ
flex는 1차원 배열
grid는 2차원 배열로 생각해보기!!