2016-04-22 13 views
0

ディスプレイのプロパティを変更すると、Google Chrome(バージョン50)ではトランジションが実行されません(瞬時に実行されます)が、Firefox(バージョン44)とIE(バージョン11 )。あなたはデモhereを見ることができますGoogleクロムでCSSトランジションが動作しない

HTML

<div class="outer"> 
    <div class="inner"> 
    </div> 
</div> 

CSS

.inner { 
    width: 100px; 
    height: 100px; 
    background: red; 
    transition: width 2s linear 1s; 
    display: inline-block; 
} 
.outer:hover .inner { 
    width: 300px; 
} 
.outer:hover { 
    display: inline-block; /* If I comment this, it will work */ 
} 

答えて

0

利用display: block;代わりのdisplay: inline-block;

.inner { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: red; 
 
    display: block; 
 
} 
 
.outer:hover .inner { 
 
    width: 300px; 
 
    -webkit-transition: width 2s linear; 
 
    -moz-transition: width 2s linear; 
 
    -o-transition: width 2s linear; 
 
    transition: width 2s linear; 
 
} 
 
.outer:hover { 
 
    display: block; 
 
}
<div class="outer"> 
 
    <div class="inner"> 
 
    </div> 
 
</div>

+0

罰金になり、 '表示:ブロック;'デフォルトです'div'要素のために、私はそれを変更したいと思います。 – Ashkan

+0

'.outer {display:inline-block}'を追加すると( ':hover'疑似セレクタがないことに注意してください)、それも同様に解決されます。特定の理由は、 'display'プロパティを' inline-block'に変更しただけですか? – Frits

+0

@fritzypop、私は[this](https://jsfiddle.net/amyseqmedia/2gKZF/)のようにオーバーフローしたテキストをスクロールしようとしていました。しかし、 'left'プロパティには固定数を使います。 'display'を変更すると、要素の親要素が子要素の長さに自動的に拡張され、' left'プロパティにパーセント値を使用することが可能であると考えられました。とにかく私はキーフレームを使用してそれを解決し、[ここ](http://stackoverflow.com/questions/3331353/transitions-on-the-display-property)からアイデアを得て、スクロールのための私の解決策は[ここ](https: /jsfiddle.net/Ashkan_/2q982juo/)、興味のある人のために。 – Ashkan

1

左追加:ベース定義に0を、あなたはそれが行をコメントのようなものです

+0

これはうまくいきませんでした。私は 'position:relative; 'の有無にかかわらず' left:0'を試しました – Ashkan

+0

okこのデモを確認してくださいhttps://jsfiddle.net/9m0tfvqz/6/ – Malhar

+0

残念ながら、 'display:inline-block; 'を引き起こし、' display'は 'block'のままです。 ';'の代わりに 'left'の後に'、 'をタイプしました。 – Ashkan

関連する問題