2015-11-20 4 views
0

Я хочу выровнять 3 или более div элементов горизонтально с бесконечной высотой, содержащей sub div.Выравнивать divs горизонтально с бесконечной высотой

<div class ="container"> 
    <div class ="left">//sub divs</div> 
    <div class ="center">// some random number of sub divs</div> 
    <div class ="right"> // sub divs here</div> 
</div> 
.container { 
    width: 80%; 
} 
.left, .right { 
    width: 50%; 
} 

Теперь center полностью виден и left, right видна 200px каждый. Когда я нажимаю center или left, right div должен скользить на center, смещая соответствующий div в сторону и должен быть полностью виден.

Как я могу достичь этого дизайна?

+0

попробовать это http://jsfiddle.net/kishoresahas/ xjpL333r/ –

+0

Не могли бы вы более четко понять, чего вы пытаетесь достичь? Я не уверен, что «смещение соответствующего div в сторону и должно быть полностью видимым». Означает? Когда вы говорите «полностью видимый», что вы имеете в виду? Скрыты ли divs? Или вы хотите, чтобы они были полной шириной? – zgood

+0

Для этого вы можете посмотреть документацию по javascript или jquery. – jmr333

ответ

1

HTML

<div class ="container"> 
    <div class="left">ONE</div> 
    <div class="center">TWO</div> 
    <div class="right">THREE</div> 
</div> 

CSS

.container { 
    position: relative; 
    height: 200px; 
    width: 100%; 
    border: 2px #000 solid; 
    font-size: 0; 
    transition: all .3s; 
} 

.container > div { 
    position: absolute; 
    top: 0; bottom: 0; 
    font-size: 16px; 
    cursor: pointer; 
} 

.left { 
    left: 0; 
    width: 20%; 
    background-color: #8FB8ED; 
} 

.right { 
    right: 0; 
    width: 20%; 
    background-color: #8FB8ED; 
} 

.center { 
    left: 20%; 
    width: 60%; 
    background-color: #3590F3; 
} 

JS/JQuery

$(document).ready(function() { 
    $('.container > div').on('click', function() { 
     var pos = $(this).attr('class'); 
     if (pos !== 'center') { 
      $(this).closest('.container').find('.center') 
       .removeClass('center') 
       .addClass(pos); 
      $(this).removeClass(pos).addClass('center'); 
     } 
    }); 
}); 

Попробуйте эту скрипку: https://jsfiddle.net/j20ycsu0/1/

+0

Почти. Но. Это должно выглядеть так, но НЕТ. ШИРИНА ЦЕНТРА, ПРАВО, ВЛЕВО должна быть такой же. Справа и слева должны приобретать 25% контейнера без изменения ширины. –

+0

Hm. Попробуйте это: https://jsfiddle.net/j20ycsu0/2/ Я установил ширину до 50% для каждого .container> div. Ширина divs теперь одинакова. Левые и правые теперь выходят из контейнера, но сохраняют их размер. Что вы подразумеваете под «Правым и левым», необходимо приобрести 25% контейнера без изменения ширины ». ? – Arpp

+0

Да, это то, что я искал. Вид –

Смежные вопросы