display 속성으로 박스의 시각적인 유형을 바꿔줄 수 있다. 주의할 점은 태그 자체의 요소가 블록 레벨로 바뀌는 것은 아니다.
block
: 요소 전후에 줄 바꿈을 생성한다.inline
: 요소 전후에 줄 바꿈을 생성하지 않는 인라인 요소 상자를 생성한다. 정상적인 흐름에서 공간이 있으면 다음 요소는 같은 줄에 있다.inline-block
: inline 줄 바꿈 없이 한 줄에 놓이지만, block처럼 box-model의 width, height, margin, padding 값을 모두 설정할 수 있다.flex
: 내부 자식 요소들의 위치를 부모 컨테이너 요소 안에서 x, y축 단방향(1차원적)으로 설정합니다.grid
: 내부 자식 요소들의 위치를 부모 컨테이너 요소 안에서 x, y축 모두 이용해(2차원적) 설정합니다.none
: 해당 속성은 접근성 트리에서 해당 요소가 제거됩니다. 이렇게 되면 해당 요소 및 해당 하위 요소가 사라지고, 스크린리더에도 읽히지 않습니다.grid는 지금 당장은 이런게 있다 정도로만 보고 넘어가자.
HTML 요소를 감싸는 상자이다. 4가지 요소로 구성된다.
box model은 블록 박스에 적용되며, 인라인 박스는 가로, 세로, 상하 마진 값이 적용되지 않는다.
padding-top
padding-right
padding-bottom
padding-left
순으로 작성한다.p{
padding: 10px; /* top, right, bottom, left 모두 10px */
padding: 10px 20px; /* top, bottom :10px, left, right:20px */
padding: 10px 20px 30px; /* top:10px, left,right:20px, bottom:30px */
padding: 10px 20px 30px 40px;
}
p{
width: 400px;
margin: auto;
}
p{
width: 400px;
margin: auto 0 auto auto;
}
margin auto는 세로 정렬을 적용할 수 없다.
위 그림에서는 가운데 마진이 30px로 적용된다.
반드시 마진병합 현상을 해결할 필요는 없지만 각 영역의 범위를 분명히 확인하기 어려운 단점이 있다.
border-width
border-style
border-color
content-box
: 기본값. 가로, 세로에 border, padding 포함 xborder-box
: 가로, 세로에 border, padding 포함visible
: 기본값. 넘어도 자르지 않음hidden
: 요소의 크기만큼 맞추기 위해 자름. 스크롤바 제공 xscroll
: 잘라내고 스크롤 제공auto
: 자동으로 콘텐츠가 넘칠 경우 스크롤바 제공border-top-left-radius
border-top-right-radius
border-bottom-right-radius
border-bottom-left-radius
수업 들을 때는 애매했던 것도 이렇게 정리 하다보니 어찌어찌 이해는 간다. 수업 마지막쯤에 로그인페이지 만드는 실습을 내주셨는데 너무 어렵다..