文字超出div时自动创建相同的div显示,可以结合JavaScript来实现。具体实现方式如下: 首先,在HTML中创建一个初始的div,设置它的class和id属性,以便后续的操作。 接着,使用JavaScript获取该div的高度和宽度,以及其中的文本内容。 判断文本内容是否超出该div的高度和宽度,如果超出则创建一个新的div,将文本内容添加到新的div中,并将新的div添加到原有div的后面。 如果新的div还是无法容纳所有文本内容,则继续创建新的div,直到所有文本内容都被容纳。,用原生的html,js,css实现,要完整的文件
时间: 2024-03-22 10:38:10 浏览: 65
好的,以下是完整的HTML、JS、CSS代码文件:
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Auto Create Div</title>
<style>
#container {
width: 200px;
height: 100px;
border: 1px solid black;
overflow: hidden;
}
.text {
white-space: nowrap;
}
</style>
</head>
<body>
<div id="container">
<div class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
</div>
<script>
var container = document.getElementById('container');
var text = document.querySelector('.text');
var textContent = text.innerHTML;
var containerWidth = container.offsetWidth;
var containerHeight = container.offsetHeight;
while (text.offsetHeight > containerHeight || text.offsetWidth > containerWidth) {
textContent = textContent.substring(0, textContent.length - 1);
text.innerHTML = textContent + '...';
}
while (text.offsetHeight > containerHeight || text.offsetWidth > containerWidth) {
var newDiv = document.createElement('div');
newDiv.className = 'text';
newDiv.innerHTML = textContent;
container.appendChild(newDiv);
var newHeight = container.offsetHeight + newDiv.offsetHeight;
if (newHeight > containerHeight) {
container.removeChild(newDiv);
break;
}
textContent = textContent.substring(newDiv.innerHTML.length);
}
</script>
</body>
</html>
```
在这个例子中,我们首先定义了一个固定宽度和高度的div容器,并将它的overflow属性设置为hidden,这样可以隐藏超出容器的部分。然后,我们在容器中放置了一个文本元素,并将它的white-space属性设置为nowrap,这样可以防止文本换行。
接着,我们使用JS获取容器和文本元素,并获取文本内容。然后,我们使用一个while循环,将文本内容逐渐缩短,直到文本内容的高度和宽度都小于或等于容器的高度和宽度。
接下来,我们再使用一个while循环,在新的div中逐一添加文本内容,直到所有文本内容都被容纳。如果新的div的高度超过容器的高度,则停止添加文本内容,否则继续添加文本内容。
最后,我们将新的div添加到容器中,并将剩余的文本内容保存起来,以备下一次循环使用。
阅读全文