我处于这样一种情况,即输入字段所需的占位符文本对于字段的宽度来说太长。为了解决这个问题,我试图给占位符一个更小的font-size
。似乎无论我做什么,我都不能使占位符文本的font-size
与值文本不同。我试过把!important
扔在一个,两个,都没有运气。
我的反应代码:
<input
type="text"
id="inputId"
name="inputName"
placeholder="A long string of text that does not fit"
onChange={props.handleChange}
value={props.someValue}
className={styles.myClass}
/>
我的CSS:
.myClass {
font-size: 2em;
height: 66.8125px !important;
}
.myClass::-webkit-input-placeholder { /* WebKit browsers */
font-size: 1em;
}
.myClass:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
font-size: 1em;
}
.myClass::-moz-placeholder { /* Mozilla Firefox 19+ */
font-size: 1em;
}
.myClass:-ms-input-placeholder { /* Internet Explorer 10+ */
font-size: 1em;
}
答案 0 :(得分:3)
您的占位符字体大小值是相对于其包含元素的字体大小,因此1em的大小与文本输入的字体大小相同:
body {
font-size: 20px;
}
.myClass {
font-size: 2em; /* 2em -> body font-size * 2 -> 20px * 2 = 40px */
height: 66.8125px !important;
}
.myClass::-webkit-input-placeholder { /* WebKit browsers */
font-size: 1em; /* 1em -> input font-size * 1 -> 40px * 1 = 40px */
}
.myClass:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
font-size: 1em;
}
.myClass::-moz-placeholder { /* Mozilla Firefox 19+ */
font-size: 1em;
}
.myClass:-ms-input-placeholder { /* Internet Explorer 10+ */
font-size: 1em;
}
将值设置为小数为1可以解决问题:
body {
font-size: 20px;
}
.myClass {
font-size: 2em;
height: 66.8125px !important;
}
.myClass::-webkit-input-placeholder { /* WebKit browsers */
font-size: 0.5em;
}
.myClass:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
font-size: 0.5em;
}
.myClass::-moz-placeholder { /* Mozilla Firefox 19+ */
font-size: 0.5em;
}
.myClass:-ms-input-placeholder { /* Internet Explorer 10+ */
font-size: 0.5em;
}
答案 1 :(得分:2)
尝试git push -f
:
:placeholder-shown
input {
font-size: 2em;
height: 66.8125px !important;
width: 150px;
}
input:placeholder-shown {
font-size: 1em;
}
答案 2 :(得分:2)
:placeholder
伪元素实际上是输入的子元素。
因此,1em
将等于2em
,因为这是继承的字体大小。
1em与父字体大小的100%相同
如果您希望伪元素的字体大小为父元素的一半,请使用font-size:50%
。