1

多くのCSSリセットは、<fieldset>タグの境界線、パディング、およびマージンを削除します。これは、すべてのブラウザで均一にレンダリングされるようにするためだと思います。ただし、リセット後、フィールドセットはHTML(フォーム)要素のグループを視覚的に分離しなくなりました。

2つの質問:

  1. ブラウザは実際に<fieldset>sansリセットを異なる方法でレンダリングしますか?
  2. CSSのリセット後に「境界線」を振り返る最良の方法は何ですか?次のようにスタイルを変更するだけです。

    fieldset {
        border: 1px solid silver;
        margin: 2px;
        padding: 7px;
    }
    

私が説明しているもののいくつかの画像:

リセットなし: ここに画像の説明を入力してください

リセットあり: ここに画像の説明を入力してください

4

2 に答える 2

3

簡単な答えは次のとおりです。リセットを使用しないでください。あなたが何をしているのか手がかりがあれば、それらは不要です。

たとえば、リセットを使用すると、この場合はフィールドセットなどのネイティブUIスタイルが失われます。たとえば、IEでは、スタイルが設定されていないフィールドセットには、ネイティブプログラムのフィールドセットと同じように、角がわずかに丸みを帯びた境界線があります。リセットするとそれが削除され、非ネイティブUIは最悪です。

ただし、主張する場合は、スタイルが正しい順序で定義されていることを確認してください。リセットは絶対的な最初のものであり、その後に「リセット解除」が続きます。ほら、それは冗長です!

于 2012-07-05T04:51:23.587 に答える
2

私は同様の問題を抱えていました-私がそれをしたこと私はNormalize.cssからスタイルをコピーしましたcssがリセットされた後にこれを貼り付けます

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}
于 2014-07-25T20:38:45.287 に答える