Подтвердить что ты не робот

CSS-hide элемент справа от экрана

У меня есть div, который я хочу частично разместить вне экрана:

div{
    position: absolute;
    height: 100px;
    width: 100px;
    right: -50px;
    top: 50px;
}

Но это увеличивает размер страницы, позволяя ее прокручивать вправо. Есть ли способ сохранить половину этого div скрытым и предотвратить прокрутку, чтобы просмотреть его?

4b9b3361

Ответ 1

Да, просто создайте закрывающий div с overflow: hidden, например:

.outer {
  overflow: hidden;
  position: relative;
}
.inner {
  position: absolute;
  height: 100px;
  width: 100px;
  right: -50px;
  top: 50px;
}
<div class="outer">
  <div class="inner">
    CONTENT
  </div>
</div>

Ответ 2

Просто добавьте overflow:hidden в css. Это должно сделать трюк.

Ответ 3

Просто вставьте этот div внутри другого div с помощью overflow:hidden

Ответ 4

Вы можете добавить медиа-запрос, чтобы избежать прокрутки в определенный момент. Поэтому в основном возьмите ширину основного контейнера и создайте медиа-запрос min-width, используя это.

@media (min-width: 960px) {
    body {
       overflow-x: hidden;
    }
}

Должен работать для современных браузеров.

Ответ 5

Другим решением является использование margin-left: 100%;

И если вы хотите немного поиграть с позиционированием, вы можете сделать что-то вроде margin-left: calc(100% + 10px);

И еще один альтернативный способ - сделать float: right;, а затем поиграть с margin-right -50px;, где 50px - это ширина скрытого div. У вас может даже быть аккуратный переход, если вы анимируете margin-right, если вы делаете меню.

Ответ 6

У меня была аналогичная ситуация, когда мне нужен абсолютно помещенный элемент, который можно было бы частично помещать справа от заголовка основного содержимого. Если браузер был достаточно широким, чтобы показать его, я НЕ хотел его обрезать (переполнение: hidden;), но я также не хотел, чтобы полоса прокрутки отображалась, если браузер был недостаточно широким.

Вот код, который я использовал:

@media screen and (max-width: 1275px) {
  #header {
     overflow-x: hidden;
  }
}

Ответ 7

Прокрутка, возможно, вы разместили относительное свойство позиции для содержащего div, и это приведет к тому, что требуемый div будет отключен справа на -50, но по отношению к основному содержащему div, а не к области просмотра браузера.. если его родительский div только внутри тега body или родительский div не включает какое-либо свойство позиции, которое ваш код должен работать.. и снова вы можете применить переполнение: скрытое свойство для оболочки div, чтобы укрыть ненужную часть