В настоящее время я скрываю div, основанный на выражении if. Метод, который я использую, использует echo
вне css
стиля display: none
Вот что я делаю конкретно:
<style> #content{ <?php if(condition){ echo 'display:none'; } ?> } </style> <body> <div id="content"> Foo bar </div> </body>
Мой вопрос заключается в том, является ли это хорошим методом для скрытия div? Возможно ли, что браузер кэширует стиль и поэтому игнорирует echo
код css
?
Использование Php в CSS (Cascade Style Sheet) не является «правильным»,
Кроме того, вы можете использовать Php в своем HTML:
<body> <?php if (condition){ ?> <div id="content"> Foo bar </div> <?php } ?> </body>
С этим кодом блок div не появляется (и вы не используете его с JavaScript), вы можете использовать это для просто скрытого div:
<body> <div id="content" <?php if (condition){ echo 'style="display:none;"'; } ?>> Foo bar </div> </body>
Почему бы не создать класс:
<style> .hidden { display: none; } </style>
И чем применить его с PHP:
<div id="content" <?php print ( condition ? 'class="hidden"' : '' ); ?> >
Это не лучший способ скрыть div. Поскольку PHP разбирается на стороне сервера, вы можете также включить оператор if или исключить div вместо эхо-значения класса CSS. Единственное время, которое было бы полезно с классом CSS, – это если вы планируете использовать JavaScript для отображения div на странице позже, в то время как пользователь находится на самой странице.
Ты мог:
<div runat="server" id="theDiv"> Code behind is { theDiv.Visible = False; }
или
Большинство людей будут использовать javascript
Heres предыдущая тема, которая поможет вам:
Javascript, если инструкция else, чтобы скрыть и показать div
Да, это стандартный способ сокрытия div. Что касается кеша браузера, он не должен кэшировать его, поскольку он не находится во внешней таблице стилей.
Обычно я стараюсь избегать использования PHP-процедур внутри CSS; особенно встроенный CSS (CSS, который находится на одной странице).
Я бы сохранил ваш CSS в собственном CSS-файле и использовал условный код PHP, чтобы либо добавить класс «скрыть» в DIV -OR-, либо не отнестись к DIV вообще.
<link rel="stylesheet" type="text/css" href="style.css" /> <body> <div id="content" <?php if(conditional) : ?>class="hide"<?php endif;?>> Foo bar </div> </body>
или альтернативно
<?php $class = (conditional) ? "hide" : ""; ?> <link rel="stylesheet" type="text/css" href="style.css" /> <body> <div id="content" class="<?=$class?>"> Foo bar </div> </body>
или
<link rel="stylesheet" type="text/css" href="style.css" /> <body> <?php if (conditional) : ?> <div id="content"> Foo bar </div> <?php endif; ?> </body>
Много раз div должен выводиться, поэтому его можно повторно отобразить с помощью JavaScript (например, карусели, слайдеры и т. Д.),