2016-02-19 8 views
7

私はプロジェクトで作業していますが、overflow autoでdisplay:tableとtable-rowを使用しています。しかし、Firefox(とIE)では期待通りに動作しません。display:table-row&overflow:Chrome、Firefox(およびIE)で異なる動作を表示する

Chromeでは、動作する必要があります。

StackOverflowにはthisという質問がありますが、これは私の問題とよく似ていますが、回答やサンプルはありません。

私はJSbinとFiddleでこれを再現しようとしましたが、うまくいきませんでした。私もhere見つけることができる小規模なHTMLの例を、設定している

Desired behaviour in Chrome

Undesired behaviour in Firefox

:私は2 screengrabsを作ったChromeとFirefoxで動作を説明するために

。 ChromeとFirefoxでウェブサイトを開き、下部のコンテナがページをオーバーフローするまでテキスト領域を拡大して再現できます。

コードそれは非常にイライラ

html, 
 
body { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
} 
 
.tableWrapper { 
 
    display: table; 
 
    height: 100%; 
 
    background: darkgrey; 
 
    table-layout: fixed; 
 
    width: 800px; 
 
    margin: 0 auto; 
 
} 
 
.textArea { 
 
    background: #F9F9F9; 
 
    padding: 10px 10px 5px 10px; 
 
    margin: 10px; 
 
} 
 
.content { 
 
    display: table-row; 
 
    height: 100%; 
 
    margin: 10px; 
 
} 
 
.content div { 
 
    display: block; 
 
    overflow: auto; 
 
    height: calc(100% - 20px); 
 
    height: -webkit-calc(100% - 20px); 
 
    height: -moz-calc(100% - 20px); 
 
    background: #ADE6DF; 
 
    margin: 10px; 
 
} 
 
.content p { 
 
    background: white; 
 
    margin: 10px; 
 
    padding: 5px; 
 
}
<div class="tableWrapper"> 
 
    <div class="textArea"> 
 
    <textarea></textarea> 
 
    </div> 
 
    <div class="content"> 
 
    <div> 
 
     <p> 
 
     Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam 
 
     erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim 
 
     mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo 
 
     ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. 
 
     </p> 
 
     <p> 
 
     Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam 
 
     erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim 
 
     mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo 
 
     ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. 
 
     </p> 
 
    </div> 
 
    </div> 
 
</div>

、私は誰かが起こって知っている願っています。

+0

それが匿名テーブルボックスが一緒に(.textAreaがに住んでレイアウトを維持するための場所の上にすべての生成されているという事実とは何かを持っている場合、私は確かに知りません.tableWrapperの匿名テーブル行の匿名テーブルセル、および.content divは.content内の匿名テーブルセルに存在します)。 – BoltClock

+0

@BoltClockこれを修正する方法がありますか? –

+0

@Patrick Hofman:いいえ、悲しいことです。 – BoltClock

答えて

1

