我知道这可以通过Javascript轻松解决,但我只对纯CSS解决方案感兴趣.
我想要一种动态调整文本大小的方法,以便它始终适合固定的div.以下是示例标记:
<div style="width: 200px; height: 1em; overflow: hidden;">
<p>Some sample dynamic amount of text here</p>
</div>Run Code Online (Sandbox Code Playgroud)
我想也许这可以通过在ems中指定容器的宽度,并使字体大小继承该值来实现?
<html>
<head>
</head>
<body>
<input type="text" value="1" style="min-width:1px;" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我的代码,它不起作用.HTML,JavaScript,PHP或CSS中是否还有其他方法可以设置最小宽度?
我想要一个动态变化宽度的文本输入字段,以便输入字段围绕其内容流动.每个输入都有一个内置的填充2em,这就是问题,第二个问题是min-width根本没有输入.
如果我设置宽度超过需要的宽度比整个程序凌乱,我需要1px的宽度,只有在需要时才需要更多.
我有一个弹性布局的网页,如果调整浏览器窗口大小,它会改变其宽度.
在这种布局中,标题(h2)将具有可变长度(实际上是我无法控制的博客标题的头条新闻).目前 - 如果它们比窗户宽 - 它们分成两行.
是否有一个优雅的,经过测试的(跨浏览器)解决方案 - 例如使用jQuery - 缩短了标题标签的innerHTML,如果文本太宽而无法放入当前屏幕的一行,则会添加"..."容器宽度?
我四处搜索,找不到这个.我试图得到一个div的宽度,但如果它有一个小数点,它会舍入数字.
例:
#container{
background: blue;
width: 543.5px;
height: 20px;
margin: 0;
padding: 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做$('#container').width();将返回543而不是543.5.如何让它不对数字进行舍入并返回完整的543.5(或任何数字).
我可以在css中设置初始文本输入大小,如下所示:
width: 50px;
Run Code Online (Sandbox Code Playgroud)
但是当我打字直到达到例如200px时,我希望它能够增长.这可以用直接的css,html完成,最好不用javascript吗?
当然也要发布你的js/jquery解决方案,但如果没有它们就可以做到 - 这很棒.
我试试这里:
如果我知道字体大小(12)和字体系列(calibri),有没有办法确定给定字符串渲染后的长度(以像素为单位)?我绝对肯定字体和大小.是否有用于此目的的查找表来确定PHP代码本身的长度?我正在编写一个PHP脚本来动态生成一个SVG图像,其中包含填充了从数据库中提取的数据的各种框.问题是,如果字符串很大,我需要手动包装文本并增加框的大小.
谢谢
我有一个输入类型的文本
<input type="text" id="txtid">
Run Code Online (Sandbox Code Playgroud)
当我开始在输入中键入文本时,我应该能够获得输入文本的长度.
这是我试过的:
document.getElementById("txtid").offsetWidth;
Run Code Online (Sandbox Code Playgroud)
和
var test = document.getElementById("txtid");
var width = (test.clientWidth + 1) + "px";
Run Code Online (Sandbox Code Playgroud)
这两个不给出输入文本的宽度
基本上我想要的是:
假设input text宽度是320px.我需要输入文本的宽度,即120px我进入时不断变化.
我正在利用虚拟化列表 ( react-virtualized ),其中需要我的列表项的高度并且可能会有很大差异。由于变化很大,我给库的任何高度估计都会产生糟糕的体验。
高度计算的常用方法是这样的:
const containerStyle = {
display: "inline-block",
position: "absolute",
visibility: "hidden",
zIndex: -1,
};
export const measureText = (text) => {
const container = document.createElement("div");
container.style = containerStyle;
container.appendChild(text);
document.body.appendChild(container);
const height = container.clientHeight;
const width = container.clientWidth;
container.parentNode.removeChild(container);
return { height, width };
};
Run Code Online (Sandbox Code Playgroud)
不幸的是,当您处理包含不同大小项目的超大列表时,这不是高效的。虽然可以利用缓存,但当您需要在一开始就知道总高度(所有项目组合的高度)时,即使这样做也不会很好。
经常使用的第二种解决方案是通过 HTML canvas' measureText。性能类似于上面的 DOM 操作。
就我而言,我知道以下几点:
我正在寻找的是一个数学解决方案,它可以计算高度(或非常接近的估计),这样我就不必依赖任何 DOM 操作,而且我可以随时获得高度。
我想它是这样的:
const measureText = (text, options) => {
const { …Run Code Online (Sandbox Code Playgroud) 是否有可能以某种方式测量具有多个中断/返回的段落中最后一行文本的长度?
Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Donec id elit non mi porta gravida at eget metus. Nulla vitae
elit libero, a pharetra augue. Nullam id dolor id nibh
ultricies vehicula ut id elit. Vivamus sagittis lacus vel
[here] ->|augue laoreet rutrum faucibus dolor auctor.|<- [to here]
Run Code Online (Sandbox Code Playgroud)
注意:文本中没有手动中断.它是一个包含在内部的单行文本,比方说,一个<p></p>标记.