只用原生html,js,css实现文字超出了div自动创建相同的div显示,如果再超出就又在新创建新的相同的div
时间: 2024-03-22 17:38:03 浏览: 52
好的,你的问题是如何用原生HTML、JS、CSS实现文字超出div自动创建相同的div显示,如果再超出就又创建新的相同的div。
这个问题可以通过JS来解决。我们可以通过计算文本内容的宽度和div容器的宽度,来判断文本是否超出div容器。如果超出,就可以通过JS动态创建一个新的相同的div,并将超出的文本放到新的div中。
下面是一个简单的实现:
HTML代码:
```html
<div id="container">
<div class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
</div>
```
CSS代码:
```css
#container {
width: 200px;
height: 100px;
border: 1px solid black;
overflow: hidden;
}
.text {
white-space: nowrap;
}
```
JS代码:
```javascript
// 获取容器和文本元素
var container = document.getElementById('container');
var text = document.querySelector('.text');
// 计算文本内容的宽度和容器的宽度
var textWidth = text.offsetWidth;
var containerWidth = container.offsetWidth;
// 如果文本内容的宽度超出容器的宽度
if (textWidth > containerWidth) {
// 动态创建一个新的div
var newDiv = document.createElement('div');
newDiv.className = 'text';
newDiv.innerHTML = text.innerHTML;
// 将新的div添加到容器中
container.appendChild(newDiv);
// 递归调用函数,直到文本内容不再超出容器
arguments.callee();
}
```
这个例子中,我们首先设置了一个固定宽度和高度的div容器,并将它的overflow属性设置为hidden,这样可以隐藏超出容器的部分。然后,我们在容器中放置了一个文本元素,并将它的white-space属性设置为nowrap,这样可以防止文本换行。
接着,我们使用JS获取容器和文本元素,并计算文本内容的宽度和容器的宽度。如果文本内容的宽度超出容器的宽度,就动态创建一个新的div,并将超出的文本放到新的div中。然后,我们递归调用函数,直到文本内容不再超出容器。
阅读全文