我正在尝试使用app.cssLaravel 附带的默认引导 css ( ) 来设计我页面的一部分 - 特别是我的注册页面的表单部分。
我不想包含app.css在我的 html 标题中,因为它对页面的其他部分产生了不良影响。所以我希望它只在页面中设置我的 html 表单的样式。
目前,我在表单部分中使用了这样的asset()或HTML::style()方法:
@section('form')
<style> @import "{{ asset('css/app.css') }}"; </style>
<form>...</form>
@endsection
或者
@section('form')
{{ HTML::style('css/app.css') }}
<form>...</form>
@endsection
这两种方法都正确加载了样式,但会影响整个页面而不仅仅是表单元素。
我尝试使用ViewComposer该类通过将 ViewComposer 中的变量设置为我想要的样式来解决这个问题 - 仅在我请求所需的视图时才返回它:
class ViewComposer
{
public function compose(View $view)
{
$data = [];
switch($view->getName())
{
...
case 'sections.register':
$this->data = ['style'=>"<style> @import \"". asset('css/app.css') . "\"; </style>"];
break;
}
return $view->with($this->data);
}
}
但是,当我渲染sections.register子视图时,我得到了这样的样式变量:
@section('form')
{{ $style ?? '' }}
<form>...</form>
@endsection
浏览器上的输出不会被解析为 css,而是按原样显示:
<style> @import "{{ asset('css/app.css') }}"; </style>
那么,有没有一种方法可以为 html 页面中的给定视图部分解析外部 css,并且可以使用 ViewComposer 类来实现?
更新: 我尝试了一些东西并使用了这个:
@section('form')
{!! $style ?? '' !!}
<form>...</form>
@endsection
css 被解析但仍应用于整个页面。我仍然需要它只应用于表单部分。
紫衣仙女
慕姐8265434