Solo me pregunto, ¿cómo puedo usar jQuery para obtener un relleno y margen total formateado de elementos, etc.? es decir, 30px 30px 30px 30px o 30px 5px 15px 30px, etc.
Lo intenté
var margT = jQuery('img').css('margin');
var bordT = jQuery('img').css('border');
var paddT = jQuery('img').css('padding');
¿Pero esto no funciona? http://jsfiddle.net/q7Mra/
Respuestas:
Según la documentación de jQuery , las propiedades CSS abreviadas no son compatibles.
Dependiendo de lo que quiera decir con "relleno total", es posible que pueda hacer algo como esto:
fuente
auto
o2%
oinherit
?$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).
Consulte los documentos de la API de jQuery para obtener información sobre cada uno:
Aquí está el jsFiddle editado que muestra el resultado.
Puede realizar el mismo tipo de operaciones para la altura para obtener su margen, borde y relleno.
fuente
margin-left
ymargin-right
, y pueden serem
opx
.height
nowidth
?jQuery.css()
devuelve tamaños en píxeles, incluso si el propio CSS los especifica en em, o como un porcentaje, o lo que sea. Agrega las unidades ('px'), pero de todos modos puede usarlasparseInt()
para convertirlas en números enteros (oparseFloat()
, donde las fracciones de píxeles tienen sentido).http://jsfiddle.net/BXnXJ/
fuente
Esto funciona para mi:
Ejemplo de resultado:
Para hacer un total:
fuente
Frontera
Creo que puedes obtener el ancho del borde usando
.css('border-left-width')
. También puede buscar la parte superior, derecha e inferior y compararlas para encontrar el valor máximo. La clave aquí es que debes especificar un lado específico.Relleno
Ver jQuery calcular padding-top como entero en px
Margen
Utilice la misma lógica que el borde o el relleno.
Alternativamente, puede usar outerWidth . El pseudocódigo debería ser
margin = (outerWidth(true) - outerWidth(false)) / 2
. Tenga en cuenta que esto solo funciona para encontrar el margen horizontalmente. Para encontrar el margen verticalmente, necesitaría usar externalHeight .fuente
Tengo un fragmento que muestra cómo obtener los espacios de los elementos con jQuery:
fuente
Si el elemento que está analizando no tiene ningún margen, borde o lo que sea definido, no podrá devolverlo. En la parte superior, podrá obtener 'automático', que normalmente es el predeterminado.
De su ejemplo puedo ver que tiene
margT
como variable. No estoy seguro de si está tratando de obtener el margen superior. Si ese es el caso, debería usar.css('margin-top')
.También está tratando de obtener la estilización de 'img' que resultará (si tiene más de uno) en una matriz.
Lo que debes hacer es usar el
.each()
método jquery.Por ejemplo:
fuente
regreso:
obtener valor:
Editar:
use el complemento jquery: jquery.sizes.js
fuente