Laravel 5 分页 CSS 分页

Laravel 5 Pagination CSS Breaking

我正在使用 Laravel 5 和 Bootstrap 3.3.4

所以我的控制器中有以下代码:

$articles = Newsarticles::paginate(10);
return view ('news',compact('articles');

那么在我看来我有:

@foreach($articles as $article)

<article>
    <h2>
        <a href="{!! action('DynamicPages@show', [$article->slug]) !!}">{!! $article->headline !!}</a>
    </h2>
    <div class="body">
        {!! substr($article->article,0,500) !!}
    </div>
</article>

@endforeach

{!! $articles->render() !!}

当我 运行 这样做时,页面底部的分页链接显示得很好,看起来就像它们应该做的那样。但是,如果我将控制器更改为:

$articles = Newsarticles::orderBy('artdate','DESC')->paginate(10);

我的分页链接是这样出来的:

«
1
2
3
4
5
6
»

代码中的一个小调整如何打破 css?

使用 substr($article->article,0,500) 你可能会破坏 html 代码。

您还可以拥有不同数量的活字符

p>hello</p>

12 个字符

<stong>hello</strong>

21 个字符。

并注意这个:

echo substring('<p>hello</p>', 5);

写道:“

他”。打破 html 结果。

试试

substr(strip_tags($article->article,0,500))

在剪切字符串之前去除所有 html 制表符。这不会破坏您当前的 html,并且您将获得正确的字符长度。

没有足够的信息来回答 -- 但三大可能性是

  1. 不知何故你在每个例子中呈现不同的HTML

  2. 页面上的其他 CSS 不是 bullet-proof,而是根据标题和内容长度创建不同的容器包装

  3. $article->article$article->slug$article->headline 中的 HTML 内容带有未闭合的标签,破坏了布局(或意外的 tags/styles/classes 干扰页面 CSS)

为不同的请求复制页面的原始页面源代码(查看 -> 开发人员 -> 在 Chrome 中查看源代码),然后 运行 通过 diff 程序(CLI) diff、WinMerge、opendiff 等)以发现任何渲染差异。

假设有 none,调查每个内容区域是否有损坏的标签,然后开始使用不同长度的标题和文本 body 区域填充布局,直到触发问题,然后修复你的 CSS 从那里。

祝你好运!

没有转义标签,一个开放的 HTML 标签正在杀死 css。感谢@mininoz 指出

来自我上面的评论。

问题是损坏的 html 标签。这是因为在这一行使用了substr()。

{!! substr($article->article,0,500) !!}

该函数将删除部分 $article->article 并保留一些标签。

要解决问题,您需要在执行 substr() 之前删除标签

{!! substr(strip_tags($article->article),0,500) !!}