【发布时间】:2020-12-11 07:34:30
【问题描述】:
有一个类型为 number 的输入,用户可以在其中写一个数字。如果数字大于 4,它会将输入边框的颜色更改为红色。
我想在相同的情况下显示工具提示,而不是悬停。这是一种方法吗?
<div className="tooltip">
<input
className="partial-quantity-input"
type="number"
min="0"
max="4"
value={quantity}
onChange={changeValue}
/>
<span className="tooltiptext">Exceeds original ordered quantity.</span>
</div>
css:
.partial-quantity-input {
background: rgb(255, 255, 255);
border-radius: 0px;
border: 1px solid rgb(255, 255, 255);
height: 40px;
width: 40px;
outline: none;
&:focus {
border: 1px solid rgb(201, 200, 200);
}
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type='number'] {
-moz-appearance: textfield;
}
input:invalid {
outline: none;
border: 1px solid red;
}
.tooltip {
position: relative;
display: inline-block;
}
.tooltip .tooltiptext {
visibility: hidden;
bottom: 100%;
left: 50%;
margin-left: -60px;
width: 120px;
color: rgb(0, 0, 0);
text-align: center;
padding: 5px 0;
background: rgb(255, 255, 255);
border-radius: 3px;
border: 1px solid rgb(220, 220, 220);
height: 38px;
width: 252px;
/* Position the tooltip */
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
visibility: visible;
}
就像在代码中一样,它在悬停时显示工具提示 (.tooltip:hover)。
我尝试了.tooltip:invalid 或.tooltip(input:invalid),但没有成功。
有什么想法吗?
【问题讨论】:
-
使用通用兄弟组合器
.partial-quantity-input ~ .tooltiptext {display: none;} .partial-quantity-input:invalid ~ .tooltiptext {display:inline;}。
标签: javascript html css input tooltip