fix(Button): text not align center in legacy safari (#6325)

This commit is contained in:
neverland
2020-05-20 19:22:14 +08:00
committed by GitHub
parent 1f117ab723
commit bb65c62b1e
36 changed files with 418 additions and 135 deletions

View File

@@ -2,9 +2,7 @@
.van-button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
display: inline-block;
box-sizing: border-box;
height: @button-default-height;
margin: 0;
@@ -125,7 +123,7 @@
}
&--block {
display: flex;
display: block;
width: 100%;
}
@@ -146,6 +144,15 @@
border-radius: 0;
}
// align-items are ignored when flex container is a button in legacy safari
// see: https://bugs.webkit.org/show_bug.cgi?id=169700
&__content {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
&__icon {
min-width: 1em;
font-size: 1.2em;

View File

@@ -149,7 +149,7 @@ function Button(
onTouchstart={onTouchstart}
{...inherit(ctx)}
>
{Content()}
<div class={bem('content')}>{Content()}</div>
</tag>
);
}

View File

@@ -3,26 +3,84 @@
exports[`renders demo correctly 1`] = `
<div>
<div>
<div class="demo-button-row"><button class="van-button van-button--default van-button--normal"><span class="van-button__text">默认按钮</span></button> <button class="van-button van-button--primary van-button--normal"><span class="van-button__text">主要按钮</span></button> <button class="van-button van-button--info van-button--normal"><span class="van-button__text">信息按钮</span></button></div> <button class="van-button van-button--danger van-button--normal"><span class="van-button__text">危险按钮</span></button> <button class="van-button van-button--warning van-button--normal"><span class="van-button__text">警告按钮</span></button>
<div class="demo-button-row"><button class="van-button van-button--default van-button--normal">
<div class="van-button__content"><span class="van-button__text">默认按钮</span></div>
</button> <button class="van-button van-button--primary van-button--normal">
<div class="van-button__content"><span class="van-button__text">主要按钮</span></div>
</button> <button class="van-button van-button--info van-button--normal">
<div class="van-button__content"><span class="van-button__text">信息按钮</span></div>
</button></div> <button class="van-button van-button--danger van-button--normal">
<div class="van-button__content"><span class="van-button__text">危险按钮</span></div>
</button> <button class="van-button van-button--warning van-button--normal">
<div class="van-button__content"><span class="van-button__text">警告按钮</span></div>
</button>
</div>
<div><button class="van-button van-button--primary van-button--normal van-button--plain"><span class="van-button__text">朴素按钮</span></button> <button class="van-button van-button--info van-button--normal van-button--plain"><span class="van-button__text">朴素按钮</span></button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--plain van-button--hairline van-hairline--surround"><span class="van-button__text">细边框按钮</span></button> <button class="van-button van-button--info van-button--normal van-button--plain van-button--hairline van-hairline--surround"><span class="van-button__text">细边框按钮</span></button></div>
<div><button disabled="disabled" class="van-button van-button--primary van-button--normal van-button--disabled"><span class="van-button__text">禁用状态</span></button> <button disabled="disabled" class="van-button van-button--info van-button--normal van-button--disabled"><span class="van-button__text">禁用状态</span></button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--loading">
<div class="van-loading van-loading--circular van-button__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color: currentColor; width: 20px; height: 20px;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div>
</button> <button class="van-button van-button--primary van-button--normal van-button--loading">
<div class="van-loading van-loading--spinner van-button__loading"><span class="van-loading__spinner van-loading__spinner--spinner" style="color: currentColor; width: 20px; height: 20px;"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div>
</button> <button class="van-button van-button--info van-button--normal van-button--loading">
<div class="van-loading van-loading--circular van-button__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color: currentColor; width: 20px; height: 20px;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div><span class="van-button__text">加载中...</span>
<div><button class="van-button van-button--primary van-button--normal van-button--plain">
<div class="van-button__content"><span class="van-button__text">朴素按钮</span></div>
</button> <button class="van-button van-button--info van-button--normal van-button--plain">
<div class="van-button__content"><span class="van-button__text">朴素按钮</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--plain van-button--hairline van-hairline--surround">
<div class="van-button__content"><span class="van-button__text">细边框按钮</span></div>
</button> <button class="van-button van-button--info van-button--normal van-button--plain van-button--hairline van-hairline--surround">
<div class="van-button__content"><span class="van-button__text">细边框按钮</span></div>
</button></div>
<div><button disabled="disabled" class="van-button van-button--primary van-button--normal van-button--disabled">
<div class="van-button__content"><span class="van-button__text">禁用状态</span></div>
</button> <button disabled="disabled" class="van-button van-button--info van-button--normal van-button--disabled">
<div class="van-button__content"><span class="van-button__text">禁用状态</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--loading">
<div class="van-button__content">
<div class="van-loading van-loading--circular van-button__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color: currentColor; width: 20px; height: 20px;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div>
</div>
</button> <button class="van-button van-button--primary van-button--normal van-button--loading">
<div class="van-button__content">
<div class="van-loading van-loading--spinner van-button__loading"><span class="van-loading__spinner van-loading__spinner--spinner" style="color: currentColor; width: 20px; height: 20px;"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span></div>
</div>
</button> <button class="van-button van-button--info van-button--normal van-button--loading">
<div class="van-button__content">
<div class="van-loading van-loading--circular van-button__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color: currentColor; width: 20px; height: 20px;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div><span class="van-button__text">加载中...</span>
</div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--square">
<div class="van-button__content"><span class="van-button__text">方形按钮</span></div>
</button> <button class="van-button van-button--info van-button--normal van-button--round">
<div class="van-button__content"><span class="van-button__text">圆形按钮</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal">
<div class="van-button__content"><i class="van-icon van-icon-star-o van-button__icon">
<!----></i></div>
</button> <button class="van-button van-button--primary van-button--normal">
<div class="van-button__content"><i class="van-icon van-icon-star-o van-button__icon">
<!----></i><span class="van-button__text">按钮</span></div>
</button> <button class="van-button van-button--primary van-button--normal van-button--plain">
<div class="van-button__content"><i class="van-icon van-button__icon"><img src="https://img.yzcdn.cn/vant/logo.png" class="van-icon__image">
<!----></i><span class="van-button__text">按钮</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--large">
<div class="van-button__content"><span class="van-button__text">大号按钮</span></div>
</button> <button class="van-button van-button--primary van-button--normal">
<div class="van-button__content"><span class="van-button__text">普通按钮</span></div>
</button> <button class="van-button van-button--primary van-button--small">
<div class="van-button__content"><span class="van-button__text">小型按钮</span></div>
</button> <button class="van-button van-button--primary van-button--mini">
<div class="van-button__content"><span class="van-button__text">迷你按钮</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--block">
<div class="van-button__content"><span class="van-button__text">块级元素</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal">
<div class="van-button__content"><span class="van-button__text">URL 跳转</span></div>
</button> <button class="van-button van-button--primary van-button--normal">
<div class="van-button__content"><span class="van-button__text">路由跳转</span></div>
</button></div>
<div><button class="van-button van-button--default van-button--normal" style="color: rgb(255, 255, 255); background: rgb(114, 50, 221); border-color: #7232dd;">
<div class="van-button__content"><span class="van-button__text">单色按钮</span></div>
</button> <button class="van-button van-button--default van-button--normal van-button--plain" style="color: rgb(114, 50, 221); border-color: #7232dd;">
<div class="van-button__content"><span class="van-button__text">单色按钮</span></div>
</button> <button class="van-button van-button--default van-button--normal" style="color: rgb(255, 255, 255); border: 0px;">
<div class="van-button__content"><span class="van-button__text">渐变色按钮</span></div>
</button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--square"><span class="van-button__text">方形按钮</span></button> <button class="van-button van-button--info van-button--normal van-button--round"><span class="van-button__text">圆形按钮</span></button></div>
<div><button class="van-button van-button--primary van-button--normal"><i class="van-icon van-icon-star-o van-button__icon">
<!----></i></button> <button class="van-button van-button--primary van-button--normal"><i class="van-icon van-icon-star-o van-button__icon">
<!----></i><span class="van-button__text">按钮</span></button> <button class="van-button van-button--primary van-button--normal van-button--plain"><i class="van-icon van-button__icon"><img src="https://img.yzcdn.cn/vant/logo.png" class="van-icon__image">
<!----></i><span class="van-button__text">按钮</span></button></div>
<div><button class="van-button van-button--primary van-button--large"><span class="van-button__text">大号按钮</span></button> <button class="van-button van-button--primary van-button--normal"><span class="van-button__text">普通按钮</span></button> <button class="van-button van-button--primary van-button--small"><span class="van-button__text">小型按钮</span></button> <button class="van-button van-button--primary van-button--mini"><span class="van-button__text">迷你按钮</span></button></div>
<div><button class="van-button van-button--primary van-button--normal van-button--block"><span class="van-button__text">块级元素</span></button></div>
<div><button class="van-button van-button--primary van-button--normal"><span class="van-button__text">URL 跳转</span></button> <button class="van-button van-button--primary van-button--normal"><span class="van-button__text">路由跳转</span></button></div>
<div><button class="van-button van-button--default van-button--normal" style="color: rgb(255, 255, 255); background: rgb(114, 50, 221); border-color: #7232dd;"><span class="van-button__text">单色按钮</span></button> <button class="van-button van-button--default van-button--normal van-button--plain" style="color: rgb(114, 50, 221); border-color: #7232dd;"><span class="van-button__text">单色按钮</span></button> <button class="van-button van-button--default van-button--normal" style="color: rgb(255, 255, 255); border: 0px;"><span class="van-button__text">渐变色按钮</span></button></div>
</div>
`;

View File

@@ -1,12 +1,16 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`icon-prefix prop 1`] = `
<button class="van-button van-button--default van-button--normal"><i class="my-icon my-icon-success van-button__icon">
<!----></i></button>
<button class="van-button van-button--default van-button--normal">
<div class="van-button__content"><i class="my-icon my-icon-success van-button__icon">
<!----></i></div>
</button>
`;
exports[`loading-size prop 1`] = `
<button class="van-button van-button--default van-button--normal van-button--loading">
<div class="van-loading van-loading--circular van-button__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color: currentColor; width: 10px; height: 10px;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div>
<div class="van-button__content">
<div class="van-loading van-loading--circular van-button__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color: currentColor; width: 10px; height: 10px;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div>
</div>
</button>
`;