2012-02-28 15 views
2

アンカーとサブミット入力に同じ幅を適用しました。アンカーは正しく見えますが、サブミット入力の幅が小さすぎます。この問題はFirefoxでのみ発生します。クロムは問題ありません。Firefoxの送信入力にCSSの幅を適用するにはどうすればよいですか?

ブラウザ

enter image description here

HTML

<a>Save</a> 
<input type="submit" value="save" /> 

CSS

a, 
input { 
    display: block; 
    width: 5em; 
    text-align: center; 
    font-size: 1.4em; 
    padding: 0.6em 2em; 

    /* hack to get the width to work on Chrome */ 
    box-sizing: content-box; 
} 
+0

あなたのポイントが正しい場合は、 'padding:0.6em;'を試してください。 – raina77ow

答えて

0

ブロックの代わりにインラインブロックを試してください

a, 
input { 
    display: inline-block; 
    width: 5em; 
    text-align: center; 
    font-size: 1.4em; 
    padding: 0.6em 2em; 
} 
+0

Chromeで私にとってうまくいかない:http://jsfiddle.net/xNY5N/ – maxedison

+0

動作しません。さらに、私はピクセルの次元を使用することはできません。 A)それは親と一緒に拡大縮小しません。 B)ユーザーのブラウザのフォントサイズ設定を無視します。 – JoJo

+0

@JoJoパディングをpxに変更して機能させる必要があります。 font sizeをuser11 ...としたままにしておいてください。私は自分の答えで答えました。 – mkk

1

Chromeで同じ効果が得られます。私はなぜそうは思わないのですが、padding-rightがinput要素に適用されていないように見えます。これをどのように解決すべきかは、具体的なケースによって異なりますが、私は十分に答えようとしていません。問題の直接の原因を知っていれば十分です。

編集
彼の解決策についてのこの記事のOPのコメントを参照してください。 FFで動作させるために必要なことはすべて-moz-border-box: content-box

+0

私のコードを更新しました。 'box-sizing:content-box;'はChromeで動作させるが、Firefoxは修正しない。 – JoJo

+0

ニースが見つかりました。 FFではまだブラウザプレフィックスなしでボックスサイズが実装されていないため、FFでは動作しません。つまり、スタイルシートに '-moz-border-box:content-box'を追加するだけです。 – maxedison

+0

この解決策も許容されます。 – JoJo

0

CSSリセットを追加してみてください。これらの要素のデフォルトの幅/パディングがここで再生されているようです。

a、input {width:0;パディング:0;余裕:0;}

+0

私はこれらのルールを含むYahooのYUIリセットを使用しています。 CSS全体をコピーして貼り付けないようにしました。なぜなら、あまりにも読みにくいからです。 – JoJo

+0

よろしくお願いします。私はそれを今すぐ手抜きしていると私はあなたが意味するものを参照してください。アンカーにはテキストノードがあり(「保存」)、入力要素にはテキストが属性として含まれている可能性があります。パディング、幅、および他のスタイリングプロパティが、テキストノードと属性ノードに異なって適用されているのだろうかと思います。 – timmackay

0

あなたの間違いは、幅やパディングのような寸法の場合はemを使用することです。
emをfont-sizeに使用することをお勧めする記事がたくさんありますが、実際にはサイズ、パディング、余白などには使用しないでください。レイアウトを「フレキシブル」にするには、%を代わりに使用してください。その他はpxに固執する。

+0

em VS pxは私の問題とは無関係です。 pxディメンションに変更しても問題は解決しません。 – JoJo

+0

@JoJoあなたはパディングでもそれを変更してもよろしいですか?またはそのような解決策が選択肢ではないことを意味しましたか? – mkk

+0

最初は、幅をpxに変更するだけでした。それは役に立たなかった。それから、パディングもpxに変更しました。アンカーとサブミット入力はほぼ同じように見えますが、正確には見えません。 – JoJo

関連する問題