Html 检测div是否有多行
如何检测div是否有多行?我的意思是:Html 检测div是否有多行,html,css,Html,Css,如何检测div是否有多行?我的意思是: div :multiline { ... } 我想格式化有关行数(1行或更多)的内容。如果您愿意使用Javascript/JQuery,您可以检查div的高度,看看它是否大于仅使用一行文本时的高度。当然,这不是很容易出错,但我不知道另一种方法。我不确定您是否能够使用CSS管理这一点,但您应该能够使用JQuery。我必须承认,我的JQuery不是很好,我正在学习它,所以一定要谨慎对待。可以使用特性的高度来查找div的高度,并根据div的高度添加必要的
div :multiline {
...
}
我想格式化有关行数(1行或更多)的内容。如果您愿意使用Javascript/JQuery,您可以检查div的高度,看看它是否大于仅使用一行文本时的高度。当然,这不是很容易出错,但我不知道另一种方法。我不确定您是否能够使用CSS管理这一点,但您应该能够使用JQuery。我必须承认,我的JQuery不是很好,我正在学习它,所以一定要谨慎对待。可以使用特性的高度来查找div的高度,并根据div的高度添加必要的样式
$( "div" ).ready(
function test(event) {
var heightOfDiv = $( document ).height();
if (heightOfDiv > 15){
$("div").css({
backgroundColor: "green"
});}
}
);
与其说这是一个解决方案,不如说这是一个可能导致解决方案的东西。我觉得你的问题很有趣;所以我决定玩一下CSS 它使用内部
span
的当前宽度(通过内联块
显示给出)来确定缩进宽度。我们使用calc()
使缩进100%
减去添加了最终缩进的200px
的父宽度(30px
)
如果单行内容不接近容器的全宽,则效果最佳
简要说明:
calc()
():在
伪类()之前内联块元素来跟踪内容宽度
<h1>Success Cases</h1>
<p><span class="indent">Single line Single line</span></p>
<p><span class="indent">The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.</span></p>
<h1>Failure Cases</h1>
<p><span class="indent">Single line Single line Single 1</span></p>
<p><span class="indent">Single line Single line Single line</span></p>
p {
background-color: #ccc;
margin: 10px;
width: 200px;
}
p > .indent {
display: inline-block;
}
p > .indent:before {
background-color: red;
content: "";
float: left;
width: calc(100% - 200px + 30px);
height: 1em;
}
@基斯科帕尼不是我见过的,我也不这么认为。搜索了一下,没有发现JS-less.CSS有伪元素
::first-line
,但这是CSS中唯一可用的基于行的选择器,它没有创建条件检查或样式的真正能力。你想如何格式化内容?这个div将是一个“警报”div,如果它只有一行,我想做左填充:0px
,否则左填充:5px
我认为你的演示对于OP真正想要的东西不是很直观(比如想象中的:多行
伪类),您是否可以编辑演示,以便如果div
仅包含一行,其背景色将为绿色
,如果它包含多行,其背景色应为红色
?在一般情况下,我们需要更多的样式属性,而不仅仅是背景色。不幸的是,这只适用于缩进,而缩进正是OP在其原始帖子的评论中试图实现的。它不会检测多行,而是使用内容的宽度来确定缩进宽度。我认为,一个更通用的解决方案实际上可以检测一个元素是否是多行的,它只适用于JavaScript。您可能会确定它是服务器端的,并附加一个多行类,但如果用户代理覆盖、缩小或放大字体大小,则该操作将失败。在您希望实现的情况下,我建议使用JavaScript。