Deslocar uma div com posicionamento absolute

Estou montando caras e quero que ao clicar o card se expanda para direita, pra baixo e pra esquerda.
Ao lado desse caras existem outras divs (cards) que serão sobrescritas (o card selecionado ficará por cima dos não selecionados).
Só não consegui o deslocamento a esquerda, vi que a propriedade setoutLeft é só para leitura (ou seja consigo pela a distância máxima para do início da div mas não consigo alterar).
Estou usando só angularJS.
Alguém tem alguma dica?

Não entendi bem o que você quer fazer, você esta montando caras?

Bem, pelo que consegui entender, você está querendo trabalhar com posicionamento de elementos, certo?!
O que eu posso sugerir é fazer uso do POSITION (Absolute ou Relative), usar o TOP, LEFT, BOTTOM e RIGHT para deslocar as DIVS, Z-INDEX (ou zIndex no javaScript), para colocar uns sobre outros, e uma outra dica, seria utilizar o CLASS, nos elementos e manipular estas CLASS com JavaScript, removemendo ou adicionando elas…Tipo, cada classe com zIndex diferente, ou POSISIOTNS diferentes, tudo conforme sua necessidade, evitando manipular o estilos dos elementos diretamente com JS…

Não mencionei FLOAT, porque se tiver usando POSITION ABSOLUTE ou FIXED, o FLOAT não funciona…

Espero ter ajudado!

Renato: obrigado

Desculpe-me: escrevi caras mas são cards em carrossel (carrossel com divs containers que tem uma imagem, um espaço pra texto e a imagem na verdade é um buttom.) O quero que aconteça é que ao passar o mouse sobre a imagem ou clicar no botão, o card selecionado tenha dimensões maiores do que o normal (ou seja que o card selecionado sobrescreva os cards da esquerda e da direita).

Sim: estou usando posicionamento absoluto (tenho que usar o float a esquerda para quebrar o fluxo normal de html).

Consigo expandir para direita e pra baixo, mas não consigo expandir para a esquerda. Tipo:
Left = left - 10.

Espero ter sido mais claro agora.

Sem problemas, agora compreendi melhor.
Só lembrando que o float não funciona em position: relative

Então…

Creio que você não está programando assim: Left = left - 10. , o correto é left:-10px; no CSS
No JS seria com igual [ = ] ;

Eu fiz um exemplo aqui, bem simples, usando apenas o CSS, mas você pode alterar o HOVER pelo onmouseon ou o onclick do JS e adicionar ou remover CLASS do elemento.

A ideia do exemplo é aumentar a altura e o tamanho do elemento, se o mouse sobrepor uma das DIVS.
Usei o z-index para trazer a DIV para frente das outras.

<style>
.default {
    background-color:#f3f3f3;
    border: 2px solid #bbb;    
    position: absolute;
    border-radius: 50%;
    cursor: pointer;
    transition: .3s;
    margin: 5px;
    width:100px;
    height:100px;
}

.default:hover {
    width:+200px;
    height:+200px;
    transition: .3s;
    z-index: 2;
    left: +20px;
    }
</style>

<div class='default' ></div><br /><br />
<div class='default' ></div><br /><br />
<div class='default' ></div><br /><br />

Renato, obrigado.

Estou usando essa solução no evento hover do botão.
Mas a dificuldade esta em implementar esse deslocamento na função JS acionada pelo evento ng-click (angularJS). Não dá erro mas a div não se desloca.

Essa é a função acionada: (tem uma imagem dentro de uma div numa estrutura ng-repeat do angular):

$scope.fctSelEst = function ( idEst ) { 
	/*--------------- Muda todas as divs para o padrão inicial ------*/
	obj = document.getElementsByClassName( 'divCrdEstSel' ); 
	for (i = 0; i < obj.length; i++) { obj[ i ].className = 'divCrdEst'; } 

	/*--------------- Muda todas as imagens para o padrão inicial ------*/
	obj = document.getElementsByClassName( 'imgEstSel' ); 
	for ( i = 0; i < obj.length; i++ ) { obj[ i ].className = 'imgEst';  }

	if (  $scope.jsonEst[ idEst ].flgEst = ! $scope.jsonEst[ idEst ].flgEst ) { 
		$scope.flgShwCpm = 2;
		document.activeElement.className = 'imgEstSel'; 
		document.activeElement.parentNode.className = 'divCrdEstSel'; }
	else { $scope.flgShwCpm = 1; } } 

Essas foram algumas tentativas para efetivar:

// valOri = varDiv.offsetLeft;
// varDiv.className = ‘divCrdEstSel’;
// fctFixImgEst();
// console.log( valOri + ’ - ’ + varDiv.offsetLeft + ’ - ’ + varDiv.style.left );
// if ( ( valOri >= 0 ) && ( valOri < 700 ) ) { valOri -= 20; }
// else { valOri -= 40; }
// varDiv.style.left = valOri;
// console.log( valOri + ’ - ’ + varDiv.offsetLeft + ’ - ’ + varDiv.style.left );
// varDiv.setAttribute(“offsetLeft”, valOri );
// console.log( valOri + ’ - ’ + varDiv.offsetLeft + ’ - ’ + varDiv.style.left );
// console.log( document.activeElement.parentNode.parentNode.offsetLeft );

Ok Cesar, não sabia que você usava Angular, eu ainda não estudei essa linguagem, estou aprendendo o básico ainda, mas aqui tem pessoas que usam ela, talvez outros usuários do site possam te ajudar!!!