あなたはフレックスで大丈夫であれば、あなたはそれを使用することがあります。(https://jsfiddle.net/x59n7Lek/からhttps://jsfiddle.net/x59n7Lek/1/

* { 
 
    box-sizing: border-box; 
 
} 
 

 
html, 
 
body { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
} 
 

 
.tableWrapper { 
 
    display: flex; 
 
    flex-direction: column; 
 
    height: 100%; 
 
    background: darkgrey; 
 
    table-layout: fixed; 
 
    width: 800px; 
 
    margin: 0 auto; 
 
    max-width: 100%; 
 
    /*for the demo snippet */ 
 
    max-height: 100%; 
 
    /* maybe you still want to see the content if textarea is too big ? */ 
 
    overflow: auto; 
 
} 
 

 
.textArea { 
 
    display: flex; 
 
    flex-direction: column; 
 
    flex: 1; 
 
    background: #F9F9F9; 
 
    padding: 10px 10px 5px 10px; 
 
    margin: 10px; 
 
} 
 

 
textarea { 
 
    height: 100%; 
 
    /* optionnal */ 
 
} 
 

 
.content { 
 
    margin: 10px; 
 
    min-height: 220px; 
 
    display: flex; 
 
    flex-direction: column; 
 
} 
 

 
.content div { 
 
    flex: 1; 
 
    overflow: auto; 
 
    display: block; 
 
    background: #ADE6DF; 
 
    margin: 10px; 
 
} 
 

 
.content p, footer,header { 
 
    background: white; 
 
    margin: 10px; 
 
    padding: 5px; 
 
}
<div class="tableWrapper"> 
 
    <div class="textArea"> 
 
    <textarea></textarea> 
 
    </div> 
 
    <div class="content"> 
 
    <header>preview a bit small, test snippet in full page mode then resize window for behaviors</header> 
 
    <div> 
 
     <p> 
 
     Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam 
 
     erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim 
 
     mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo 
 
     ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. 
 
     </p> 
 
     <p> 
 
     Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam 
 
     erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim 
 
     mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo 
 
     ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. 
 
     </p> 
 
    </div> 
 
    <footer>footer</footer> 
 
    </div> 
 
</div>

+0

ありがとう!しかし、大規模プロジェクトでは、水平スクロールを使って下部コンテナの中にテーブルが存在します。このソリューションでは、まずスクロールして水平方向にスクロールする必要があります。 '.content div'はオーバーフローする必要があります:auto、 '.content'ではありません。フレックスでこの動作が可能なら、私は聞いています!私が何を意味するかをさらに説明するために、これは私が望むものです:From:http://www.joshuahazelaar.nl/tablerow/1.png to http://www.joshuahazelaar.nl/tablerow/2.png – Goombah

+1

@Goombahコンテンツにタイトルが追加され、下位レベルの曲が追加されました。最終的な結果に達した場合はスニペットアップデートをご覧ください。あなたが探しているものを理解しているかどうかわかりません。 :) https://jsfiddle.net/x59n7Lek/とフッターもhttps://jsfiddle.net/x59n7Lek/1/でプレイするためのフィドル –

0

これはトリックを行うようです。その有用性を望む。

\t html, 
 
\t body { 
 
\t \t height: 100%; 
 
\t \t margin: 0; 
 
\t \t padding: 0; 
 
\t \t overflow: hidden; 
 
\t } 
 
\t .tableWrapper { 
 
\t \t display: table; 
 
\t \t height: 100%; 
 
\t \t background: darkgrey; 
 
\t \t table-layout: fixed; 
 
\t \t width: 800px; 
 
\t \t margin: 0 auto; 
 
\t } 
 

 
\t .content { 
 
\t \t display: table-row; 
 
\t \t height: 100%; 
 
\t } 
 

 
\t .content div { 
 
    display: block; 
 
    overflow: auto; 
 
\t \t /* 
 
\t \t \t height: calc(100% - 20px); 
 
\t \t \t height: -webkit-calc(100% - 20px); 
 
\t \t \t height: -moz-calc(100% - 20px); 
 
\t \t */ 
 
\t height: 100%; 
 
\t background: #ADE6DF; 
 
\t margin: 10px; 
 
\t max-height: 80vh; 
 
\t min-height: 80vh; 
 
\t overflow: auto; 
 
\t } 
 
\t .content p { 
 
\t \t background: white; 
 
\t \t margin: 10px; 
 
\t \t padding: 5px; 
 
\t } 
 
\t .textArea { 
 

 
\t } 
 
\t .content p, footer,header { 
 
\t \t background: white; 
 
\t \t margin: 10px; 
 
\t \t padding: 5px; 
 
\t }
\t <div class="tableWrapper"> 
 
\t \t <div class="textArea"> 
 
\t \t <textarea></textarea> 
 
\t \t </div> 
 
\t \t <div class="content"> 
 
\t \t \t <div> 
 
\t \t \t \t <header>preview a bit small, test snippet in full page mode then resize window for behaviors</header> 
 

 
\t \t \t \t \t <p> 
 
\t \t \t \t \t Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. 
 
\t \t \t \t \t </p> 
 
\t \t \t \t \t <p> 
 
\t \t \t \t \t Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. Quisque eget ipsum lectus. Morbi ac vulputate velit. Phasellus condimentum nec orci eget sodales. Curabitur commodo ornare consequat. Proin vehicula mattis odio at feugiat. Nunc enim mi, viverra ut enim condimentum, malesuada fermentum felis. Aliquam erat volutpat. Fusce volutpat neque eget suscipit lobortis. 
 
\t \t \t \t \t </p> 
 

 
\t \t </div> 
 
    <footer>footer</footer> 
 

 
\t </div> 
 

 
</div>

関連する問題