Почему мы можем использовать свойство height вместо свойства max-height в анимированном аккордеоне?

почему в этом коде я могу использовать высоту вместо максимальной высоты, и он все еще работает? и второй вопрос: почему мы должны скрывать свойство переполнения, когда высота равна нулю. https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_accordion_animate это исходный код выше.

 
    var acc = document.getElementsByClassName("accordion");
    var i;
    for (i = 0; i < acc.length; i++) {
      acc[i].addEventListener("click", function() {
       this.classList.toggle("active");
        var panel = this.nextElementSibling;
        if (panel.style.height){
          panel.style.height = null;
        } else {
         panel.style.height = panel.scrollHeight + "px";
        } 
       });
     }
    
 <!DOCTYPE html>
    <html>
    <head>
    <meta name = "viewport" content = "width=device-width, initial-scale=1">
    <style>
    .accordion {
      background-color: #eee;
      color: #444;
      cursor: pointer;
      padding: 18px;
      width: 100%;
      border: none;
      text-align: left;
      outline: none;
      font-size: 15px;
      transition: 0.4s;
    }
    .active, .accordion:hover {
      background-color: #ccc;
    }
    .panel {
      padding: 0 18px;
      background-color: white;
      height: 0;
      overflow: hidden;
      transition: height 0.2s ease-out;
    }
    </style>
    </head>
    <body>
    <h2>Animated Accordion</h2>
    <p>Click on the buttons to open the collapsible content.</p>
    <button class = "accordion">Section 1</button>
    <div class = "panel">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
     eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad 
    minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
    ex ea commodo consequat.</p>
    </div>
    <button class = "accordion">Section 2</button>
     <div class = "panel">
       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad 
    minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
    ex ea commodo consequat.</p>
    </div>
    <button class = "accordion">Section 3</button>
     <div class = "panel">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad 
    minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
    ex ea commodo consequat.</p>
    </div>
   
     </body>
     </html>

«почему в этом коде я могу использовать высоту вместо максимальной высоты, и он все еще работает?» почему вы ожидаете, что этого не должно быть? Чего вы ожидали и что происходит вместо этого?

Federico klez Culloca 24.07.2019 11:41

"и второй вопрос" пожалуйста, по одному вопросу на пост

Federico klez Culloca 24.07.2019 11:42
Поведение ключевого слова "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) для оценки ваших знаний,...
2
2
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. max-height - разрешить элементу быть меньше установленного значения. Например. height: 20px; max-height: 30px; -> элемент имеет высоту 20 пикселей. Когда вы применяете height, вы не разрешаете использовать любой другой размер элемента, кроме того, который вы установили. Вот почему он отлично работает с max-height и height. Проверьте максимальная высота и высота.

  2. overflow:hidden; height: 0; требуется, потому что даже если вы установите высоту меньше, чем содержимое, это содержимое все равно будет видно за пределами окна. Установка overflow: hidden скрывает содержимое элемента, превышающее высоту.

отличное объяснение

Nipun Tharuksha 24.07.2019 11:55

Извините, сэр, не могли бы вы подробнее объяснить свои слова о высоте и максимальной высоте? Спасибо.

Septic.S.H 24.07.2019 12:06

@Septic.SH Пожалуйста, прочитайте документацию об этом и сравните два значения. Один устанавливает фактическую высоту, а другой устанавливает для нее верхний предел.

Justinas 24.07.2019 12:12

Понятно. В этом коде не имеет значения, мы используем высоту или максимальную высоту, верно?

Septic.S.H 24.07.2019 12:16

@Septic.SH Да, неважно

Justinas 24.07.2019 12:27

@Septic.SH Примите ответ, если он удовлетворяет ваши потребности

Justinas 24.07.2019 13:39

Хорошо. Большое спасибо.

Septic.S.H 24.07.2019 21:14

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