left, right, center, justify
justify 마지막 라인 제외하고 텍스트를 양쪽 끝으로 정렬 -> 다른 라인에 비해 공백의 범위가 너무 커지기 때문에, 적용되지 않는것으로 추측
블록레벨안의 인라인 요소들(텍스트,이미지 등) 정렬함
위와 같은 방법으로 가로정렬하며 세로정렬 하고 싶은 경우 padding,margin 속성을 추가하여 사용하면 된다.
vertical-align: baseline; /* 텍스트의 위치 부모의 베이스라인. 기본값 */
vertical-align: sub; /* 부모의 아래첨자 베이스라인에 맞춰 정렬 */
vertical-align: super; /* 부모의 윗첨자 베이스라인에 맞춰 정렬 */
vertical-align: text-top; /*부모 엘리먼트 폰트의 상단으로 정렬 */
vertical-align: text-bottom; /*부모 엘리먼트 폰트의 하단으로 정렬*/
vertical-align: middle; /*폰트의 중간 위치를 부모의 베이스라인 + x축 높이 절반에 해당하는 위치로 정렬 */
vertical-align: top; /* 인라인 박스를 감싸고 있는 공간의 상단으로 정렬*/
vertical-align: bottom; /* 인라인 박스를 감싸고 있는 공간의 하단으로 정렬 */
고양이 이미지 밑에 약간의 공간이 남는 이유?
인라인 블록이기 때문에. 인라인 블록은 베이스라인이 있다고 판단한다.
vertical-align: bottom; 혹은
display: inline-block 사용하면 된다.
텍스트가 시작하기 전의 빈 공간을 설정할 수 있다. (들여쓰기 공간 설정)
텍스트에 붙는 라인 꾸며주는 속성
상/하단에 라인 그릴 수 있고, 라인 종류랑 색도 지정 가능
but 디자인 목적으로는 잘 사용하지 않고, 보통 a태그 기본값 없애려고 자주 사용함
p{
text-decoration: none;
text-decoration: underline dotted;
text-decoration: underline dotted red;
text-decoration: green wavy underline;
text-decoration: underline overline #FF3028;
text-decoration: line-through;
}
부모 컨테이너를 넘어간 컨텐츠가 어떻게 보여질지
text-overflow 속성은 그 자체만으로 넘친 컨텐츠를 만들어서 처리하지 않습니다.
컨테이너에 overflow:hidden, white-space:nowrap 속성이 같이 사용되어야 합니다.
한줄 말줄임 코드
overflow:hidden; /* 요소를 넘어가는 컨텐츠를 숨깁니다. */
/* 텍스트의 공백을 만났을때 어떻게 처리할지 설정하는 속성입니다. nowrap은 공백을 만나도 줄바꿈하지 않습니다.*/
white-space:nowrap;
text-overflow:ellipsis; /* 요소의 크기를 넘친 텍스트를 말줄임 처리합니다. */
}
여러줄 말줄임 코드
/* -webkit-box, -webkit-box-orient 속성은 웹표준 속성이 아닙니다.
앞으로 삭제되거나 기능이 변경될 수 있기 때문에 주의가 필요합니다. */
p {
overflow: hidden;
/* 자식요소들의 배치를 지정하는 속성입니다. flex의 예전 버전입니다. */
display:-webkit-box;
-webkit-line-clamp: 2; /* 블록 컨텐츠의 라인 수를 제한하는 속성입니다.*/
/* 자식요소들의 배치를 수직으로 만드는 속성입니다. flex-direction의 예전 버전입니다. */
-webkit-box-orient: vertical;
}
위치를 지정해주는 속성
position의 기본값
html에 쓴 태그 순으로 정상적인 흐름에 따라 위치가 지정된다
'상대적'인 속성. 원래 자신이 있어야 하는 위치에 상대적이다.
자신이 원래 있던 자리를 기억한다.
position:relative;
left: 40px;
위 코드는 자신이 기존에 있어야할 자리에서 왼쪽으로 40px만큼 떨어진다.
static을 제외한 position 속성값을 가진 가장 가까운 부모의 박스 내를 기준으로 움직이게 된다.
스크롤을 올리거나 내릴 때, 특정 박스가 고정되어 움직이지 않았으면 한다면, 이 fixed 속성을 이용
sticky 속성값이 적용된 요소는 조상에 스크롤이 있다면 가장 가까운 부모 요소의 컨텐츠 영역에 달라붙음
<style>
section {
height: 1000px;
border: 3px solid black;
}
h2 {
position: -webkit-sticky;
position: sticky;
top: 0px;
background: greenyellow;
margin: 0;
}
</style>
<body>
<h1>sticky test</h1>
(section>h2{오늘의 메뉴$}+ul>(li>lorem)*3)*3
</body>
요소를 띄워서 좌 혹은 우로 정렬하는 속성을 가진다
하지만 왼쪽 혹은 오른쪽으로 정렬이 되는 특성 덕분에 현재는 블록 박스 요소를 정렬하는 가장 기본적인 방법으로 사용되고 있습니다.
아래 왼쪽 화면은 이미지에 float:left 속성, 오른쪽 화면은 float:right 속성을 둔 결과임.
블록 박스 태그 vs float 속성 태그
블록 속성 태그는 아래와 같이 가로 전체의 넓이를 가지는 속성을 가지고 있다.
1번째에 float:left 속성을 준 그림은 다음과 같다.
Float 속성을 주면, 1번째 컨텐츠가 차지하는 공간만큼만 넓이가 바뀌게되고 왼쪽으로 배치된다. 그리고 float된 요소들의 넓이의 합이 부모 컨테이너의 넓이보다 커지면 순차적으로 아래로 떨어지는 모습을 보인다.
해결법
.wrap {
border: 4px solid blue;
overflow: hidden;
}
BFC
Block Formatting Context
웹페이지 화면에 css 랜더링하는 과정의 한 부분으로,block 레벨 요소들이나 float 된 요소들이 서로 상호작용 하여 화면에 보여지게 되는 방법(block formatting)을 결정하는 구역(context)을 말한다.
다음과 같은 경우 BFC가 생성됩니다.
BFC가 생성되면 다음과 같은 작용을 합니다.