我有一个容器div,属性为overflow: hidden
,max-height
为100 px。这个容器元素包含任意数量的内联元素,包括图像和样式化文本。
当前,如果存在超过100 px的内容,则剪切其余内容。这是我想要的一般行为,除了我不断遇到文本行的部分被裁剪的问题(即,字母的下半部分将被剪掉)或者图像的一半将被裁剪掉。
我找到了一个解决文本问题的方法,通过手动设置列宽属性,但我找不到任何方法来阻止图像被裁剪。如果任何单独的文本行或图像不能在容器div中完整地呈现,我希望隐藏整个图像/文本行。
**总结:**我有一个div元素,它 Package 了一堆内联元素(主要是文本和图像)并隐藏了任何溢出,我不想显示任何文本行或图像,它会裁剪/裁剪某些部分。我已经找到了文本问题的解决方法,但不是图像。如何实现我想要的功能?
编辑:根据评论者的请求,我发布了我的,尽管微不足道的代码:
超文本标记语言:
<div id="test">
<p>
This is a test. This is a test.This is a test.This is a test.This is a test.This is a test.This is a test.This is a test.This is a test.
</p>
<img src="https://hackernoon.com/hn-images/0*xMaFF2hSXpf_kIfG.jpg" alt="Girl in a jacket" width="500" height="600">
</div>
行内元素将只是 Package 在适当标记中的文本和图像(它们的实际值是动态的,并根据情况而变化。我在这里提供的内容只是一个例子。
CSS:
#test {
max-height: 200px;
max-width:200px;
overflow: hidden;
}
这里有一个JS fiddle的例子。正如你所看到的,图像被裁剪了。
这里是another JS Fiddle Example,其中文本本身在行的中途被剪切。
在第一个例子中,我希望图像根本不显示。
在第二种情况下,我希望最后一行根本不显示。
不能完整显示的元素不应显示。我有特别的麻烦得到这个图像所需的行为,所以任何帮助,将特别感谢。
2条答案
按热度按时间pwuypxnk1#
您可以使用JavaScript实现所需的行为。在这个片段中,我只是为了说明的目的,给“隐藏”项一个低不透明度。显然,您可以在实际应用程序中简单地将隐藏项设置为
visibility: hidden
或display: none
。gijlo24d2#
如果我理解正确的话,那么你的组件的逻辑如下:
1)如果您的文本和图像的高度在200px以内,则正常显示。
2)如果文本或图像太大,无法放入div,则不显示其中之一。
3)如果文本或图像本身太大,无法放入div中,则不显示它们。
如果这是正确的,那么很可能你需要做的是涉及某种JavaScript。
你可以做的是用JavaScript检查这些段落或图像的高度,然后有条件地应用一些css类来隐藏它们。
下面是一个使用Jquery检查段落是否太高的例子:
这里的css类类似于
.hide-paragraph{display:none;}
然后对图像做同样的事情。您可能需要在forEach循环或类似的东西中执行此操作,以便它检查每个div,而不仅仅是一个。
如果你想同时检查段落和图片的高度,那么你可以执行一个类似于上面例子的if语句,但是在检查它是否超过200px之前,只需要添加两个元素的高度。
希望能帮上忙。