본문으로 바로가기

CSS layout 구조 문제

category 프로그램언어/HTML | CSS 2017. 2. 9. 02:51

css의 속성을 이용하여 간단한 레이아웃을 해봤습니다.

float 속성은 블럭 속성으로 float과 clear:both 등으로 구조를 배치할수 있었습니다.

하지만 float 속성을 주게 되면 부모가 자식의 넓이와 폭을 잃어버리게 됩니다.

예를 들면 float으로 구역을 만들고 이미지를 올리고  그 다음 구역에 글을 작성하더라도

이부분이 섞여 버린다는 것이 문제입니다.




대략 이런 layout을 원했는데 ~~~


실제론 아래와 같은 문제가 발생하게 됩니다. 

다른 구역이 따라서 올라가 버리는 문제가 발생하는 거죠.


이번에는 중앙 메인의 다른 글이 적혔있습니다.









그렇다고 layout <div>구역마다 높이(height)를 다 지정할순 없습니다. 


위의 방법을 해결하기 위해서도 몇가지 방법이 존재하지만


<div id= "head">

  <img src="http://183.98.202.5/syj.jpg">

  <p>체조 요정 손연재 </p>

</div>

<div id= "main">

  이번에는 중앙 메인의 다른 글이 적혔있습니다

</div>


하나는 floatd을 포함하는 부모 속성에 display:inline-block 속성을 줘서

자식이 속성을 값을 인식 시켜주는 방법이 있습니다.

display:inline-block 속성 자리에 overflow:hidden; 속성을 줘서

높이를 강제 인식시킬수도 있습니다.



#head{border:1px solid red; display:inline-block;} 


img{float:left;}


#main{border:1px solid blue;}



또다른 방법은 :after 속성을 주는 것입니다.

선택자 :after는 선택자 뒤의 값에 해당되는 속성 값을 주는 것입니다.

가상의 content가 블럭요소로 있다고 인식 시키는 것이죠.



#head{border:1px solid red; }


img{float:left;}


#main{border:1px solid blue;}


#head:after{display:block; content:" "; clear:both; } 



:after 속성이 있다면 반대로 :before 속성도 있습니다.

선택자 : before 는 반대로 선택자 앞의 값에 해당되는 속성 값을 주는 방법입니다.



'프로그램언어 > HTML | CSS' 카테고리의 다른 글

CSS position absolute 속성  (0) 2017.02.13
CSS position relative 속성  (0) 2017.02.12
CSS float 속성과 clear:both 속성 응용  (0) 2017.02.08
CSS float속성과 clear:both 속성  (0) 2017.02.08
HTML marquee태그  (0) 2017.02.08