Другое событие 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));
}
Я думаю, "хорошо работает в Firefox", находится в режим Quirks рендеринг только. В рендеринг Стандартного режима , который не мог бы хорошо работать в Firefox также.
процент зависит от "содержащий блок" вместо области просмотра.
, процент вычисляется относительно высоты сгенерированного поля, содержащего блок. Если высота содержания блока не определяется явно (т.е. это зависит от высоты содержания), и этот элемент не абсолютно расположен, значение вычисляет к 'автоматическому'.
так
#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%; }
Я не уверен, какую проблему Вы решаете, но когда я имею два рядом контейнеры, которые должны быть той же высотой, я запускаю немного JavaScript на загрузке страницы, которая находит максимальную высоту двух и явно устанавливает другой на ту же высоту. Мне что высота кажется: 100% могли бы просто означать, "делают его, размер должен был полностью содержать содержание", когда то, что Вы действительно хотите, "делают обоих размером самого большого содержания".
Примечание: необходимо будет изменить размеры их снова, если что-нибудь, окажется, на странице изменит их высоту - как сводка проверки, сделанная видимой или разборное открытие меню.
Я был успешен в том, чтобы заставлять это работать, когда я установил поля контейнера к 0:
#container
{
margin: 0 px;
}
в дополнение ко всем Вашим другим стилям
Его твердое, чтобы дать Вам хороший ответ, не видя HTML, который Вы на самом деле используете.
Вы производите doctype / использование рендеринга режима стандартов? Без на самом деле способности изучить репродукцию HTML, которая была бы моим первым предположением для различия в интерпретации HTML между Firefox и Internet Explorer.
Вам, возможно, придется поместить один или оба из:
html { height:100%; }
или
body { height:100%; }
РЕДАКТИРОВАНИЕ: Возгласы, не заметил, что они были пущены в ход. Просто необходимо пустить в ход контейнер.
Я сделал что-то очень похожее на какой сказанный 'tvanfosson', то есть, на самом деле с помощью JavaScript, чтобы постоянно контролировать доступную высоту в окне через события как onresize и использовать ту информацию для изменения контейнерного размера соответственно (как пиксели, а не процент).
Имеют в виду, это делает , означают зависимость JavaScript, и это не столь гладко как решение для CSS. Необходимо было бы также удостовериться, что функция JavaScript способна к правильно возврат размеров окна через все главные браузеры.
Сообщают нам, если одна из ранее упомянутой работы решений для CSS, поскольку это походит на лучший способ решить проблему.
Я не думаю, что IE поддерживает использование автоматических для установки высоты / ширина, таким образом, Вы могли попытаться дать этому числовое значение (как Jarett, предлагает).
кроме того, не похоже на очистку плаваний правильно. Попытайтесь добавить это к своему CSS для #container:
#container {
height:100%;
width:100%;
overflow:hidden;
/* for IE */
zoom:1;
}
Попробуйте это ..
#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;
}