Отделение 100% высотой работает над Firefox, но не в IE

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

46
задан niton 14 April 2015 в 21:26
поделиться

8 ответов

Я думаю, "хорошо работает в Firefox", находится в режим Quirks рендеринг только. В рендеринг Стандартного режима , который не мог бы хорошо работать в Firefox также.

процент зависит от "содержащий блок" вместо области просмотра.

в CSS Спецификация говорится

, процент вычисляется относительно высоты сгенерированного поля, содержащего блок. Если высота содержания блока не определяется явно (т.е. это зависит от высоты содержания), и этот элемент не абсолютно расположен, значение вычисляет к 'автоматическому'.

так

#container { height: auto; }
#container #mainContentsWrapper { height: n%; }
#container #sidebarWrapper { height: n%; }

средства

#container { height: auto; }
#container #mainContentsWrapper { height: auto; }
#container #sidebarWrapper { height: auto; }

Для протяжения к 100% высотой из области просмотра необходимо определить высоту содержания блока (в этом случае, это - #container). Кроме того, также необходимо определить высоту к телу и HTML, потому что начальный Содержащий Блок "зависимо от UA".

Все, в чем Вы нуждаетесь...

html, body { height:100%; }
#container { height:100%; }
75
ответ дан 26 November 2019 в 20:28
поделиться

Я не уверен, какую проблему Вы решаете, но когда я имею два рядом контейнеры, которые должны быть той же высотой, я запускаю немного JavaScript на загрузке страницы, которая находит максимальную высоту двух и явно устанавливает другой на ту же высоту. Мне что высота кажется: 100% могли бы просто означать, "делают его, размер должен был полностью содержать содержание", когда то, что Вы действительно хотите, "делают обоих размером самого большого содержания".

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

2
ответ дан tvanfosson 26 November 2019 в 20:28
поделиться

Я был успешен в том, чтобы заставлять это работать, когда я установил поля контейнера к 0:

#container
{
   margin: 0 px;
}

в дополнение ко всем Вашим другим стилям

2
ответ дан casademora 26 November 2019 в 20:28
поделиться

Его твердое, чтобы дать Вам хороший ответ, не видя HTML, который Вы на самом деле используете.

Вы производите doctype / использование рендеринга режима стандартов? Без на самом деле способности изучить репродукцию HTML, которая была бы моим первым предположением для различия в интерпретации HTML между Firefox и Internet Explorer.

2
ответ дан bryansh 26 November 2019 в 20:28
поделиться

Вам, возможно, придется поместить один или оба из:

html { height:100%; }

или

body { height:100%; }

РЕДАКТИРОВАНИЕ: Возгласы, не заметил, что они были пущены в ход. Просто необходимо пустить в ход контейнер.

1
ответ дан Jarett Millard 26 November 2019 в 20:28
поделиться

Я сделал что-то очень похожее на какой сказанный 'tvanfosson', то есть, на самом деле с помощью JavaScript, чтобы постоянно контролировать доступную высоту в окне через события как onresize и использовать ту информацию для изменения контейнерного размера соответственно (как пиксели, а не процент).

Имеют в виду, это делает , означают зависимость JavaScript, и это не столь гладко как решение для CSS. Необходимо было бы также удостовериться, что функция JavaScript способна к правильно возврат размеров окна через все главные браузеры.

Сообщают нам, если одна из ранее упомянутой работы решений для CSS, поскольку это походит на лучший способ решить проблему.

1
ответ дан Matt Refghi 26 November 2019 в 20:28
поделиться

Я не думаю, что IE поддерживает использование автоматических для установки высоты / ширина, таким образом, Вы могли попытаться дать этому числовое значение (как Jarett, предлагает).

кроме того, не похоже на очистку плаваний правильно. Попытайтесь добавить это к своему CSS для #container:

#container {
    height:100%;
    width:100%;
    overflow:hidden;
    /* for IE */
    zoom:1;
}
0
ответ дан Ian Oxley 26 November 2019 в 20:28
поделиться

Попробуйте это ..

#container
{
   height: auto;
   min-height:100%;
   width: 100%;
}

#container #mainContentsWrapper
{
   float: left;

   height: auto;
   min-height:100%
   width: 70%;
   margin: 0;
   padding: 0;
}


#container #sidebarWrapper
{      
   float: right;

   height: auto;
   min-height:100%
   width: 29.7%;
   margin: 0;
   padding: 0;
}
0
ответ дан 26 November 2019 в 20:28
поделиться