Реагировать на приоритет css

У меня есть компонент кнопки, который отображается только при необходимости (он предназначен для страницы вниз и поэтому не отображается на первой странице).

Я сделал это с помощью этого кода:

         <button 
            id = "hidemeonmain"
            onClick = {this.pageDown}
            className = {this.state.count <2 
              ? 'hidden' 
              : 'clean' }
          > 
        <FontAwesomeIcon 
          icon = "angle-left" 
          size = "2x"
        />
        </button>    

Однако я хочу скрыть эту кнопку при запросе @media для max-width 736pxFOR ALL VALUES OF STATE.

Я делаю это, давая ему идентификатор и скрывая это в CSS. Однако, когда состояние обновляется, оно повторно показывает кнопку даже с !important в стиле @media display:none.

Я думал, что id и important будут иметь приоритет над общим классом.

Есть идеи, как решить эту проблему?

TIA

Обновлено: Я исправил это с помощью правильной кнопки !! и включил #id css.

 #hidemeonmain {
    display: none !important;

Я думаю, что происходит то, что при нажатии другой кнопки (приращение) это увеличивает состояние и, следовательно, влияет на изменение класса из троичного, которое переопределяет #id с помощью display: hidden !important;

Вместо этого вы можете добавить свой класс, который является «скрытым» и «чистым» для разрешения выше, чем для мобильных устройств. Таким образом, он никогда не будет применяться для мобильных устройств, и вам не нужно добавлять какое-либо отдельное свойство для мобильных устройств как таковых.

Sumodh Nair 19.09.2018 08:08

@SumodhNair Я не понимаю, что вы имеете в виду. Я изменил вопрос, чтобы он был более конкретным, я имел в виду менее 736 пикселей

Nick Wild 19.09.2018 08:12

Да, выбор идентификатора важнее класса, в зависимости от того, как он объявлен. Пожалуйста, добавьте код и CSS, где вы это делаете. Если вы можете получить доступ к консоли, чтобы увидеть, что переопределяется, это также поможет.

c-chavez 19.09.2018 08:13

@NickWild В целом идентификатор имеет приоритет над классом. Однако можете ли вы проверить в своем браузере свойства стиля и посмотреть, в каком порядке применяются стили?

Sumodh Nair 19.09.2018 08:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
804
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вместо того, чтобы скрывать его с помощью css, вы можете использовать свойство window.innerWidth, оно предоставит вам внутреннюю ширину браузера пользователей (если вы его console.info, вы увидите), затем вы можете использовать его для добавления скрытого класса к вашему элементу (в твое дело) твоя пуговица!

что-то вроде ниже:

<button 
  onClick = {this.pageUp}
  className = {
     this.state.count+3 > data.allMarkdownRemark.totalCount && // your condition
     window.innerWidth < 736 // responsive rule represented by javaScript
     ? 'hidden' 
     : 'clean'}
     >
       <FontAwesomeIcon 
          icon = "angle-right"
          size = "2x"
          />
 </button> 

и еще одно важное замечание. рекомендуется хранить некоторые операционные коды в переменной. в нашем случае вам может потребоваться сохранить значение window.innerWidth в переменной перед вашим return( ... ) и использовать переменную внутри в return( ... ). что-то вроде ниже:

class myComponent extends React.Component {


  ... some methods and lifeCycles


  render() {

    const _innerWidth = window.innerWidth

    return(

      ...some JSX

      <button 
      onClick = {this.pageUp}
      className = {
         this.state.count+3 > data.allMarkdownRemark.totalCount && // your condition
         _innerWidth < 736 // responsive rule represented by javaScript
         ? 'hidden' 
         : 'clean'}
         >
           <FontAwesomeIcon 
              icon = "angle-right"
              size = "2x"
              />
     </button>

     ...some more jsx

    )
  }
}

Это «почти сработало», но направило меня в правильном направлении - так должно быть или || не и &&. Какая отличная идея! Спасибо @a_m_dev

Nick Wild 19.09.2018 20:41

Другие вопросы по теме