Дисплей: начальный для Internet Explorer

Я создал веб-сайт, который отлично работает в Google Chrome и Firefox, но когда я запускаю его в Internet Explorer, у меня возникают проблемы.

Итак, у меня есть 2 слайд-шоу на моей индексной странице, но только одно должно отображаться при определенном разрешении экрана. Я создал несколько медиа-запросов, чтобы установить display:none; для слайд-шоу, которое мне не нужно в этом разрешении. И чтобы он появился снова, я использую display:initial;, но Internet Explorer не поддерживает эту команду.

Мне нужен способ сделать видимым то, что было невидимым с помощью display:none; в Internet Explorer.

PS: использование visibility:hidden; не вариант, потому что он не должен резервировать место.

Если вы можете мне помочь, пожалуйста, ответьте. Если вы не можете, я все равно благодарю вас за то, что вы это прочитали.

Вот код; это может помочь (я не уверен, как правильно опубликовать, извините):

<section id="containerGrotePage">
    <div id="page">
    <ul id="slider">
        <li><img src="images/slideshow/image2.jpg" alt="slideshow foto 1" /></li>
        <li><img src="images/slideshow/image1.jpg" alt="slideshow foto 2" /></li>
        <li><img src="images/slideshow/image3.jpg" alt="slideshow foto 3" /></li>
        <li><img src="images/slideshow/image4.jpg" alt="slideshow foto 4" /></li>
    </ul>
</div>
</section>

<div id="pageKlein">
    <ul id="sliderKlein">
        <li id="kleineSlideLi">
            <img id="fotoslideshowKlein" src="images/slideshow/image1.jpg" alt="slideshow foto 1" />
        </li>
    </ul>
<button onclick="slideshowKlein()" id="indexkleineSlideshowKnop">volgende</button>
</div>

Вот что я делаю на самом маленьком экране:

#containerGrotePage{
display:none;
}
#page{
display:none;
}       
#kleineSlideLi{
background-color:black;
padding: 10px 50px 10px 50px;
}
#fotoslideshowKlein{
width:90%;
margin-left:4%;
border: 1px solid black;
}
#indexkleineSlideshowKnop{
width:90%;
margin-top:1%;
margin-left:4%;
}

первый медиа-запрос мин: 440px

@media only screen and (min-width:440px){
#container{
    margin-top:3%;
}

/*--slideshow--*/
#page {
    display:initial;
    width:600px; 
    margin:50px auto;
}
#slider {
    width:600px; 
    height:250px;

/*IE bugfix*/
    padding:0;
    margin:0;
}

медиа-запрос мин: 610px

#slider li { 
list-style:none; 
}

#containerGrotePage{
display:initial;
display:block;
width:600px;
margin-top:2%;
margin-left:auto;
margin-right:auto;
}

#pageKlein{
display:none;
}
#page {
    display:initial;
width:600px; 
margin:50px auto;
}
#slider {
width:600px; 
height:250px;

/*IE bugfix*/
padding:0;
margin:0;
}

медиа-запрос мин: 715px

#slider {
width:600px;
height:250px;

/*IE bugfix*/
padding:0;
margin:0;
}

#slider li {
    list-style:none;
}

#page {
width:600px;
margin:50px auto;
}

Надеюсь, предоставленная мной информация окажется полезной.

ContainerGrotePage — это большое слайд-шоу, BTW, а pageklein — маленькое. Я говорю по-голландски, поэтому некоторые имена могут быть непонятны англоговорящим. :)

Заранее спасибо, ребята!


person user3588913    schedule 30.04.2014    source источник
comment
какая версия интернет эксплорера?   -  person valerio0999    schedule 30.04.2014
comment
было бы лучше, если бы вы также могли опубликовать ссылку на сайт.   -  person Kheema Pandey    schedule 30.04.2014
comment
@omegaiori использует Internet Explorer версии 11.   -  person user3588913    schedule 30.04.2014
comment
@Kheema Pandey: я не могу дать вам ссылку, веб-сайт еще не в сети. Работа в процессе. :)   -  person user3588913    schedule 30.04.2014
comment
почему вы используете display:initial вместо простого display:block или display:visible ?   -  person valerio0999    schedule 30.04.2014
comment
@omegaiori: отображение: блок; сделал все мои блоки изображений, чтобы они все стояли друг под другом. display:visible ничего не делает. Но display:inline; однако решает это. Я чувствую себя неуклюжим из-за того, что так долго не замечал этого. Спасибо за помощь! :)   -  person user3588913    schedule 01.05.2014
comment
Ps: вы должны нажать разрешить заблокированный контент, чтобы слайд-шоу появилось. Я не уверен, почему, может ли это иметь какое-то отношение к JQuery? Просто любопытно.   -  person user3588913    schedule 01.05.2014
comment
это тупой Internet Explorer, не волнуйтесь, это нормально :)   -  person valerio0999    schedule 02.05.2014


Ответы (4)



Это работает в файле css, если вам нужно установить начальные (обе строки):

дисплей: встроенный;

дисплей: начальный;

person Klas    schedule 29.04.2015
comment
проголосовали против: Вводит в заблуждение. Здесь начальный дисплей не интерпретируется браузером - person migloo; 06.12.2016

Была такая же проблема, и display: block или display: inline отобразит содержимое в IE. Однако мы использовали классы для быстрого скрытия/отображения содержимого макета, и нам потребовалось бы 2 набора классов: один для блочного и один для встроенного содержимого.

Это не имело смысла, если учесть, что display: none и display: initial отлично работают в браузерах, отличных от IE (протестировано firefox/chrome/safari на Windows, Mac, Android и iPhone).

В конце концов, я обнаружил, что гораздо проще использовать jQuery $(".class").hide() и $(".class").show() для обработки этого в функции, которая изначально запускалась после загрузки страницы, затем повторно вызывается из обработчика событий изменения размера окна.

person user3754328    schedule 18.06.2014
comment
Вы можете использовать тот же класс (например, bootstrap .hide/.show), но просто использовать другое значение display на основе имени тега (div.hide, span.hide и т. д.). - person Samuel Lindblom; 29.04.2015

Вы можете просто использовать атрибут hidden:

a.setAttribute('hidden', '')
b.removeAttribute('hidden')

Он поддерживается во всех основных браузерах, включая IE11. Чтобы получить поддержку IE10, вам понадобится пара строк CSS:

[hidden] {
  display: none;
}
person Philipp Ryabchun    schedule 29.10.2018