--- title: border slug: Web/CSS/border tags: - CSS_参考 translation_of: Web/CSS/border --- <p>{{ CSSRef() }}</p> <h2 id="Summary" name="Summary">概览</h2> <p><a href="https://developer.mozilla.org/en-US/docs/CSS" title="CSS">CSS</a>的border属性是一个用于设置各种单独的边界属性的<a href="Shorthand_properties">简写属性</a>。<code>border可以用于设置一个或多个以下属性的值:</code> {{Cssxref("border-width")}}, {{Cssxref("border-style")}}, {{Cssxref("border-color")}}。</p> <p>{{EmbedInteractiveExample("pages/css/border.html")}}</p> <p>和所有的简写属性一样,如果有缺省值会被设置成对应属性的初始值。同时需要注意设置border对{{cssxref("border-image")}}属性的影响,虽然border属性不能设置这个属性,但会把该属性重置为初始值none。这使得我们可以用border属性去重置整个样式表中的border设置。因为W3C计划在未来的标准中保留该属性,因此建议使用该属性重置边框设定。</p> <div class="note style-wrap"> <p><strong>注意:</strong> 虽然{{Cssxref("border-width")}},、{{Cssxref("border-style")}}和 {{Cssxref("border-color")}} 简写属性接受最多4个参数来为不同的边设置宽度、风格和颜色,但boder属性只接受三个参数,分别是宽度、风格和颜色,所以这样会使得四条边的边框相同。</p> </div> <h3 id="Borders_vs._outlines">Borders vs. outlines</h3> <p><code>边界border</code>和轮廓<code>outline</code>很相似。然而轮廓在以下方面与边界不同</p> <ul> <li>轮廓不占据空间,他们在元素内容之外绘制</li> <li>根据规范,轮廓不必为矩形,尽管通常是矩形。</li> </ul> <h2 id="Syntax" name="Syntax">语法</h2> <pre>/* style */ border: solid; /* width | style */ border: 2px dotted; /* style | color */ border: outset #f33; /* width | style | color */ border: medium dashed green; /* Global values */ border: inherit; border: initial; border: unset;</pre> <p>可以使用下面列出的一个,两个或三个值来指定<code>border</code>属性。 值的顺序无关紧要。</p> <div class="blockIndicator note"> <p>注意:如果边框的样式未定义,它将不可见。 这是因为样式默认为none。</p> </div> <h3 id="Values" name="Values">取值</h3> <dl> <dt>border-width</dt> <dd>请看 {{ Cssxref("border-width") }}.</dd> <dt>border-style </dt> <dd>请看 {{ Cssxref("border-style") }}.</dd> <dt>border-color </dt> <dd>{{cssxref("<color>")}} 可以确定border的颜色。如果这个值没有设置,它的默认值是元素的{{cssxref("color")}}属性值(是文字颜色而非背景色)。 请看{{ Cssxref("border-color") }}.</dd> <dt> <h3 id="正式语法">正式语法</h3> <pre><code>{{csssyntax}}</code></pre> </dt> </dl> <h2 id="Examples" name="Examples">示例</h2> <h3 id="HTML">HTML</h3> <pre><div>I have a border, an outline, AND a box shadow! Amazing, isn't it?</div></pre> <h3 id="CSS">CSS</h3> <pre>div { border: 0.5rem outset pink; outline: 0.5rem solid khaki; box-shadow: 0 0 0 2rem skyblue; border-radius: 12px; font: bold 1rem sans-serif; margin: 2rem; padding: 1rem; outline-offset: 0.5rem; }</pre> <h3 id="结果">结果</h3> <p>{{EmbedLiveSample('Example')}}</p> <h2 id="Specifications" name="Specifications">规范</h2> <table class="standard-table"> <thead> <tr> <th scope="col">规范</th> <th scope="col">状态</th> <th scope="col">说明</th> </tr> </thead> <tbody> <tr> <td>{{SpecName('CSS3 Backgrounds', '#the-border-shorthands', 'border')}}</td> <td>{{Spec2('CSS3 Backgrounds')}}</td> <td>在理论上删除了对<code>transparent</code>的支持,因为{{cssxref("<color>")}}已经接受它作为一种有效的颜色值。这不会对实际使用有任何影响。<br> 虽然border不能给{{cssxref("border-image")}}赋特定的值,但可以用于重置{{cssxref("border-image")}}为初始值(<code>none</code>).</td> </tr> <tr> <td>{{SpecName('CSS2.1', 'box.html#border-shorthand-properties', 'border')}}</td> <td>{{Spec2('CSS2.1')}}</td> <td> <p>加入<code>inherit</code>关键字。<br> 接受transparent作为有效的颜色值。</p> </td> </tr> <tr> <td>{{SpecName('CSS1', '#border', 'border')}}</td> <td>{{Spec2('CSS1')}}</td> <td>初始定义</td> </tr> </tbody> </table> <h2 id="Browser_compatibility" name="Browser_compatibility">浏览器兼容性</h2> <p>{{Compat("css.properties.border")}}</p>