From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/zh-cn/web/css/min()/index.html | 130 +++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 files/zh-cn/web/css/min()/index.html (limited to 'files/zh-cn/web/css/min()/index.html') diff --git a/files/zh-cn/web/css/min()/index.html b/files/zh-cn/web/css/min()/index.html new file mode 100644 index 0000000000..48914aeb84 --- /dev/null +++ b/files/zh-cn/web/css/min()/index.html @@ -0,0 +1,130 @@ +--- +title: min() +slug: Web/CSS/min() +translation_of: Web/CSS/min() +--- +

{{CSSRef}}

+ +

min() CSS 方法允许你从逗号分隔符表达式中选择一个最小值作为 CSS 的属性值。min() 方法可以用于以下任何属性中 {{CSSxRef("<length>")}}, {{CSSxRef("<frequency>")}}, {{CSSxRef("<angle>")}}, {{CSSxRef("<time>")}}, {{CSSxRef("<percentage>")}},{{CSSxRef("<number>")}}, 或者 {{CSSxRef("<integer>")}}。

+ +
/* property: min(expression [, expression]) */
+width: min(1vw, 4em, 80px);
+ +

在上面的例子中,宽度最多是80px。如果视口的宽度小于800px,或者一个em的宽度小于20px,则会更窄。换句话说,最大宽度是80px,

+ +

语法

+ +

min() 方法拥有一个或多个逗号分隔符表达式作为参数,表达式的值中最小的值作为参数值。表达式可以是数学函数 (查看 {{CSSxRef("calc", "calc()")}} 了解更多), 字面量,或者其他表达式,比如 {{CSSxRef("attr", "attr()")}}, 可以求得有效值的的类型 (比如 {{CSSxRef("<length>")}})。如果你愿意,你甚至可以在表达式中给每个值一个不同的单位。并且在需要的地方只用圆括号改变计算优先级。

+ +

注意

+ + + +

Formal syntax

+ +
{{CSSSyntax}}
+ +

Examples

+ +

Growing images to a maximum size

+ +

min() 让我们在设置图像的最大宽度时更简单。在下面这个例子中,在小型设备上宽度拉伸为window的一半,但在大型设备上,不超过300px,不使用媒体查询:

+ +
.logo {
+  width: min(50vw, 300px);
+}
+
+ +
<img src="https://developer.mozilla.org/static/img/web-docs-sprite.svg" alt="MDN Web Docs" class="logo">
+ +

{{EmbedLiveSample("Growing_images_to_a_maximum_size", "100%", "60")}}

+ +

在这个例子中,除非视口比 600px 更窄,否则logo的宽会被设置为 300px,到时候,它会随着视口的缩小而缩小,而且总是视口宽度的50%。

+ +

给 label 和 input 设置最大值

+ +

CSS方法的另一个用途时设置响应式组件(form)的最大尺寸:让 label 和 input 的宽度随着组件的缩小而缩小。

+ +

看下面的样式:

+ +
input, label {
+  padding: 2px;
+  box-sizing: border-box;
+  display: inline-block;
+  width: min(40%, 400px);
+  background-color: pink;
+}
+
+form {
+  margin: 4px;
+  border: 1px solid black;
+  padding: 4px;
+}
+
+ +

这里,form 的 margin,border,padding 总是它父元素的宽度的100%。我们声明 input 和 label 的宽度比form的40%还小或者400px宽,只要取决于哪一个最小。换句话说,input 和 label 的最大宽度就是400px,最窄就是form的40%。因此看起来会显得很小。

+ +
<form>
+  <label>Type something:</label>
+  <input type="text">
+</form>
+
+ +

{{EmbedLiveSample("Setting_a_maximum_size_for_an_label_and_input", "100%", "80")}}

+ +

Think of the min() function as finding the maximum value allowed for a property.

+ +

无障碍问题

+ +

min() 用于控制文本大小时,要保证文本足够大以便于阅读。建议把 min() 方法嵌入到 {{CSSxRef("max", "max()")}} 中, relative length unit 这样就可以便于阅读,比如:

+ +
small {
+  font-size: max(min(0.5vw, 0.5em), 1rem);
+}
+ +

这用于保证最小值是1rem,这样在页面缩放时文本也会缩放。

+ + + +

说明

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName("CSS4 Values", "#calc-notation", "min()")}}{{Spec2("CSS4 Values")}}Initial definition.
+ +

Browser compatibility

+ + + +

{{Compat("css.types.min")}}

+ +

See also

+ + -- cgit v1.2.3-54-g00ecf