使用纯 HTML + CSS 执行自动换行时如何保持一致(但未知)的宽度?
How do I maintain a consistent (but unknown) width when performing word wrap using pure HTML + CSS?
这对 Google 来说是一个非常难的问题,因为有很多类似的问题用类似的措辞。具体来说,我追求的纯粹是出于审美目的:
A long string can wrap like
this.
...但是:
I would prefer it
to wrap like this.
请注意,虽然它们都是两行,但它们不一定是两行。较短的行仍将正常显示:
Short Title...
...你可以有更长的行:
This is what a
solution might
look like if it
spanned multiple
lines.
Here's the exact problem I'm trying to solve.
我更喜欢它来平衡每行的长度,即使文本的左右两侧有更多 space。这个想法是每行的宽度与其上方的宽度一致。
问题是要换行的文本是动态的,可以有任意长度。我想知道是否有办法以非编程方式执行此操作。
我相信在 JavaScript 中应该有几种方法可以做到这一点,但首先我想用现代 HTML 和 CSS.[=17= 用尽我的选择]
谢谢!
我想如果你使用div并改变他的宽度
<!DOCTYPE html>
<html>
<head>
<style>
.myDiv {
text-align: center;
width: 100px;
}
</style>
</head>
<body>
<h1>Normal text Normal text Normal text</h1>
<div class="myDiv">
<h2>Div text Div text Div text Div text Div text Div text</h2>
</div>
<h1>Normal text Normal text Normal text</h1>
</body>
</html>
在相同的 css 和 html 中执行它可能是不可能的,但我发现使用 javascript
Here you have the link
也许使用 css ch
单位并使用 javascript.
使用filter
是去除白色space。
function divide(line){
const length = document.querySelector('div').textContent.split('').filter(i=>i!=" ").length;
document.querySelector('div').style.width = `${length/line}ch`
}
divide(3)
<div>I would prefer it to wrap like this.</div>
function divide(line) {
const length = document.querySelector('div').textContent.split('').filter(i => i != " ").length;
document.querySelector('div').style.width = `${length/line}ch`
}
divide(4)
<div>This is what a solution might look like if it spanned multiple lines.
</div>
这对 Google 来说是一个非常难的问题,因为有很多类似的问题用类似的措辞。具体来说,我追求的纯粹是出于审美目的:
A long string can wrap like
this.
...但是:
I would prefer it
to wrap like this.
请注意,虽然它们都是两行,但它们不一定是两行。较短的行仍将正常显示:
Short Title...
...你可以有更长的行:
This is what a
solution might
look like if it
spanned multiple
lines.
Here's the exact problem I'm trying to solve.
我更喜欢它来平衡每行的长度,即使文本的左右两侧有更多 space。这个想法是每行的宽度与其上方的宽度一致。
问题是要换行的文本是动态的,可以有任意长度。我想知道是否有办法以非编程方式执行此操作。
我相信在 JavaScript 中应该有几种方法可以做到这一点,但首先我想用现代 HTML 和 CSS.[=17= 用尽我的选择]
谢谢!
我想如果你使用div并改变他的宽度
<!DOCTYPE html>
<html>
<head>
<style>
.myDiv {
text-align: center;
width: 100px;
}
</style>
</head>
<body>
<h1>Normal text Normal text Normal text</h1>
<div class="myDiv">
<h2>Div text Div text Div text Div text Div text Div text</h2>
</div>
<h1>Normal text Normal text Normal text</h1>
</body>
</html>
在相同的 css 和 html 中执行它可能是不可能的,但我发现使用 javascript
Here you have the link
也许使用 css ch
单位并使用 javascript.
使用filter
是去除白色space。
function divide(line){
const length = document.querySelector('div').textContent.split('').filter(i=>i!=" ").length;
document.querySelector('div').style.width = `${length/line}ch`
}
divide(3)
<div>I would prefer it to wrap like this.</div>
function divide(line) {
const length = document.querySelector('div').textContent.split('').filter(i => i != " ").length;
document.querySelector('div').style.width = `${length/line}ch`
}
divide(4)
<div>This is what a solution might look like if it spanned multiple lines.
</div>