首页 > 解决方案 > 有没有办法在 Laravel 的 .css 文件中使用 Blade 来生成“CSS”视图?

问题描述

我只是在猜测这是否可能。在预处理 css 并提供可重用性和模块化时,Sass 和 Less 非常有用。Blade 对 HTML/PHP 视图做同样的事情。这将大大减少构建 CSS 所需的时间,并完全避免(如果开发人员想要)Sass/Less。

我尝试在官方文档中搜索,但没有找到与此主题相关的任何内容。所以我猜是否有某种方法可以通过扩展 Blade 来做类似的事情:

mystyle.blade.css

@if (dimension('xs') === 1)
 .myclass { color: {$primary-color} }
@else
 .myclass { ... }
@endif

并将其提供给 CSS 输出中的浏览器。

我希望这能够以某种方式工作,或者至少能够通过扩展 Blade/Laravel 组件来实现它。

先感谢您。

标签: phpcsslaravel

解决方案


您可以尝试根据您可以包含所需样式来检测用户代理。

有一个用于轻松检测代理的软件包

使用作曲家安装:

composer require jenssegers/agent

如果需要,在 config/app.php 中添加服务提供者:

Jenssegers\Agent\AgentServiceProvider::class

并将 Agent 外观别名添加到 config/app.php:

'Agent' => Jenssegers\Agent\Facades\Agent::class,

安装后,将用户代理变量从控制器传递到所需的视图。

$agent = new Agent();
return view('some.view', compact('agent'));

最后,在您的视图中,您可以检查用户代理并根据它加载样式:

@if($agent->isMobile())
 .myclass { color: {$primary-color} }
@else
 .myclass { ... }
@endif

推荐阅读