2016-07-03 3 views
0

내 탐색에 플렉스 박스를 사용하고 있는데 열 바꿈에 지정된 미디어 쿼리에 대해 내 보더가 올바르게 작동하지 않는 것 같습니다.모바일 용 플렉스 박스 너비 100 %

테두리를 장치 너비에 걸쳐 완전히 늘려야합니다. 예를 들어 장치의 왼쪽에서 오른쪽으로 모든 테두리가 필요합니다. 각 요소가 ' 행 '으로 표시되지만 현재 국경은 반 길 밖에 늘어나지 않고 li 요소 중 일부는 다른 행이 없을 때 행을 공유하므로 그 이유가 확실하지 않습니다. 블록을 표시하기 위해 a을 만들었더라도 작동하지 않습니다. 나는 또한 플렉스베이스를 100 % 요소에 적용 해 보았습니다.

편집 : 나는 위치를 알아 냈다고 생각합니다. 나는 #nav ul을 만들었습니다. #nav 열 감싸기가 아닙니다. 그러나, 나는 불행히도 국경 문제를 아직도 경험하고있다.

#nav { 
 
    display: -webkit-box; 
 
    display: -moz-box; 
 
    display: -ms-flexbox; 
 
    display: -webkit-flex; 
 
    display: flex; 
 
    -webkit-flex-flow: row wrap; 
 
    margin: 0; 
 
    flex-flow: row wrap; 
 
    justify-content: center; 
 
    align-items: center; 
 
    background-color: orange; 
 
} 
 
#nav li a { 
 
    color: white; 
 
    margin: 15px; 
 
    padding: 5px; 
 
    display: block; 
 
    ; 
 
    text-decoration: none; 
 
    font-size: 24px; 
 
    font-family: courier; 
 
} 
 
#nav li { 
 
    list-style: none; 
 
} 
 
#nav ul { 
 
    display: -webkit-box; 
 
    display: -moz-box; 
 
    display: -ms-flexbox; 
 
    display: -webkit-flex; 
 
    display: flex; 
 
    -webkit-flex-flow: row wrap; 
 
    margin: 0; 
 
    flex-flow: row wrap; 
 
    justify-content: center; 
 
    align-items: center; 
 
} 
 
@media all and(max-width: 800px) { 
 
    #nav { 
 
    justify-content: space-around; 
 
    } 
 
} 
 
@media all and (max-width: 500px) { 
 
    #nav { 
 
    flex-flow: column wrap; 
 
    padding: 5px; 
 
    } 
 
    #nav li a { 
 
    flex: 1 100%; 
 
    display: block; 
 
    padding: 5px; 
 
    border-top: 1px solid black; 
 
    border-bottom: 1px solid black; 
 
    } 
 
}
<div id="nav"> 
 
    <ul> 
 
    <li> <a href="#">Calendar </a></li> 
 
    <li> <a href="#">Events </a></li> 
 
    <li> <a href="#">Hours </a></li> 
 
    <li> <a href="#">Contact </a></li> 
 
    <li> <a href="#">About </a></li> 
 
    </ul> 
 
</div>

답변

1

봅니다 ul 요소의 기본 패딩을 재설정합니다.

ul { 
    padding-left: 0; 
} 

또한 필요한 경우 기본 여백을 body으로 재설정합니다. 인 flexbox 부분에 대한

body { 
    margin: 0; 
} 

, 당신은 오히려 #nav보다 #nav uldisplay: flex;을 설정해야합니다. 실제로 #nav에 스타일을 설정할 필요는 없습니다. 미디어 쿼리에서 각 li의 너비가 100 %가되도록하려면 플렉스 항목을 flex: 1 1 100%;으로 설정하면됩니다. 아래 예제에서 작동하는 예제입니다.

@media all and (max-width: 500px) { 
    #nav li { 
    flex: 1 1 100%; 
    padding: 5px; 
    border-top: 1px solid black; 
    border-bottom: 1px solid black; 
    } 
} 

jsFiddle