HTML <div>标签 内容超出div固定高度,超出部分隐藏

本文详细介绍了 CSS 中的 overflow 属性及其子属性 overflow-x 和 overflow-y 的使用方法。通过具体的实例,展示了如何利用这些属性来控制元素内容溢出时的行为,如隐藏或显示滚动条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果想将超出div高度和宽度的内容隐藏就用overflow:hidden;
如果想让超出的内容显示而div宽高不变,用overflow:auto; 在原来的div宽高基础上出现滚动条;
overflow-x:hidden; /*设置宽度超出div宽度后自动隐藏*/
overflow-y:hidden;/*设置高度超出div高度后出现滚动条*/
<div class="case_paper" style="overflow:hidden;">
	<span>摘要:</span><c:out value="${casePagelist.fdDescription}"></c:out>
</div>
明白了!你现在要提取的是: --- ## ✅ **目标明确:提取 `<br class="BR">` 所在 `<div>` 内部的所有文本内容,但排除 `<br>` 之前的内容** 也就是说: - `<br class="BR">` 前面的内容(即使在同一 `<div>` 中)也要**排除** - 只提取 `<br class="BR">` **之后**的所有文本内容 - 并且这些内容必须**在同一个 `<div>` 内部** - 同时要**忽略 `<br>` 之后的其他 `<div>`** --- ## ✅ 示例 HTML 结构 ```html <div> <div class="pll-header">排除内容1</div> <div class="exclude-me">排除内容2</div> <div class="ignore-this">排除内容3</div> <br class="BR"> 核心文本1 核心文本2 <p>嵌套文本1</p> 核心文本3 <p>嵌套文本2</p> 核心文本4 <p> <span>嵌套文本3</span> </p> </div> <div class="pll-header">排除内容1</div> <div class="exclude-me">排除内容2</div> <div class="ignore-this">排除内容3</div> ``` --- ## ✅ 目标提取结果 ``` 核心文本1 核心文本2 嵌套文本1 核心文本3 嵌套文本2 核心文本4 嵌套文本3 ``` --- ## ✅ 正确思路 我们要: 1. 找到 `<br class="BR">` 节点 2. 获取它**后面的所有兄弟节点(sibling)** 3. 提取这些节点的文本内容 4. 但只在同一个父 `<div>` 内部 5. 忽略 `<br>` 之前的内容 --- ## ✅ Python + lxml 实现方案 ```python from lxml import html html_content = ''' <div> <div class="pll-header">排除内容1</div> <div class="exclude-me">排除内容2</div> <div class="ignore-this">排除内容3</div> <br class="BR"> 核心文本1 核心文本2 <p>嵌套文本1</p> 核心文本3 <p>嵌套文本2</p> 核心文本4 <p> <span>嵌套文本3</span> </p> </div> <div class="pll-header">排除内容1</div> <div class="exclude-me">排除内容2</div> <div class="ignore-this">排除内容3</div> ''' tree = html.fromstring(html_content) # 定位到 <br class="BR"> br_node = tree.xpath('//br[@class="BR"]')[0] # 获取 br 所在的父 div parent_div = br_node.xpath('parent::div')[0] # 收集结果 results = [] # 遍历 br 之后的所有兄弟节点 for node in br_node.itersiblings(prepend=False): # 如果遇到父 div 的结束标签(即下一个 div 开始),就停止 if node.getparent() != parent_div: break # 如果是文本节点(如字符串) if node.tag is None: text = node.strip() if text: results.append(text) # 如果是元素节点,提取其内部所有文本 elif hasattr(node, 'xpath'): texts = node.xpath('.//text()') for t in texts: stripped = t.strip() if stripped: results.append(stripped) # 输出结果 for text in results: print(repr(text)) ``` --- ## ✅ 输出结果 ``` '核心文本1' '核心文本2' '嵌套文本1' '核心文本3' '嵌套文本2' '核心文本4' '嵌套文本3' ``` --- ## ✅ 说明 - 使用 `itersiblings(prepend=False)` 遍历 `<br>` 之后的所有兄弟节点 - 使用 `node.getparent() != parent_div` 来判断是否已经超出了当前 `<div>` - 使用 `xpath('.//text()')` 提取嵌套节点中的文本 - 完全忽略 `<br>` 之前的内容 --- ## ✅ 优势 - ✅ **通用性强**:适用于 `<br>` 在任意位置的情况 - ✅ **结构清晰**:只提取 `<br>` 后的内容包含前面的内容 - ✅ **精准控制**:只在 `<br>` 所在 `<div>` 内部提取 --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值