【问题标题】:Laravel 5 Pagination CSS BreakingLaravel 5 分页 CSS 中断
【发布时间】:2015-06-18 01:42:02
【问题描述】:

我正在使用 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?

【问题讨论】:

  • 我猜,您允许用户在$article-&gt;title$article-&gt;article 中输入html 标签。因此,$article-&gt;headline$article-&gt;article 中的标签可能已损坏。您可以通过删除这些行并刷新页面来测试它。
  • 您,先生,真是个天才!!!谢谢@minioz!!!
  • 不客气。我刚刚发布了我的答案:)

标签: php css laravel twitter-bootstrap-3 laravel-5


【解决方案1】:

没有转义标签,打开的 HTML 标签正在扼杀 css。感谢@minioz 指出来

【讨论】:

    【解决方案2】:

    根据我上面的评论。

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

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

    该函数将删除$article-&gt;article 的一部分并保留一些标签。

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

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

    【讨论】:

      【解决方案3】:

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

      你也可以有不同数量的可存活字符

      p&gt;hello&lt;/p&gt;

      12 个字符

      &lt;stong&gt;hello&lt;/strong&gt;

      21 个字符。

      并注意这一点:

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

      写道:“

      he"。破解html结果。

      试试

      substr(strip_tags($article-&gt;article,0,500))

      在剪切字符串之前剥离所有 html 选项卡。这不会破坏您当前的 html,并且您将获得正确的字符长度。

      【讨论】:

        【解决方案4】:

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

        1. 不知何故,您在每个示例中呈现不同的 HTML

        2. 页面上的其他 CSS 不是防弹的,它会根据标题和内容长度创建不同的容器包装

        3. $article-&gt;article$article-&gt;slug$article-&gt;headline 中的 HTML 内容带有破坏布局的未闭合标签(或干扰页面 CSS 的意外标签/样式/类)

          李>

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

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

        祝你好运!

        【讨论】:

          猜你喜欢
          • 2017-11-30
          • 1970-01-01
          • 1970-01-01
          • 2017-01-29
          • 2016-11-17
          • 2015-09-05
          • 2015-01-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多