2013-11-23 2 views
0

일부 CSS에서 3 개의 열을 갖도록 설정하려고합니다.CSS 열이 동일한 높이를 유지합니다

중간 및 오른쪽 열에 텍스트를 포함 할 수 있습니다. 가운데 열이 텍스트를 줄 바꿈하고 다른 모든 열은 해당 열을 기준으로 크기가 조정되도록 현재 설정되어 있습니다. 같은 방식으로 다른 열에 영향을 주려면 오른쪽 열이 필요합니다. 나는 CSS 전문가가 아니며 C#을 주로 사용한다.

다른 솔루션을 시도했으며 이것이 내가 원하는 바를 가깝게합니다. 이견있는 사람?

지금까지 CSS :

#outer 
{ 
    width: 100%; 
    margin: auto; 
    padding:0; 
} 

#leftcolumn 
{ 
position: absolute; 
height: 100%; 
width: 5px; 
-webkit-border-radius: 0px;  
margin: 0 ; 
background-color: Yellow; 
z-index:10;  
left:0px; 
top:0; 
} 

#rightcolumn 
{ 
position: absolute; 
height: 100%; 
width: 75px; 
-webkit-border-radius: 0px;  
margin: 0 ; 
background-color: green; 
right:0px; 
top:0; 
} 

#middlecolumn 
{ 
-webkit-border-radius: 0px;  
margin-left:5px; 
margin-right:75px; 
background-color: #62A9FF; 
left:0px; 
top:0px; 
} 

#inner 
{ 
width:100%; 
margin:0 auto;  
position: relative; 
-webkit-transform: rotate(0deg); 
-webkit-transform-origin:50% 50%; 
} 

http://jsfiddle.net/6eshT/15/

답변

2

display: table-cell;을 사용하면 매우 편리합니다.

+0

테이블 셀 방식을 시도했지만 ie8 + – user892381

+0

을 지원해야하기 때문에 실패했습니다. 실제로 작동했습니다. 그것은 이 없기 때문에 처음에는 제대로 작동하지 않았기 때문에 Internet Explorer 8에서 제대로 렌더링되지 않았습니다. Alexandr Skachkov, jsfiddle을 게시 해 주셔서 감사합니다. jsfiddle.net/kLMtb/show. – user892381

1

난 당신이 바로 CSS와 함께이 작업을 수행 할 수 있다고 생각하지 않습니다,하지만 당신은 아주 쉽게이를 달성하기 위해 jQuery를 사용할 수 있습니다. http://jsfiddle.net/6eshT/8/

는 기본적으로, 같은 클래스 이름을 가지고 모든 열을 설정 : 여기

는 바이올린입니다. 최소한 하나의 공통 클래스를 가져야합니다. 즉, class="col somethingElse" "somethingElse"는 각 열의 스타일을 지정하는 클래스가 될 수 있습니다.

jQuery를은 다음과 같습니다

$('document').ready(function(){ 
    var max = -1; 
    $(".col").each(function() { 
     var h = $(this).height(); 
     max = h > max ? h : max; 
    }); 
    $(".col").css({ 'height' : max }) 
}); 
+0

에 대한 자세한 인 flexbox. 그러나 내 환경에서는 제한되어 jquery를 사용할 수 없습니다. C#에서 마이크로 소프트의 HTML 편집기를 사용하여 꽤 많이. 그래서 그것은 C# 응용 프로그램의 htmleditor입니다. 나는 2 개의 열을 가지고 일하도록했습니다. 그것은 제 3의 것입니다. – user892381

+0

실제로 절대 위치를 사용하기 때문에 중심 열이 가장 큰 경우에만 효과가 있습니다. 상자 밖에서 조금 생각하면 외부 jquery 라이브러리 ()에 연결할 수 있습니다. jquery를'' 태그 사이의 나의 대답에 넣기 만하면됩니다. 그것은 매력처럼 작동해야합니다;) – Jacques

+0

내 통제를 넘어서는 몇 가지 일들은 저를 금지합니다. 또한 나는 conenteditable 만들려고 노력하고 내용이 추가되면 높이를 조정하지 않습니다 .. http://jsfiddle.net/6eshT/14/ – user892381

1

당신은 디스플레이를 사용할 수 있습니다 훌륭한 솔루션 인이 http://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

나는 이것을 좋아하지 만 불행히도 ie8 + – user892381

+1

과 호환이 필요하다. display : table, table-cell을 전에 mntion으로 사용할 수있다. 다음 질문 (http://stackoverflow.com/questions/19202019/css-3-column-liquid-layout-dynamic-same-height-column?rq=1) 및 IE8 http : //의 답변 작업 예제를 확인하십시오. jsfiddle.net/kLMtb/show/. –

+0

Alexandr Skachkov, 고마워요. 내 코드를 조사한 결과 ie8에서 제대로 렌더링되지 않았다는 것을 알았습니다. 메타 태그 을 추가해야했습니다. 그 후 완벽하게 작동했습니다. – user892381

관련 문제