首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使输入占位符font-size与输入值font-size不同

如何使输入占位符font-size与输入值font-size不同
EN

Stack Overflow用户
提问于 2017-06-21 22:37:20
回答 3查看 11.3K关注 0票数 7

我所处的情况是,输入字段所需的占位符文本对于字段的宽度来说太长了。为了解决这个问题,我尝试给占位符一个更小的font-size。似乎无论我做什么,我都不能使占位符文本的font-size与值文本不同。我试过在一个上运行!important,两个都试过,但都没有成功。

我的React代码:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
.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;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-21 22:56:43

您的占位符font-size值与其包含元素的font-size值相关,因此1em将与文本输入的font-size大小相同:

代码语言:javascript
复制
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的分数即可完成此操作:

See fiddle

代码语言:javascript
复制
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;
} 
票数 8
EN

Stack Overflow用户

发布于 2017-06-21 22:51:15

试一试:placeholder-shown

代码语言:javascript
复制
input {
  font-size: 2em;
  height: 66.8125px !important;
  width: 150px;
}

input:placeholder-shown {
  font-size: 1em;
}
代码语言:javascript
复制
<input type="text" id="inputId" name="inputName" placeholder="A long string of text that does not fit" />

票数 3
EN

Stack Overflow用户

发布于 2017-06-21 22:51:40

实际上,:placeholder伪元素是输入的子元素。

因此,1em等同于2em,因为这是继承的字体大小。

1em与父字体大小的100%相同

如果希望伪元素的字体大小是父元素的一半,请使用font-size:50%

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44679144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档