外观

基线 2022

新功能

2022年3月起,此功能可在最新的设备和浏览器版本中使用。此功能可能在旧版设备或浏览器中无法使用。

appearance CSS 属性用于根据操作系统的主题显示具有平台特定样式的 UI 元素。

试一试

在标准化之前,此属性允许将元素显示为小部件,例如按钮或复选框。这被认为是一个错误的功能,现在鼓励作者仅使用标准关键字。

注意:如果您希望在网站上使用此属性,则应非常小心地对其进行测试。尽管它在大多数现代浏览器中受支持,但其实现方式有所不同。在旧版浏览器中,即使是 none 关键字对不同浏览器中的所有表单元素也没有相同的效果,并且某些浏览器根本不支持它。在新版浏览器中,差异较小。

语法

css
/* CSS Basic User Interface Module Level 4 values */
appearance: none;
appearance: auto;
appearance: menulist-button;
appearance: textfield;

/* Global values */
appearance: inherit;
appearance: initial;
appearance: revert;
appearance: revert-layer;
appearance: unset;

/* <compat-auto> values have the same effect as 'auto' */
appearance: button;
appearance: checkbox;

对于以下关键字,用户代理会根据元素选择合适的样式。提供了一些示例,但列表并不详尽。

none

隐藏小部件的某些功能,例如在选择元素中显示的箭头,指示列表可以展开。

auto

在没有特殊样式的元素上充当 none

<compat-special>

menulist-buttontextfield 之一。这两个值在没有特殊样式的元素上等效于 auto

<compat-auto>

可能的值为 buttoncheckboxlistboxmenulistmeterprogress-barpush-buttonradiosearchfieldslider-horizontalsquare-buttontextarea。等效于 auto 的关键字,用于保持与旧版浏览器的兼容性。

非标准值

以下值可能在使用 -moz-appearance-webkit-appearance 前缀的历史浏览器版本中可用,但在标准 appearance 属性中不可用。

非标准值
  • Firefox 条目指示使用 -moz-appearance 的支持。
  • 下面的 Chrome、Edge 和 Safari 条目指示对使用 -webkit-appearance 供应商前缀属性的值的支持的版本。
  • 带有星号 (*) 的值有明确的删除意图。
  • 对于浏览器版本和值的每个单元格
    • Y{version}:表示值在 {version} 及之前版本中受支持
    • N{version}:支持在早于 {version} 的版本中被删除
    • 空白单元格表示从未添加支持
Safari Firefox Chrome Edge
attachment Y(13.1)
borderless-attachment Y(13.1)
button-bevel Y(13.1) N(75) N(80)
caps-lock-indicator Y(13.1) N(80)
caret Y(13.1) N(75) Y(73) N(80)
checkbox-container N(75)
checkbox-label N(75)
checkmenuitem N(75)
color-well Y(13.1)
continuous-capacity-level-indicator Y(13.1)
default-button Y(13.1) N(80)
discrete-capacity-level-indicator Y(13.1)
inner-spin-button Y(13.1) N(75) Y(118) * Y(119)
image-controls-button Y(13.1)
list-button Y(13.1)
listitem Y(13.1) N(75) Y(73) N(80)
media-enter-fullscreen-button Y(13.1) Y(73)
media-exit-fullscreen-button Y(13.1) Y(73)
media-fullscreen-volume-slider Y(13.1)
media-fullscreen-volume-slider-thumb Y(13.1)
media-mute-button Y(13.1) N(80)
media-play-button Y(13.1) N(80)
media-overlay-play-button Y(13.1) Y(73)
media-return-to-realtime-button Y(13.1)
media-rewind-button Y(13.1)
media-seek-back-button Y(13.1) N(73)
media-seek-forward-button Y(13.1) N(73)
media-toggle-closed-captions-button Y(13.1) Y(73)
media-slider Y(13.1) Y(117) Y(80)
media-sliderthumb Y(13.1) Y(117) Y(80)
media-volume-slider-container Y(13.1) Y(73)
media-volume-slider-mute-button Y(13.1)
media-volume-slider Y(13.1) Y(117) Y(80)
media-volume-sliderthumb Y(13.1) Y(117) Y(80)
media-controls-background Y(13.1) Y(73)
media-controls-dark-bar-background Y(13.1)
media-controls-fullscreen-background Y(13.1) Y(73)
media-controls-light-bar-background Y(13.1)
media-current-time-display Y(73)
media-time-remaining-display Y(13.1) Y(73)
menulist-text Y(13.1) N(75) Y(73) N(80)
menulist-textfield Y(13.1) N(75) Y(73) N(80)
meterbar Y(100)
number-input Y(75)
progress-bar-value Y(13.1) Y(73)
progressbar Y(100)
progressbar-vertical Y(75)
range Y(75)
范围滑块 Y(75)
评分等级指示器 Y(13.1)
相关性等级指示器 Y(13.1)
水平刻度 Y(75)
刻度滑块结束 Y(75)
水平刻度滑块 Y(75)
刻度滑块开始 Y(75)
刻度滑块刻度 Y(75)
垂直刻度滑块 Y(75)
垂直刻度 Y(75)
水平滚动条滑块 Y(75)
垂直滚动条滑块 Y(75)
水平滚动条轨道 Y(75)
垂直滚动条轨道 Y(75)
搜索字段装饰 Y(13.1) N(80)
搜索字段结果装饰 Y(13.1) N(75) N(73) N(80)
搜索字段结果按钮 Y(13.1) N(80)
搜索字段取消按钮 Y(13.1) N(75) Y(118) * Y(119)
快照插件覆盖层 Y(13.1)
表单
垂直滑块 Y(118) * Y(119)
水平滑块滑块 Y(117) Y(80)
垂直滑块滑块 Y(117) Y(80)
多行文本字段 Y(100)
苹果支付按钮 Y(13.1)

正式定义

初始值none
应用于所有元素
继承
计算值按指定
动画类型离散

正式语法

appearance = 
none |
auto |
<compat-auto> |
<compat-special>

<compat-auto> =
searchfield |
textarea |
checkbox |
radio |
menulist |
listbox |
meter |
progress-bar |
button

<compat-special> =
textfield |
menulist-button

示例

应用自定义样式

以下示例展示了如何移除复选框和选择元素的默认样式,并应用自定义样式。复选框的外观更改为圆形,选择元素展示了如何移除指示列表可以展开的箭头。

HTML

html
<input type="checkbox" />
<input type="checkbox" checked />

<select>
  <option>default</option>
  <option>option 2</option>
</select>
<select class="none">
  <option>appearance: none</option>
  <option>option 2</option>
</select>

CSS

css
input {
  appearance: none;
  width: 1em;
  height: 1em;
  display: inline-block;
  background: red;
}
input:checked {
  border-radius: 50%;
  background: green;
}

select {
  border: 1px solid black;
  font-size: 1em;
}

select.none {
  appearance: none;
}

结果

规范

规范
CSS 基本用户界面模块级别 4
# 外观切换

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