¿Me va a causar un dolor indescriptible si lo coloco en la parte superior de mi hoja de estilo?¿Es * {position: relative} una mala idea?
* {position:relative}
¿Me va a causar un dolor indescriptible si lo coloco en la parte superior de mi hoja de estilo?¿Es * {position: relative} una mala idea?
* {position:relative}
Los comodines pueden causar problemas de rendimiento cuando no se usan con cuidado. Probablemente ese no sea el caso en su ejemplo, pero es un mal hábito desarrollarse.
Pero más importante aún, es raro que pueda decir de manera concluyente que desea aplicar cualquier comportamiento a todos los elementos.
Con un posicionamiento relativo, en el mejor de los casos no logrará nada y en el peor de los casos generará muchos dolores de cabeza tratando de solucionar problemas que normalmente "solo funcionan".
El posicionamiento relativo definitivamente tiene sus usos. Aplícala cuando la necesites.
id considera que la cuestión de la flotación es el mayor problema. Desde que hice esta pregunta, me cambié a la función de flotar casi todo en mi DOM, así que me estoy disparando en el pie con esta declaración de comodín, ¿eh? –
Sí, generalmente evito los comodines en CSS. Es raro que puedas decir de manera concluyente que quieres que cualquier comportamiento se aplique a TODOS los elementos. El posicionamiento relativo definitivamente tiene sus usos; solo aplícalo cuando lo necesites a través de una clase CSS específica o incluso un selector jQuery. –
¿Esto va a causarme dolor incalculable si lo pego en la parte superior de mi hoja de estilo?
Sí. Ya no podrá trabajar con elementos absolutamente posicionados, por ejemplo, el posicionamiento absoluto siempre será relativo al elemento principal, que casi nunca es el resultado deseado.
Me imagino que hay aún más campo de efectos secundarios de z-index
.
No es una buena idea IMO.
Y no, position: static
es no desuso, después de todo, que es el valor predeterminado :)
Mm Intento no anidar elementos que sean absolutamente relativos a la ventana gráfica. Tenía la esperanza de que realmente redujera los posibles problemas del índice z entre Firefox y, por ejemplo. –
@ user278457 Ni siquiera podrá colocar absoluto al elemento principal de los padres de esa manera. Y corrígeme si me equivoco, pero no veo cómo solucionará los problemas del índice Z en varios navegadores. –
Ok, creo que veo a lo que te refieres. Simplemente no pienso de esa manera, o no lo he necesitado todavía. Prefiero usar dos "izquierda: 10" que una "izquierda: 10" en el padre y una "izquierda: 20" en el niño. Supongo que es una buena idea dejar la opción abierta si no te sientes particularmente disciplinado algún día. –
Es una mala idea en mi humilde opinión, ya que cambia el comportamiento predeterminado de elementos sin indicación clara y se tener consecuencias imprevistas.
Si realmente desea que la mayoría de los elementos estén posicionados de forma relativa, puede que desee pensar simplemente en hacer div y parientes similares.
Mucho mejor idea. Creo que voy a experimentar con pegar un div {position: relative} en mi restablecimiento css. –
@ user278457 sigue siendo una idea horrible.Puede funcionar para usted ahora, pero ¿qué sucede si un día necesita un posicionamiento absoluto o tiene que incluir un widget externo? –
Podría darle a algo una posición absoluta aún. Simplemente no anidaré en otro div. Realmente no veo por qué anidarías algo que está posicionado en relación con la ventana gráfica. ¿Quiere decir si estoy diseñando algo que debería incluirse en un sitio externo, verdad? –
Respondiendo a la pregunta del título:
Esta es la especificación actual CSS 2.1:
http://www.w3.org/TR/CSS2/visuren.html#propdef-position
valores aceptados incluyen static
, relative
, absolute
, fixed
y inherit
.
no estoy seguro acerca de CSS 3 (que todavía está en proceso de trabajo) pero no parece mencionar static
:
http://www.w3.org/Style/CSS/current-work#positioning
Lo que sea, yo no habría realmente se preocupan aún :)
Respondiendo a la pregunta del cuerpo:
el valor predeterminado es static
por lo que estaría cambiando la propiedad para cada artículo en la página. Lo mejor que puedes lograr es nada. Lo peor es que probablemente crearás extraños efectos secundarios que ni siquiera notarás a primera vista.
También (esto es pura especulación de mi parte), no puede ser bueno para el rendimiento. Estoy seguro de que los motores de renderizado están optimizados para tener la mayoría de los elementos estáticos.
Buen punto. Pero la forma en que describen la posición relativa implica que es "relativa" a una misteriosa propiedad sin nombre que opera "como se define en el modelo de caja". –
Solo para dar la otra cara de la moneda, he usado bastante esta configuración y la he encontrado útil. El principal avance es la facilidad de uso de las propiedades de posicionamiento (arriba, izquierda, derecha, abajo) sin tener que definir el posicionamiento relativo como principal todo el tiempo.
Es cierto que esta configuración imposibilitará el uso del posicionamiento absoluto en relación con cualquier otra cosa que no sea el elemento primario anterior, pero considero que esto es algo bueno. Debido a que el primer padre con 'position: relative' es padre visual de facto de cualquier niño con 'position: absolute', entonces es lógico hacer que dirija a los niños también en la jerarquía HTML.
En resumen * {position:relative}
obliga a una convención que hace que sea más fácil razonar cómo funciona el posicionamiento.
Advertencia 1: Evento si la nueva convención simplifica las cosas para los recién llegados, es diferente de lo que se usan los experimentados desarrolladores de CSS. Prepárese para enfrentar la oposición si comienza a usar esto en un gran proyecto con muchos desarrolladores de frontend.
Advertencia 2: El problema de rendimiento debe probarse correctamente. He intentado activar y desactivar esta configuración en algunos sitios grandes sin notar ninguna diferencia, pero no existen pruebas reales con números reales (que yo sepa).
Nota final: La primera línea en el segundo párrafo no es del todo cierta. Siempre puede sobrescribir las definiciones de comodines, configurando position: static
algún nodo de nivel medio, si realmente lo necesita.
Esto causa problemas de rendimiento en Opera 12 (la última versión que usa el motor Presto) así que tenga cuidado. Sin embargo, establecer el índice Z a cualquier número soluciona el problema. – tomasz86
También causa errores extraños en Firefox con celdas de tabla que tienen relleno establecido en porcentajes. – tomasz86
El título y la pregunta no coinciden: -? –
Bueno, si lo que sugerí fuera una buena idea, seguiría adelante y desaprobaría el posicionamiento estático ... Sí, coinciden con IMO. –
"Bueno, si lo que sugerí fue una buena idea, seguiría adelante y desaprobaría el posicionamiento estático." Bueno para ti, pero eso no es lo mismo que 'position: relative;' en realidad * being * deprecated (que requeriría el Especificación de CSS para indicar que está en desuso, que no es así. –