2017-06-13 10 views
1

ここは例です。私は、スライダを親コンテナの幅全体に伸ばしたいと思っています。下のコードはChromeで見たように見えますが、Firefoxではスライダが伸びていません。しかし、私はその問題に対して開いている彼らのトラッカーのバグを見つけることができない、多分私は何かを欠場ですか?入力タイプ=範囲はFirefoxで伸びていません

#block { 
 
    width: 100%; 
 
    height: 100%; 
 
    display: flex; 
 
    flex-direction: column; 
 
    background-color: green; 
 
    align-items: stretch; 
 
} 
 

 
input { 
 
    background-color: yellow; 
 
}
<div id=block> 
 
    <input type=range /> 
 
</div>

+0

見直し、私の答えにコメント、そして何かが不明確または欠落している場合は私に知らせてください。そうでなければ、あなたを最も助けてくれた答えを受け入れることができればそれは素晴らしいことでしょう。 – LGSon

答えて

1

カラム方向とフレックス容器、及びalign-itemsのデフォルト値はstretchあるよう、同じであり、その交差軸に沿って容器を充填するためにフレックスアイテムを伸ばしますその幅として。

Firefox、Edge、IEではそうではありませんが、あなたの場合はそれがそのまま動作するはずです。それらはすべてrangeinputのためにwidth: 100%が容器を満たす必要があります。比較として

、タイプtextcheckbox、およびtextareainput、クロスブラウザを伸ばすんが、再びinput TYP checkboxのではないFirefoxでありません。

Firefox(およびEdge/IE)が正しいかどうか、またはバグがあるかどうかはまだ言いません。私は全面的に調査しており、それに対してまっすぐ答えを見つけることはできませんが、すぐに私はこの答えを更新します。

今日のように、幅を100%に設定することをお勧めします。また、Chromeが正しい場合は、害はなく、後で削除できます。

#block { 
 
    /* width: 100%;    not needed since it is the default */ 
 
    height: 100%;    /* as its parent doesn't have a height, 
 
           this doesn't do anything */ 
 
    display: flex; 
 
    flex-direction: column; 
 
    background-color: green; 
 
    /* align-items: stretch;  this is the defalt and can be omitted */ 
 
} 
 

 
input, textarea, span { 
 
    background-color: yellow; 
 

 
    width: 100%;    /* make FF/Edge/IE stretch input range */ 
 
    
 
    margin: 0;    /* remove any default margin an element might have */ 
 
    padding: 0;    /* remove any default padding an element might have */ 
 

 
    box-sizing: border-box; /* include border an element might have in the set width */ 
 
}
<div id=block> 
 
    <input type=range /> 
 
    
 
    <!-- added these for comparison --> 
 
    <input type=checkbox /> 
 
    <input type=text value="Input text"/> 
 
    <textarea>Textarea</textarea> 
 
    <span>Span</span> 
 
    
 
</div>

+0

最初の変種では、@ Tobiが別の答えで行ったように、 'margin:0'を追加することを忘れてしまいました。 2番目の変種は私のニーズに合っていません - 私は垂直屈曲が必要です。しかし、再び、それは質問に答えません - それはFirefoxのバグですか? – Grief

+0

@Grief私の答えを更新しました – LGSon

0

は、あなたが望む結果を得るために100%に<input>タグの幅を設定する必要があります!

#block { 
 
    width: 100%; 
 
    height: 100%; 
 
    display: flex; 
 
    flex-direction: column; 
 
    background-color: green; 
 
    padding: 0; 
 
} 
 

 
input { 
 
    background-color: yellow; 
 
    width: 100%; 
 
    margin: 0; 
 
}
<div id=block> 
 
    <input type=range /> 
 
</div>

+0

また、入力がなければコンテナがオーバーフローするので、 'margin:0'も追加しました。中間の 'div'をゼロ以外のマージンにする方が良いです。しかし、それはFirefoxのバグですか、私は間違ってflexboxモデルを使用しているのですか? – Grief

関連する問題