2017-08-03 10 views
2

IE10および/またはIE11のグリッドレイアウトをサポートするにはどうすればよいですか?IE10/11をサポートするCSSグリッド構文

これまでのところ、-ms-という接頭辞がトリックを行う必要があることがわかりましたが、Edgeブラウザでしか動作しません。

私はMicrosoftのドキュメントとMDNネットワークを調べようとしましたが、何か助けになるものは見つかりませんでした。あなたは、コードを見ることができます

は、私が使用:あなたはそれを動作させるためにそれを削除する必要があるので、

@supports (display:grid) { 
    .App-body { 
    display: grid; 
    grid-template-columns: 300px auto 300px; 
    grid-template-areas: "navbar navbar navbar" "leftside content content"; 
    } 

    .leftside { 
    grid-area: leftside; 
    /*align-content: left;*/ 
    } 

    .rightside { 
    grid-area: rightside; 
    /*align-content: right;*/ 
    } 

    .content { 
    grid-area: content; 
    /*align-content: center;*/ 
    } 

    .navbar { 
    grid-area: navbar; 
    } 
} 

@supports (display:-ms-grid) { 
    .App-body { 
    display: -ms-grid; 
    -ms-grid-columns: 300px auto 300px; 
    } 

    .leftside { 
    -ms-grid-row: 2; 
    -ms-grid-column: 1; 
    /*align-content: left;*/ 
    } 

    .rightside { 
    -ms-grid-row: 2; 
    -ms-grid-column: 3; 
    /*align-content: right;*/ 
    } 

    .content { 
    -ms-grid-row: 2; 
    -ms-grid-column: 2; 
    } 

    .navbar { 
    -ms-grid-row: 1; 
    -ms-grid-column-span: 3; 
    } 
} 

答えて

2

@supports CSSルールは、Internet Explorerでサポートされていません。

grid-template-columns: 300px auto 300px;-ms-grid-columns: 300px auto 300px;はIE /エッジおよびグリッドをサポートする他のブラウザのために等価ではありません。ルール:あなたは残りのすべての スペースを取るために列をしたい場合は

  • 1frautoを交換してください。あなたは、列幅はコンテンツによって定義されたことにしたい場合は

  • (IE \ Edgeのdisplay: -ms-grid)グリッドコンテナ用display: inline-griddisplay: gridを交換してください。それはIE /エッジのデフォルト値ですので、あなたがIE/EDGE用-ms-grid-column: 1-ms-grid-row: 1を削除することができところで

。 IE/Edgeにはグリッド項目の自動配置がなく、デフォルトではすべてのグリッド項目が最初のセルにスタックされます。

+0

ありがとうございます、私はこの代替案を見つけました:@media allと(-ms-high-contrast:none)、(-ms-high-contrast:active){}、https://stackoverflow.com/questions/ 28417056/how-to-target-only-a-styles-within-a-stylesheet –

+0

@ John-RobertYrjöläどのような選択肢について話していますか? –

+0

@ John-RobertYrjöläはい、これはオプションですが、IE/Edge用のCSSグリッドレイアウトは他のブラウザに影響を及ぼさないため、このCSSルールとメディアクエリを省略することができます。 –

関連する問題