Как создавать условия для css в Laravel
Как правильно задать условия для отображения блоков в Laravel ? То есть в коде для отображения какой либо информации делается как то так
@if( $item->colection == 0)
Тут не чего нету
@esle
Тут что-то было
@endif
Можно ли сделать это для таблицы стилей ? У меня есть код который необходимо по-разному отображать на страницах, если быть точнее то он меняется только на главной странице, на всех остальных остается без изменений.
На сколько я понимаю это можно сделать путём проверки URL адреса страницы на которой находится пользователь, или как то иным способом ?
Нашёл код
@if (Request::ulr() === '')
Block 1
@esle
Block 2
@endif
Но не понял, мне в сравнение вставить name url страницы, или же ссылку из браузерной строки ?
Ответы (3 шт):
В вашем основном шаблоне сделайте секцию специальную для стилей @yield('css'). А потом в шаблоне главной страницы сделайте так:
@section('css')
<style>
//Тут ваши стили
</style>
@endsection
Так как CSS был указан в шапке в тегах <style>, то помогло следующие решение
Добавить условие проверки
@if(Route::current(['main.index'])->getName() == 'main.index')
#style_code_here
@else
#style_code_here_2
@endif
Таким образом мы проверяем если имя в роутах такое же какое заявлено у нас то выдаем ему первый блок, а если нет, то второй!
Опишите ваши стили а через условие применяйте модификаторы для блока
$condition = Request::is('/');
<body class="other classes @if($condition) modifier @endif "></body>
Или через тернарный оператор
<body class="other classes {{ $condition ? 'modifier' : '' }}"></body>
В самой таблице стилей можете ниже основного правила описать дополнительно правило
.other.classes {
color: red;
&.modifier {
color: black;
}
}