Плавное перемещение при изменении размера окна браузера между центрированным элементом и абсолютным / фиксированным элементом

Ответ на neuhaus верен.

Если вы имели в виду, что вы изменили часовой пояс вашей операционной системы хоста во время выполнения этого кода, знайте, что виртуальная машина Java (JVM ) имеет свой текущий текущий часовой пояс по умолчанию.

Обычно это значение по умолчанию выбирается из того, что принадлежит ОС хоста. Если это так, то это означает, что ваша реализация Java обнаруживает часовой пояс хоста только при запуске и не проверяет последующие изменения часового пояса хоста.

Часовой пояс вашего JVM также можно установить в качестве параметра конфигурации при запуске. В этом случае я должен подумать, что JVM намеренно игнорирует изменения часовых поясов ОС хоста.

Любой Java-код в любом потоке любого приложения в этой JVM может изменить текущий часовой пояс JVM в любой момент во время выполнения. Опять же, я должен подумать, что JVM намеренно игнорирует изменения часовых поясов ОС хоста.

Класс doc для java.util.TimeZone.getDefault() описывает шаги, связанные с определением текущего часового пояса по умолчанию.

Если кешированный по умолчанию TimeZone доступен, его клон возвращается. В противном случае метод принимает следующие шаги для определения часовой пояс по умолчанию.

• Используйте значение свойства user.timezone в качестве идентификатора часового пояса по умолчанию, если оно доступно.

• Обнаружить идентификатор зоны платформы. Источник отображения часового пояса платформы и идентификатора может отличаться в зависимости от реализации.

• Используйте GMT ​​в качестве последнего средства, если данный или обнаруженный идентификатор часового пояса неизвестен.

По умолчанию TimeZone созданный из идентификатора, кэшируется, и возвращается его клон. Значение свойства user.timezone установлено на идентификатор по возврату.

blockquote>

В моем чтении это говорит, что JVM не собирается обнаруживать какие-либо изменения в настройке хост-OS. После запуска и после определения по умолчанию он сохраняется в этом свойстве user.timezone (и в кеше) до тех пор, пока не будет изменен с вызовом на setDefault .

java.time

Вы используете старый класс java.util.Date, который был вытеснен java.time framework в Java 8.

Используйте класс java.time.ZonedDateTime и укажите желаемый / ожидаемый часовой пояс.

ZoneId zoneId = ZoneId.of( " America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( ZoneId );

Вы почти никогда не должны зависеть от текущего часового пояса JVM (или текущего по умолчанию Locale).

0
задан user3541631 16 January 2019 в 13:26
поделиться

1 ответ

Вы можете установить ширину, равную width: calc(100vw - 10rem - X);, где X - это расстояние, которое вы хотите сохранить (10rem в два раза больше фиксированного элемента), и ваш элемент будет вести себя так, как ожидается, когда фиксированный элемент получит закрыть:

.wrapper {
  background-color: green;
  display: inline-block;
  height: 4rem;
  position: relative;
  width: 100%;
}

.header,
body {
  max-width: 30rem;
  margin: 0 auto;
}

.header {
  border: 3px solid yellow;
  max-width: 30rem;
  height: 4rem;
  width: calc(100vw - 10rem - 2rem);
  box-sizing: border-box;
}

.body {
  background-color: red;
  height: 500px;
}

.wrapper-right {
  background: #0069aa;
  height: 4rem;
  width: 5rem;
  position: absolute;
  right: 0;
  top: 0;
}
<div class="wrapper">
  <div class="header">
    <span> header header </span>
  </div>
  <div class="body">
    <span> body body </span>
  </div>
</div>
<div class="wrapper-right">
  <span> ipsum ipsum right </span>
</div>

0
ответ дан Temani Afif 16 January 2019 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: