Jump to content
  • 0

overflow ограничивает абсолютный блок


BoJITyH
 Share

Question

Как сделать, чтобы абсолютный блок не обрезался внешним блоком с ограничением overflow:auto.

Структура такая:

<div style='overflow:auto; width:500px;'>
  <div style='position:relative'>
    <div style='position:absolute; width:1000px;'>
      длииииииииииииииииииинннннннннннннннннннннннныыыыыыыыыыыыыыыыыыйййййййййййййййййййй тееееееееееееееееккккккккккккссссссссссссттттттттт
    </div>
  </div>

</div>

Как сделать, что бы блок с текстом не обрезался внешним дивом с overflow, но при этом позиционировался относительно блока relative? 

z-index менял. В статичный блок абсолютный помещал.

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 1
Цитата

The computed values of ‘overflow-x’ and ‘overflow-y’ are the same as their specified values, except that some combinations with ‘visible’ are not possible: if one is specified as ‘visible’ and the other is ‘scroll’ or ‘auto’, then ‘visible’ is set to ‘auto’.

Это из спеки. То есть, не получится.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 0
1 час назад, Switch74 сказал:

мне почему-то кажется, что ТС не хочется крутить горизонтальную полосу прокрутки, чтобы увидеть весь текст из этого блока

Кхм, интересный поворот. Я исходил из того, что ТС просто не видит текст (собственно в песочнице его и не видно), поскольку блок relative у него пустой, а абсолютный блок сам по себе ничего не растягивает. Но если смотреть на блок relative как на нечто, что с одной стороны лежать в закрытом контейнере, но при этом позиционироваться не относительно этого контейнера, а относительно... странички?, то такая постановка задачи мне представляется несколько странной. Ведь смысл правил width: 500px и overflow: hidden в том и состоит, что всё, что не влезает в пределы 500 пикселей прокручивать. Если же ТС не хочет видеть полосы прокрутки, то зачем он эти правила назначал?:mellow: В общем, если Вы что-то понимаете, чего я не понимаю, поясните, пожалуйста, а так вообще, хотелось бы какой-то более детальной иллюстрации, чтоб понимать что имелось в виду под "не обрезался", и каким образом планируется "позиционировать".

Мой последний пример с relative вместо absolute понятно что работает несколько по-другому, но в некоторых случаях, это может оказаться не существенным (в приведённом примере, похоже, это как раз не существенно), но так ли это в случае, в котором его планирует его использовать автор - неизвестно. Более того, если исходить из первоначальной информации (как я её понял), то, как я сразу и сказал, работает всё и без позиционирования.

Link to comment
Share on other sites

  • 0

К сожалению проблема не в этом.
Сам по себе блок relative заполнен контентом и находится в длинном фиксированном блоке (для того ofverflow и сделано, что бы в этот блок влезал весь контент). Проматывать блок до конца далеко вниз, что бы промотать вправо, очень неудобно.

Сжать блок так же не получается, контент не позволяет. То есть абсолютный блок будет всегда шире фиксированного.

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

 


 

Edited by BoJITyH
мелкие косяки
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By WNSY
      Более опытные товарищи, ай нид ё хелп!)
      Имеется выпадающее меню с классом .sub-menu__list. При наведении оно выпадает, но перекрывается блоком .page__main. Для наглядности прикрепляю скрин и код.
      Естественно, нужно, чтобы выпадающее меню было поверх контента следующего блока.
      Подскажите, как это реализовать?
      P.S. Если нужно поиграть с z-index, подскажите в каком классе, т.к. я перепробовал свои варианты - результата не дало.

       
      HTML
      <header class="header"> <div class="header__all _container"> <div class="header__image"> </div> </div> <div class="header__container _container"> <a href="#" class="header__logo"><img src="img/SL-logo.png" alt="SL"></a> <nav class="header__menu menu"> <ul class="menu__list"> <li class="menu__item"> <a href="#" class="menu__link">Главная</a> </li> <li class="menu__item"> <a href="#" class="menu__link">Обучение</a> <ul class="sub-menu__list"> <li class="sub-menu__item"><a href="#" class="sub-menu__link">Направления</a></li> <li class="sub-menu__item"><a href="#" class="sub-menu__link">Стоимость</a></li> <li class="sub-menu__item"><a href="#" class="sub-menu__link">Расписание</a></li> </ul> </li> <li class="menu__item"> <a href="#" class="menu__link">О нас</a> </li> <li class="menu__item"> <a href="#" class="menu__link">Контакты</a> </li> <li class="menu__item"> <a href="#" class="menu__link">Доп.услуги</a> </li> </ul> </nav> <a href="#" class="header__phone"><img src="img/header-phone.png" alt="h-phone"></a> </div> </header> <main class="page"> <div class="page__container _container"> <div class="page__main"></div> CSS
      .header { } .header__all + ._container { position: relative; } .header__image { background: grey; background-size: cover; height: 302px; font-size: 48px; text-align: center; } /*=======================================HEADER-NAV=======================================*/ .header__container { display: flex; min-height: 110px; align-items: center; margin: 15px auto 0 auto; position: absolute; } .header__logo { } .header__menu { margin: 0 0 0 95px; } .menu { } .menu__list { display: flex; } .menu__item { position: relative; } .menu__item:not(:last-child) { margin: 0 68px 0 0; } .menu__link { font-size: 20px; } .header__phone { margin: 0 0 0 175px; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SUB-MENU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ .sub-menu__list { display: none; position: absolute; } .sub-menu__item { width: 204px; } .sub-menu__item:first-child { padding: 40px 0 0 0; } .sub-menu__link { font-size: 18px; max-width: 204px; } .sub-menu__item:not(:last-child) { margin: 0 0 22px 0; } .menu__item:hover .sub-menu__list { display: block; } /*=======================================MAIN=======================================*/ .page { } .page__container { } .page__main { background: rgba(203, 32, 218, 0.25); height: 300px; font-size: 48px; text-align: center; }  
    • By tohastar
      Здравствуйте! Помогите разобраться. Для детского садика требуется создать карту сайта по новым требованиям. Карту создали с помощью генератора, внесли небольшие изменения в код, но теперь хочется упорядочить блоки по модулям на 4 столбика, как добавить новые столики понятно, главное их упорядочить. Т.е. для примера модуль подменю "важная информация" находится с верху и относящиеся к нему страницы вниз и так далее. Но к сожаление не понятно, как это можно реализовать, все добавленные вновь страницы идут последовательно вниз. Пришлось отделять тегами < p>, но вверх поднять их не получается.  http://vasilyek78.ucoz.ru/Dokument/SiteMap.html адрес расположения карты сайта.
    • By Алеся
      Подскажите, пожалуйста, как растянуть фоновую картинку, заключенную в div, на всю ширину вьюпорта? Сейчас она отображается посередине, по ширине макета. Указывала ширину 100%, 1200px, минимальную ширину 1200px - не работает.
      <div class="banner"> 
            <div class="container background-image">
            <div class="banner_text"></div>
            </div>
          </div>
      CSS:
      .background-image {
        background-image: url('/img/new_oranges.jpg');
        background-size: cover;
        height: 200px;
      }
    • By cozy_eternity
      Столкнулся с проблемой показа скрытых элементов. Ставлю div'у display:none и при выборе radio кнопки, div должен отображаться, но этого не происходит, прошу помочь..

       
      <label>Нужны ли распашные дверцы?</label> <p><input type="radio" name="swing" onclick="ShowElement1">Да</p> <p><input type="radio" name="swing">Нет</p> <div id="swing"> <p><label>Введите размер ячеек:</label></p> <p>Высота<input type="number"></p> <p>Ширина<input type="number"></p> <p>Глубина<input type="number"></p> </div> #swing { display: none; } function ShowElement1(){ document.getElementById("swing").style.display='block'; } Разобрался
    • By konoplev_ps
      Добрый день.
      Проблема: Настраиваю в отдельном CSS стили для шрифтов h1, h2 и т.д., но когда начинаю их применять внутри тега div - не вижу изменений. Сам CSS подключил, в нем и другие настройки стилей, которые успешно применяются к файлу html.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy