ホームページ >ウェブフロントエンド >CSSチュートリアル >CSS での border-sizing 属性の使用法

CSS での border-sizing 属性の使用法

不言
不言オリジナル
2018-07-28 09:59:482444ブラウズ

この記事では、CSS での border-sizing 属性の使用方法を紹介します。これが、困っている友人に役立つことを願っています。

box-sizing は、要素の幅と高さを計算するために使用されるデフォルトの CSS ボックス モデルを変更するために使用されます。これには、content-box、border-box、inherit の 3 つの値があります。継承とは、冗長ではなくなった親要素からボックス サイズ変更フォームを継承することを指します。

## 1. 属性の説明

## # content-box
デフォルト値はCSS2.1のボックスモデルでもあります。 widthheight を計算する場合、borderpadding、および margin は計算されません。 高さと幅はコンテンツの高さだけですcontent-box
默认值,也是css2.1中的盒子模型。在计算widthheight时候,不计算borderpaddingmargin高度、宽度都只是内容高度

#### border-box
css3新增。 widthheight属性包括内容,内边距和边框,但不包括外边距。

计算公式:

  1. width = width = border + padding + 内容宽度

  2. height = border + padding + 内容高度

## 2. 考虑盒子模型的margin
从上面可以知道,即时是border-box也是不计算margin,只是多余计算了borderpadding因为borderpadding都是盒子模型的一部分,但是margin标记的是盒子和盒子的间距。所以,border-box的解释很符合常理。

问题来了,如果有时候一定要设置margin,怎么做到自由控制来保证兼容?例如,我们下面要设置一个撑满页面的盒子元素,而且有外边距干扰,怎么做?

实现如下效果图:
CSS での border-sizing 属性の使用法

代码:源码下载

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>yuanxin.me</title>
  <style type="text/css">
    *{
      margin: 0;
      padding: 0;
    }
    #app {
      box-sizing: border-box; /* 指定计算方式 */
      margin: 10px; /* 外边距干扰 */
      /* 利用 css3 的 calc */
      width: calc(100vw - 2*10px);
      height: calc(100vh - 2*10px);
    }
  </style>
</head>
<body>
  <p id="app">
  </p>
</body>
</html>

所以,当需要计算外边距(margin),可以配合css3中的四则运算(calc

#### ボーダーボックス
css3新規。 width プロパティと height プロパティには、コンテンツ、パディング、境界線が含まれますが、マージンは含まれません。

計算式:

  1. width = width = ボーダー + パディング + コンテンツの幅

  2. 高さ = ボーダー + パディング+ コンテンツの高さ

## 2. ボックス モデルの margin
を考慮します。 上記から、それが border であることがわかります。 -box margin は計算されませんが、borderpadding は重複して計算されます。 borderpadding はどちらもボックス モデルの一部ですが、margin はボックス間の距離を示すためです。したがって、border-box の説明は非常に常識的です。

問題は、マージンを時々設定する必要がある場合、互換性を確保するためにどのように自由に制御できるかということです。たとえば、ページ全体を埋めるボックス要素を設定したいのですが、これはどのようにすればよいでしょうか。

次のレンダリングを実現します。
境界線の詳細な説明- sizing 属性とアプリケーション🎜🎜コード: 🎜ソースコードダウンロード🎜
* {
  margin: 0;
  padding: 0;
}
p {
  box-sizing: border-box;
}
🎜したがって、マージン (マージン) を計算する必要がある場合は、四則演算 (calc) を CSS3 で実行するには 🎜 を使用します。 🎜🎜## 3. 使用上の提案 🎜🎜 プロジェクトの経験と w3c の推奨事項に基づいて、box-sizing 属性を border-box に設定することをお勧めします。 🎜rrreee🎜関連する推奨事項: 🎜🎜🎜純粋な CSS を使用して動的に動く列車を実装する方法🎜🎜🎜🎜 CSS セレクターとは何ですか? CSS セレクターの包括的なまとめ (コード付き) 🎜🎜

以上がCSS での border-sizing 属性の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。