Estoy tratando de dar un div (posición: fija) del ancho del 100% (en relación con su div padre). Pero tengo algunos problemas ...
EDITAR: El primer problema se soluciona mediante el uso de la herencia, pero aún no funciona. Creo que el problema es que estoy usando múltiples divs que toman el 100% / ancho de herencia. Puede encontrar el segundo problema en la actualización de jsfiddle: http://jsfiddle.net/4bGqF/7/
Ejemplo de Fox
#container {
width: 800px;
}
#fixed {
position: fixed;
width: 100%;
}
y el html
<div id="container">
<div id="fixed">Sitename</div>
<p>
blaat
</p>
</div>
O puede probarlo: http://jsfiddle.net/4bGqF/
El problema parece ser que el elemento fijo siempre toma el ancho de la ventana / documento . ¿Alguien sabe cómo solucionar esto?
No puedo darle a mi elemento fijo un fijo, porque estoy usando el complemento jScrollPane. Depende del contenido si hay una barra de desplazamiento o no.
¡Muchas gracias!
PD: El texto de los 2 divs están uno encima del otro. Este es solo un ejemplo, así que eso realmente no importa.
fuente
inherit
cómo usarmax-width:inherit
conwidth:inherit
mantiene la relación contenedor / contenido igual mientras sigue siendo receptivo y manejableRespuestas:
No estoy seguro de cuál es el segundo problema (según su edición), pero si aplica
width:inherit
a todos los divs internos, funciona: http://jsfiddle.net/4bGqF/9/Es posible que desee buscar una solución de JavaScript para los navegadores que necesita admitir y que no admiten
width:inherit
fuente
width: inherit
no es lo primero en lo que hubiera pensadoComo muchas personas han comentado, el diseño receptivo a menudo establece el ancho en%
width:inherit
heredará el ancho de CSS NO el ancho calculado , lo que significa que el contenedor secundario heredawidth:100%
Pero, creo, también casi a menudo conjuntos de diseño receptivo
max-width
, por lo tanto:Esto funcionó de manera muy satisfactoria para resolver mi problema de hacer que un menú fijo se restringiera al ancho original del padre cada vez que se "atascaba"
Tanto el padre como el hijo se adherirán a
width:100%
si la ventana gráfica es menor que el ancho máximo. Del mismo modo, ambos se adherirán amax-width:800px
cuando la ventana gráfica sea más ancha.Funciona con mi tema ya receptivo de una manera que puedo alterar el contenedor principal sin tener que alterar también el elemento secundario fijo: elegante y flexible
ps: personalmente creo que no importa un poco que IE6 / 7 no use
inherit
fuente
min-width: inherit
hizo el truco.La posición fija es un poco complicada (de hecho imposible), pero la posición: pegajosa está haciendo el truco maravillosamente:
ver la muestra de codepen
fuente
También puedes resolverlo con jQuery:
Esto fue muy útil para mí porque mi diseño era receptivo y la
inherit
solución no funcionaba conmigo.fuente
Usa este CSS:
El elemento #fixed heredará su ancho principal, por lo que será el 100% de eso.
fuente
inherit
. No estoy seguro si eso importa.Se supone que el posicionamiento fijo define todo en relación con la ventana gráfica, por
position:fixed
lo que siempre lo hará. Intente usarposition:relative
en el niño div en su lugar. (Me doy cuenta de que puede necesitar el posicionamiento fijo por otras razones, pero si es así, realmente no puede hacer que el ancho coincida con su padre sin JS sininherit
)fuente
Aquí hay un pequeño truco con el que nos encontramos al solucionar algunos problemas de redibujo en una aplicación grande.
Uso
-webkit-transform: translateZ(0);
en el padre. Por supuesto, esto es específico de Chrome.http://jsfiddle.net/senica/bCQEa/
fuente
Hay una solución fácil para esto.
He usado una posición fija para el padre principal y un ancho máximo para el contenido.
No necesita pensar demasiado en otros contenedores porque la posición fija solo está relacionada con la ventana del navegador.
fuente
Esta solución cumple con los siguientes criterios.
Hasta donde sé, este criterio no se puede cumplir sin Javascript (desafortunadamente).
Esta solución usa jQuery, pero también podría convertirse fácilmente a JS de vainilla:
fuente
Debe dar el mismo estilo del elemento fijo y su elemento principal. Uno de estos ejemplos se crea con anchuras máximas y en el otro ejemplo con rellenos.
fuente