Nano Hash - криптовалюты, майнинг, программирование

Скрытие Div с помощью php

В настоящее время я скрываю 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-ed out css?

07.08.2012

  • вы можете просто не включать div вообще. но я не понимаю, что вы имеете в виду о кэшировании стиля. 08.08.2012
  • Встроенные стили кэшируются вместе со страницей, а не в одиночку. Хорошо это или нет, это зависит от того, ваш вопрос не содержит достаточно информации, чтобы правильно судить об уровне хорошего, я бы сказал. 08.08.2012
  • ... или вы можете дать div только имя класса, которое применяется display: none, когда вы хотите его скрыть. Или даже встроенный стиль. 08.08.2012
  • @Dagon хорошо, вы знаете, как браузер хранит фрагменты html, такие как стиль изображений и т. Д., Чтобы быстрее загружать страницу, если пользователь снова заходит. 08.08.2012
  • Вот хороший вопрос о динамически сгенерированном css с плюсами и минусами stackoverflow.com/questions/11853063/ 08.08.2012
  • @VidhuShresthBhatnagar - Браузеры кэшируют изображения и т. Д., Но я никогда не знал, чтобы браузер кэшировал HTML так, как вы, кажется, думаете. Начальный комментарий Дагона — это обычный метод, и он также чище при просмотре кода, а также быстрее, если в этом div может быть много контента. 08.08.2012

Ответы:


1

Использование Php в вашем CSS (каскадная таблица стилей) не является "правильным",

Кроме того, вы можете использовать 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>
07.08.2012
  • Мне также нравится первое решение, но я не знаю, как его реализовать... каким будет полный код, который я могу вставить туда в файле .php, чтобы увидеть его в действии? Это часть (состояние), с которой у меня проблема 30.09.2016

  • 2

    Почему бы не создать класс:

    <style>
        .hidden {
            display: none;
        }
    </style>
    

    И чем применить его с PHP:

    <div id="content" <?php print ( condition ? 'class="hidden"' : '' ); ?> >
    
    07.08.2012
  • Как еще вы могли бы скрыть это, кроме как с помощью встроенного стиля? И еще я думаю, что это не семантический класс. Я предположил, что OP хотел, чтобы div был скрыт и не удалялся со страницы, потому что уже использовал display:none в вопросе. :) 08.08.2012

  • 3

    Это был бы не лучший способ скрыть div. Поскольку PHP анализируется на стороне сервера, вы могли бы также включить или исключить оператор if вместо того, чтобы повторять класс CSS. Единственный случай, когда класс CSS будет полезен, — это если вы планируете использовать JavaScript для отображения элемента div на странице позже, пока пользователь находится на самой странице.

    07.08.2012

    4

    Вы могли:

    <div runat="server" id="theDiv"> 
    
    Code behind is
    {
    theDiv.Visible = False;
    }
    

    or

    Большинство людей будут использовать javascript

    Вот предыдущая тема, которая поможет вам:

    Javascript if else оператор для скрытия и отображения div

    07.08.2012
  • просто чтобы вы знали, что я использую php, а не asp.net: P 08.08.2012

  • 5

    Да, это стандартный способ скрыть div. Что касается кеша браузера, он не должен кэшировать это, поскольку его нет во внешней таблице стилей.

    07.08.2012

    6

    Обычно я стараюсь избегать использования условий PHP внутри CSS; особенно встроенный CSS (CSS, который находится на той же странице).

    Я бы сохранил ваш CSS в своем собственном файле CSS и использовал условие PHP, чтобы либо добавить класс «скрыть» в DIV, либо вообще не отображать 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>
    

    or

    <link rel="stylesheet" type="text/css" href="style.css" />
    <body>
    
        <?php if (conditional) : ?>
        <div id="content">
           Foo bar
        </div>
        <?php endif; ?>
    </body>
    

    Много раз необходимо вывести div, чтобы его можно было повторно отобразить с помощью JavaScript (например, карусели, слайдеры и т. д.).

    07.08.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..