2015-07-17 2 views
0

У меня есть 3 текстовых divs, которые должны иметь переход с высотой. Пример здесь: http://jsfiddle.net/oLr7j7w5/Переход с высоты: 100px до 100% игнорирует переход?

В тексте пока нет текста, так что я просто хочу дать ему высоту: авто; на hover, но если я это сделаю, переход исчезнет, ​​и он будет выглядеть следующим образом: (i только изменил высоту с px на авто!) http://jsfiddle.net/xbpqphzz/

Кто-нибудь знает, как я могу это исправить? Heres мой код (я удалил текст)

<div id="extrawurstmain"> 
    <div id="tcontent"> 
     <a class="font" id="ttext"> 
     </a> 
    </div> 
    <div id="mcontent"> 
     <a class="font" id="mtext"> 
           </a> 
    </div> 
    <div id="bcontent"> 
     <a class="font" id="btext"> 
     </a> 
    </div> 

#tcontent{ 
    float: left; 
    background-color: rgba(105, 105, 105, 0.5); 
    border-bottom: 3px solid #FFD000; 
    height: 150px; 
    width: 100%; 
    margin-top: 100px; 
    transition: height 0.5s ease; 
    overflow: hidden; 

} 

#mcontent{ 
    float: left; 
    background-color: rgba(105, 105, 105, 0.5); 
    border-bottom: 3px solid #FFD000; 
    width: 100%; 
    height: 150px; 
    transition: all 0.5s ease; 
    overflow: hidden; 
    position: relative; 
    transition: all 0.5s ease; 


} 

#bcontent{ 
    float: left; 
    background-color: rgba(105, 105, 105, 0.5); 
    border-bottom: 3px solid #FFD000; 
    width: 100%; 
    height: 150px; 
    transition: height 0.5s ease; 
    overflow: hidden; 
} 

#tcontent:hover{ 
    height: 250px; 

} 

#mcontent:hover{ 
    height: 250px; 

} 


#bcontent:hover{ 
    height: 250px; 

} 

#ttext{ 
    color: blue; 
} 

#mtext{ 
    color: green; 
} 

#btext{ 
    color: yellow; 
} 
+0

Вы не можете перейти в/из 'auto' ... вы можете попробовать' max-height', хотя это обычное обходное решение. В противном случае, JS - это путь. –

+0

Возможный дубликат - http://stackoverflow.com/questions/3508605/css-transition-height-0-to-height-auto –

+0

Где вы видите, что он использует авто? –

ответ

0

Вы не можете смешивать единицы. Вы можете только перейти от px к px,% to%, em к em ... у вас есть идея.

Однако, если вам действительно нужно перейти от% к px, то не обойти JS-анимацию ...

+0

welll, но он работает ... просто переход не является. – Econ

+0

Да, причина в том, что вы не можете перейти от% к px или наоборот. Попробуйте использовать тот же блок, и он должен работать. В противном случае вам нужно это с Javascript –

1

Проблема в том, что вы не можете использовать высоту 100% из-за отсутствия ее содержания.

Вы можете использовать Javascript (я бы избежать):

<script> 
var newheight = $('#innerdiv').css('height'); 
$('#mainwrapper').css('height', newheight); 
</script> 

или

UPDATE

div.works { 
    height:20px; 
max-height:20px; 
    display:block; 
    overflow:hidden; 
    -webkit-transition: max-height 0.5s linear; 
} 
div.works:hover { 
    height:100%; 
    max-height: 200px; 
    -webkit-transition: max-height 0.5s linear; 
} 

http://jsfiddle.net/LGDWP/168/ Этот метод работает для%, но вам нужно установить максимизаторами высота. Одна из возможностей - установить максимальную высоту JavaScript с помощью другого метода, описанного выше.

+0

не может ограничить его 'max-height: 200px;' ... можете ли вы проверить это в реальной скрипке? –

+0

http://jsfiddle.net/LGDWP/169/ Если вы посмотрите на этот метод в скрипте, первый из них будет ограничен 100px, а второй будет установлен на 200px. Протестировано в Chrome. –

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