Я пытаюсь дать div (position: fixed) ширину 100% (относительно его родительского div). Но у меня есть некоторые проблемы ...
РЕДАКТИРОВАТЬ: Первая проблема решается с помощью наследования, но он по-прежнему не работает. Я думаю, что проблема в том, что я использую несколько div, которые принимают ширину 100% / наследовать. Вы можете найти вторую проблему в обновлении jsfiddle: http://jsfiddle.net/4bGqF/7/
Пример Фокса
#container {
width: 800px;
}
#fixed {
position: fixed;
width: 100%;
}
и HTML
<div id="container">
<div id="fixed">Sitename</div>
<p>
blaat
</p>
</div>
Или вы можете попробовать это: http://jsfiddle.net/4bGqF/
Проблемы, похоже, заключаются в том, что фиксированный элемент всегда принимает ширину окна / документа . Кто-нибудь знает, как это исправить?
Я не могу дать свой фиксированный элемент с фиксированным, потому что я использую плагин jScrollPane. Это зависит от содержимого, есть ли полоса прокрутки или нет.
Большое спасибо!
PS: текст 2 деления находятся друг на друге. Это всего лишь пример, так что это не имеет значения.
источник
inherit
том, как использованиеmax-width:inherit
сwidth:inherit
сохраняет соотношение контейнер /Ответы:
Я не уверен в том, что вторая проблема (на основе вашего редактирования), но если вы примените
width:inherit
ко всем внутренним div, это работает: http://jsfiddle.net/4bGqF/9/Возможно, вы захотите найти решение javascript для браузеров, которые вам нужно поддерживать и которые не поддерживают
width:inherit
источник
width: inherit
это не первое, о чем я бы подумалКак прокомментировали многие, адаптивный дизайн очень часто устанавливает ширину на%
width:inherit
будет наследовать ширину CSS, а не вычисленную ширину - что означает, что дочерний контейнер наследуетwidth:100%
Но, думаю, почти так же часто реагируют дизайнерские наборы
max-width
, поэтому:Это сработало очень удовлетворительно, чтобы решить мою проблему, состоящую в том, чтобы ограничить липкое меню исходной родительской шириной всякий раз, когда оно застревало.
И родитель, и потомок будут придерживаться,
width:100%
если область просмотра меньше максимальной ширины. Кроме того, оба будут придерживаться,max-width:800px
когда область просмотра шире.Он работает с моей уже адаптивной темой таким образом, что я могу изменить родительский контейнер без необходимости также изменять фиксированный дочерний элемент - элегантный и гибкий
PS: лично я думаю, что это не имеет значения, что IE6 / 7 не используют
inherit
источник
min-width: inherit
сделало трюк.фиксированная позиция немного хитрая (на самом деле невозможная), но позиция: липкая прекрасно справляется с задачей:
посмотрите пример кода
источник
Вы также можете решить это с помощью jQuery:
Это было очень полезно для меня, потому что мой макет был адаптивным, и
inherit
решение не работало со мной!источник
Используйте этот CSS:
Элемент #fixed унаследует свою родительскую ширину, поэтому он будет составлять 100% от нее.
источник
inherit
. Не уверен, что это мат.Фиксированное позиционирование должно определять все относительно области просмотра, поэтому
position:fixed
всегда будет делать это.position:relative
Вместо этого попробуйте использовать дочерний div. (Я понимаю, что вам может понадобиться фиксированное позиционирование по другим причинам, но если это так - вы не можете добиться соответствия ширины родительскому без JSinherit
)источник
Вот небольшой прием, с которым мы столкнулись при исправлении некоторых проблем с перерисовкой в большом приложении.
Используйте
-webkit-transform: translateZ(0);
на родителях. Конечно, это характерно для Chrome.http://jsfiddle.net/senica/bCQEa/
источник
Для этого есть простое решение.
Я использовал фиксированную позицию для родительского div и максимальную ширину для содержимого.
Вам не нужно слишком много думать о других контейнерах, потому что фиксированная позиция только относительно окна браузера.
источник
Это решение соответствует следующим критериям
Насколько мне известно, без Javascript этот критерий выполнить невозможно (к сожалению).
В этом решении используется jQuery, но его также можно легко преобразовать в ванильный JS:
источник
Вам нужно указать тот же стиль фиксированного элемента и его родительского элемента. Один из этих примеров создан с максимальной шириной, а в другом - с отступами.
источник