CSS样式表未应用到PHP代码:.seiten_vor_zur内元素样式不生效
样式失效核心原因
同一段CSS在不同脚本里表现不一致,本质都是HTML结构非法导致浏览器自动修正DOM后,CSS选择器无法匹配目标元素,你的代码里有两个明确的结构错误:
- 标签嵌套不符合规范:
<td>是表格单元格标签,必须按<table>→<tr>→<td>的层级嵌套,你直接把<td>作为seiten_vor_zur这个div的子元素,还在<td>同级直接写 文本节点。浏览器渲染时会自动重构非法的DOM结构,大概率会把这些<td>以及内部的<a>标签移出seiten_vor_zur容器,你写的.seiten_vor_zur a这类后代选择器自然匹配不到目标元素。 - 标签开闭逻辑错误:
<div class="seiten_vor_zur">的开标签写在if判断分支内,但闭合的</div>写在if/else结构外。如果程序走到else分支,根本不会渲染这个div的开标签,只会留下一个无意义的孤立闭合标签,浏览器会直接忽略这个无效标签,else分支输出的<p>、返回链接自然不在seiten_vor_zur容器内,样式完全不会生效。
如果某个PHP脚本里这段CSS能正常运行,本质是那个脚本里的HTML结构合法,没有上述两个问题,选择器可以正常匹配元素。
修复方法
- 调整容器标签位置,把
seiten_vor_zur的开、闭标签都移到if/else判断的外层,保证无论走哪个逻辑分支,容器都是完整包裹内容的。 - 移除非法嵌套的
<td>标签:如果不需要表格布局,直接用普通div、span等元素替代即可;如果需要用表格,就补全<table>、<tr>的完整嵌套层级,不要单独使用<td>。
修复后的代码参考:
<div class="seiten_vor_zur"> <br> <?php if ($daten->getData_DB_User($get_page_num) != false) { ?> <div class="seitenanzahl"> <button disabled>Seite : <?php echo $get_page_num ?></button> </div> <a href="<?php echo $_SERVER['PHP_SELF'] . "?q=lesen&seite=" . $get_last_page; ?>" role="button">Vorherige Seite</a> <a href="<?php echo $_SERVER['PHP_SELF'] . "?q=lesen&seite=" . $get_next_page; ?>" role="button">Nächste Seite</a> <?php } else { echo "Es gibt keine weiteren Einträge.<p> <a href='javascript:window.history.back()'>Zurück</a> </p>"; } ?> </div>
修复完成后可以打开浏览器开发者工具的元素面板检查,确认目标<a>、<p>标签确实是seiten_vor_zur的后代元素,你之前写的CSS规则就可以正常生效。
内容的提问来源于stack exchange,提问作者Elly_G
相关产品推荐
相关产品推荐

