php - 为响应式媒体查询切换 php 字符限制

标签 php css responsive-design media-queries

我有一个响应式网站,它对某些文本 block 有 php 字符限制。限制因台式机、平板电脑或移动设备而异,但我正在努力根据设备/尺寸切换此限制。

这是我用来限制文本的 php 代码:

<?php 
ob_start();
the_content();
$old_content = ob_get_clean();
$new_content = strip_tags($old_content);            

if(strlen($new_content) > 400) {     
    echo substr($new_content,0,400) . "..."; 
} else {
    echo substr($new_content,0,400); 
} ?>

我如何切换与使网站响应的媒体查询相关的限制?据我所知,这不能用 css 完成,对吗?


CSS 尝试:

p.tester {
    white-space: nowrap;
    width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height:300px;
}

目前限制在一行,是否可以显示5行?

最佳答案

你不能。 PHP是服务器端的,服务器不知道屏幕的分辨率是多少,没有任何帮助。

您可以添加 AJAX 调用,告诉 PHP 屏幕的大小并加载 php 给您的新文本

一个更简单的方法(我不推荐使用 ajax 的方法)可能是这样的:

<div id="AlwaysShowThis"> text upto 400 characters </div>
<div id="showIfMedium"> show text characters 401 till 600</div>
<div id="ShowIfbig"> show text from character 601 and up</div>

并通过 CSS 中的媒体查询控制它们

另一种方法是其他评论中建议的text-overflow(我将添加此以获得完整答案)

elem{
    text-overflow: ellipsis;
}

这将采用可用尺寸并在末尾添加点。如果您的响应非常灵敏(例如 400px 有效,410px 也有效,第二个允许更多字符),则更灵活一些

关于php - 为响应式媒体查询切换 php 字符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18205459/

相关文章:

css - Quasar 框架 Flex 类

css - z-index和css Position :?有什么关系

html - 响应式图像,如果容器较大,则宽度不会为 100% - 容器为 Flexbox

java - 结果处理程序出现问题

php - 如何解决 Class xxx is not a valid entity or mapped super class 错误

php - 解析错误: syntax error, unexpected ',' not seeing the issue [duplicate]

php - 构造函数参数在 init 中不可用

css - :hover in css stylesheet doesn't show when

html - CSS 媒体查询仅适用于浏览器调整大小 (Chrome)

css - 纯CSS子菜单