2017-05-05 1 views
0

3 개 모두에 사용할 수있는 공간이있을 경우 한 줄에 3 개의 요소를 표시하는 방법이 있습니까? 그렇지 않은 경우 각 요소를 하나의 별도 행에 표시 하시겠습니까?블록 또는 단일 라인 요소

그래서 3 인라인 ok를 표시 할 수 있지만 행의 2 개 요소와 다음 행의 마지막 요소는 피하고 싶습니다. 필수적으로 미디어 쿼리를 사용하지 않는 것이 좋습니다.

+0

요소 너비를 알고 있습니까? – Peter

+0

그 문제를 해결하려면 스크립트 또는 미디어 쿼리가 필요합니다. 미디어 쿼리를 사용하는 것이 좋습니다 :) – LGSon

답변

1

아래와 같이 Javascript 또는 jQuery로 할 수 있습니다. 각 요소의 너비를 가져옵니다.

$(document).ready(function() { 
 
    var L1 = $(".x1").width(); 
 
    var L2 = $(".x2").width(); 
 
    var L3 = $(".x3").width(); 
 
    var sum = L1 + L2 + L3; 
 
    var availableSpace = $(".wrapper").innerWidth(); 
 
    if (availableSpace < sum) { 
 
    $(".x").css('display', 'block'); 
 
    }; 
 
})
body, 
 
html { 
 
    margin: 0; 
 
} 
 

 
.x { 
 
    display: inline-block; 
 
    padding: 10px; 
 
    border: 1px solid #bbb; 
 
    white-space: nowrap; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="wrapper"> 
 
<div class="x x1">11111111111 11111111111111 11111111111111</div><div class="x x2">2222222222222 2222222222222 222222222222</div><div class="x x3">333333333333 333333333333333333</div> 
 
</div>

보고 니펫 전체 화면을 확인 :이의 합이 래퍼 요소의 폭보다 더 많은 경우, 이에 그들에게 넓은 100 %을, display: inline-block에서 display: block의 요소를 변환 그 효과. .wrapper DIV 대신에 세 요소 주위에 상위 요소가없는 경우 jQuery 함수에서 body을 사용할 수도 있습니다.

+0

OP가 javascript 또는 jquery 태그를 추가하지 않았습니다. 나는 미디어 쿼리가없는 CSS 솔루션 만 찾고 있다고 생각한다. –

+0

@MohitBhardwaj가 불가능한 이유는 무엇입니까? 그 외에, 그는 "no media queries"만 썼지 만 "no javascript" – Johannes