- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我试图在 Chrome 中使用相同的值、带占位符的文本输入和跨度来设置文本输入的样式。具体来说,我想独立于字体大小来控制行高。
但是,输入值似乎有某种最小行高(或引起类似影响的东西),这似乎以某种方式将文本向下推,从而阻止了相同的样式。
示例 HTML:
<div>
<input type="text" value="Text">
<input type="text" placeholder="Text">
<span>Text</span>
</div>
CSS:
div {
line-height: 50px;
font-family: Arial;
}
input,
span {
font-size: 50px;
line-height: 50px;
height: 50px;
width: 100px;
padding: 0;
min-height: 0;
display: inline-block;
font-family: inherit;
border: 2px solid red;
overflow: hidden;
vertical-align: top;
}
结果可以在
看到http://plnkr.co/edit/oHbhKDSPTha8ShWVOC7N?p=preview以及来自 Linux 上的 Chrome 44.0.2403.155(64 位)的以下屏幕截图:
奇怪的是,占位符的样式似乎符合所需的行高,而输入的文本值的位置不同。此时我不关心占位符的颜色。
如何设置所有 3 个元素的样式,使文本位于同一位置,我使用自定义行高?
我知道我可以将行高设置为 normal
或 1.2
,或者减小字体大小,以使元素显示相同,但它们不会我正在寻找的视觉外观。
最佳答案
在我的测试中,行高似乎必须至少是字体大小的 ~115%,所以如果你想要 50px 高的元素,你必须有 ~43px 才能让所有的东西排列起来:
图 1. 字体大小为 50 像素行高的 86%。一切正常,但不符合 OP 要求的 50px 字体大小。
input, span {
border: 2px solid red;
display: inline-block;
font: 43px Arial;
line-height: 50px;
padding: 0;
vertical-align: middle;
width: 100px;
outline-style:none;
box-shadow:none;
overflow:hidden;
/* optional - to include the borders in the element size:
box-sizing:border-box;
*/
}
<input type="text" value="Text">
<input type="text" placeholder="Text">
<span>Text</span>
如果将字体大小增加到所需的 50px,则输入框所遵循的最小行高为 ~58px。任何通过垂直对齐来抵消它的尝试都对输入没有影响,但我们可以修复元素高度并 overflow hidden 以提供一致的(尽管不是完全体面的)外观:
图 2. 50 像素的文本强制行高为 58 像素,并隐藏了溢出。
input, span {
border: 2px solid red;
display: inline-block;
font: 50px Arial;
line-height: 58px;
padding: 0;
height:50px;
vertical-align: top;
width: 100px;
outline-style:none;
box-shadow:none;
overflow:hidden;
/* optional - to include the borders in the element size:
box-sizing:border-box;
*/
}
<input type="text" value="Text">
<input type="text" placeholder="Text">
<span>Text</span>
关闭,但没有雪茄。但这让我开始思考——也许伪元素的限制更少?我发现您甚至可以在 input
中设置 input::first-line
伪代码的样式,并且这将尊重高度、字体大小, 行高和垂直对齐!
因此瞧!
图 3. 获胜的第一行伪元素!
input, span {
border: 2px solid red;
display: inline-block;
font: 50px Arial;
line-height: 50px;
height: 50px;
padding: 0;
vertical-align: middle;
width: 100px;
outline-style:none;
box-shadow:none;
overflow:hidden;
/* optional - to include the borders in the element size:
box-sizing:border-box;
*/
}
input::first-line, span::first-line {
vertical-align: middle;
}
/* weirdly the placeholder goes black so we have to recolour the first-line */
input::-webkit-input-placeholder::first-line {
color:grey;
}
<input type="text" value="Text">
<input type="text" placeholder="Text">
<span>Text</span>
这里有一个 jsFiddle,所以你可以看到我的锻炼。 ;)
关于html - Chrome 上的文本输入 : line-height seems to have a minimum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33185205/
这个问题在这里已经有了答案: How can I vertically align elements in a div? (28 个答案) Vertical Aligned Text and Im
我想做一个像 view0.height = view1.height + view2.height 这样的约束。当 view1.height 或 view2.height 改变时,view0.heig
有人可以解释为什么这个标记: 呈现大约 2x18 的 float div(在 Chrome/Firefox 中)而不是 2x2 div? 即使所有空格都被删除,图像似乎也遵循 font-
我的 HTML 页面上有一些可拉伸(stretch)的元素。 使用这个 CSS .stretchable-element { height: 25%; } 随着浏览器窗口高度的增加,可伸缩元素
我在“developer.android.com”上查看以缩小我的位图文件,但我发现了一件事我不明白。所以我很感激你能给我一点帮助。 这是一个 snippet来自 developer.android.
假设我们有以下设置: .container { background-color: red; width: 500px; min-height: 300px; } .child { b
我遇到了高度错误的问题 $(window).height(); 也有类似的问题 here 就我而言,当我尝试时 $(document).height(); 它似乎返回了正确的结果 窗口高度返回320
我正在尝试使用 javaFX (2.2) 开发桌面应用程序,但我遇到了一些困难,无法真正让它按照我希望的方式运行。作为该框架的新用户,我可能没有按应有的方式使用它... 我想要的是一种仪表板,在 Sc
就这么简单:) 我右边的列动态变化,由于左列的高度设置为 100%,我认为根据 Right_Column 的高度动态修改容器的高度会很好。有小费吗?谢谢:) 最佳答案 如果我正确理解了问题,你可以做这
我有一个 ScrollView(包含 NSTextEditor),其顶部、左侧和右侧约束相对于其容器(主窗口)正确设置为 0。 我无法使其高度为主容器的一半。有什么帮助吗? 最佳答案 如果我理解正确,
这个问题之前曾被问过(Infinite Scroll on Mobile browsers),但没有得到回应。 我正在尝试实现无限滚动。 检查文档是否在底部,导致更多加载的函数是: if ($(win
这个问题在这里已经有了答案: height:100% VS min-height:100% (4 个答案) 关闭 6 年前。
我在尝试解决这个问题时遇到了一些问题。我已经编写了一个 jquery 函数来检测用户何时点击页面底部并触发一个函数。现在,虽然这适用于最常见的屏幕尺寸,但当用户的屏幕太大以至于可以一次看到整个页面时,
如何获得与导航高度(填充)相同的导航高度 ...!? nav { width: 100%; } nav ul { text-align: center; background-
所以,实际上我可能完全想多了,应该放弃最小高度,但我目前有以下 HTML:
我正在阅读 Bootsrap3 文档。我发现这段页脚代码粘在屏幕底部。 html, body { height: 100%; } #wrap { min-height: 100%; height: a
我对容器 div 的高度有疑问。我想 它是 body 的 100%,但不起作用。我添加了 css body height=100% var d = document; $(d).ready(funct
我有一个三部分布局:页眉、内容和页脚。我非常熟悉绝对定位技术;当我希望内容 div 扩展到可用高度的 100% 时,我经常使用它。 在这种情况下,我的问题是我事先不知道页脚的高度,它是根据自己的内容动
在下面的代码中,我尝试实现无限滚动。我遇到的问题是“document.height”和“window.height”返回相同的值。有人可以帮我解决我哪里出错了吗?
我有一个页面布局,其中两个 div 在一行中彼此相邻对齐。一列包含可变长度的文本,第二列包含图像。 标记基本上如下: texttext 我的
我是一名优秀的程序员,十分优秀!