<nav class="menu"> <ul> <li> <a href="#">메뉴 버튼</a> </li> <li> <a href="#">카카오</a> </li> <li> <a href="#">다음</a> </li> </ul> </nav>
CSS
body,html { margin: 0; padding: 0;}
ul
앞에 점 없애기ul{ list-style: none;}
a
에 언더라인없애고 색지우기a{ color: #000000; text-decoration: none;}
ul
,li
정렬하기.menu ul{ overflow: hidden; background-color: pink;} .menu li{ /*display: inline-block;*/ float: left; width: 100px; height: 50px; background-color: yellow; border: solid 1px red;
display:inline-block
을 사용하면 중간중간 공백이생김float
로 정렬ul
에 background-color
만 넣으면 자식값이 float
로 인해서 3차원값이라 height
를 못땡겨옴 그래서 overflow:hidden
으로 해결float
속성이 밖에 영향을 못미치게해서 가능하다고 이해하시면 될 것 같아요. 하지만 이런 방법들은 현재로 해결방법이 없을 때 사용하는 일종의 트릭이라 꼭 논리적인 이유가 있지는 않습니다 :)ul
이 height
의 50px과 border
값 2px을 가져와서 52px이됨li
에 추가 css
text-align: center; line-height: 50px;
text-align
으로 x축 기준 중앙으로 텍스트를 넣음line-heigt
를 사용하는 보통 height
랑 동일값을 넣으면 가운데로감, 폰트에 따라 다를수도있는데 이건 눈대중으로 height
의 값이 없는경우엔 어떻게 하느냐padding-top: 15px; padding-bottom: 15px;
padding
을 이용해서 위아래에 공간을 만들어준다.a
태그가 작동을 안하니까 작동을 시킬려면.menu li a{ display: block; text-align: center; padding-top: 15px; padding-bottom: 15px;}
a
를 지정해서 display
를 block
으로 해준다.text-align
,padding
은 위에서 지우고 여기에 넣는다..menu li a:hover{ color: blue;}
ul
부분에서 겹치는 border
부분 해결해보기border-top:solid 1px red; border-bottom: solid 1px red; border-left: solid 1px red; /*border: solid 1px red;*/
border
를 한번만 쓰지말고 top
,bottom
,left`를 각각 지정해준다..menu li:last-child{ border-right: solid 1px red;}
overflow:hidden
부분